From d5e8a36e3162fe85216fb16e1e42ee6ba0aeb26d Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 29 Sep 2021 15:46:25 +0200 Subject: [PATCH] [jOOQ/jOOQ#12425] Fix OSS edition --- jOOQ/src/main/java/org/jooq/impl/Signal.java | 244 +++++++++---------- 1 file changed, 121 insertions(+), 123 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Signal.java b/jOOQ/src/main/java/org/jooq/impl/Signal.java index 89be6e80d7..2b92363aed 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Signal.java +++ b/jOOQ/src/main/java/org/jooq/impl/Signal.java @@ -127,140 +127,138 @@ package org.jooq.impl; - case POSTGRES: - case YUGABYTE: - acceptPostgres(ctx); - break; - - - case HSQLDB: - case MARIADB: - case MYSQL: - acceptDefaultPullingUpDeclarations(ctx); - break; - - default: - acceptDefault(ctx, value, messageText); - break; - } - } - - private final void acceptPostgres(Context ctx) { - ctx.visit(K_RAISE).sql(' ').visit(K_SQLSTATE).sql(' ').visit(value); - - if (messageText != null) - ctx.sql(' ').visit(K_USING).sql(' ').visit(K_MESSAGE).sql(" = ").visit(messageText); - } - - private final void acceptDefaultPullingUpDeclarations(Context ctx) { - boolean bv = value instanceof ParamOrVariable; - boolean bm = messageText == null || messageText instanceof ParamOrVariable; - - if (bv && bm) { - ctx.paramType(ParamType.INLINED, c -> acceptDefault(c, value, messageText)); - } - else { - List s = new ArrayList<>(); - - Field v = bv ? value : variable("sqlstate", CHAR(5)); - Field m = bm ? messageText : variable("messagetext", VARCHAR); - - if (v != value) - s.add(declare((Variable) v).set(value)); - if (m != messageText) - s.add(declare((Variable) m).set(messageText)); - - s.add(messageText != null ? signalSQLState(v).setMessageText(m) : signalSQLState(v)); - ctx.visit(begin(s)); - } - } - - private static final void acceptDefault(Context ctx, Field value, Field messageText) { - ctx.visit(K_SIGNAL).sql(' ').visit(ctx.family() == HANA ? K_SQL_ERROR_CODE : K_SQLSTATE).sql(' ').visit(value); - - if (messageText != null) - ctx.sql(' ').visit(K_SET).sql(' ').visit(K_MESSAGE_TEXT).sql(" = ").visit(messageText); - } - @Pro - private final void acceptJava(Context ctx) { - ctx.sql("signalSQLState("); - String s = ""; - ctx.sql(s).visit(Val.getJavaValue(value)); s = ", "; - ctx.sql(s).visit(Val.getJavaValue(messageText)); s = ", "; - ctx.sql(')'); - } - // ------------------------------------------------------------------------- - // XXX: Query Object Model - // ------------------------------------------------------------------------- - @Override - public final Field $value() { - return value; - } - @Override - public final Field $messageText() { - return messageText; - } - @Override - public final MSignal $value(MField newValue) { - return constructor().apply(newValue, $messageText()); - } - @Override - public final MSignal $messageText(MField newValue) { - return constructor().apply($value(), newValue); - } - public final Function2, ? super MField, ? extends MSignal> constructor() { - return (a1, a2) -> new Signal((Field) a1, (Field) a2); - } - @Override - public final MQueryPart replace(Function1 replacement) { - return QOM.replace( - this, - $value(), - $messageText(), - constructor()::apply, - replacement - ); - } - @Override - public final R traverse( - R init, - Predicate abort, - Predicate recurse, - BiFunction accumulate - ) { - return QOM.traverse( - init, abort, recurse, accumulate, this, - $value(), - $messageText() - ); - } - // ------------------------------------------------------------------------- - // XXX: The Object API - // ------------------------------------------------------------------------- - @Override - public boolean equals(Object that) { - if (that instanceof Signal) { - return - StringUtils.equals($value(), ((Signal) that).$value()) && - StringUtils.equals($messageText(), ((Signal) that).$messageText()) - ; - } - else - return super.equals(that); - } -} -/* [/pro] */ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +