[jOOQ/jOOQ#12425] Fix OSS edition
This commit is contained in:
parent
d59c72fa07
commit
d5e8a36e31
@ -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<Statement> s = new ArrayList<>();
|
||||
|
||||
Field<?> v = bv ? value : variable("sqlstate", CHAR(5));
|
||||
Field<String> m = bm ? messageText : variable("messagetext", VARCHAR);
|
||||
|
||||
if (v != value)
|
||||
s.add(declare((Variable) v).set(value));
|
||||
if (m != messageText)
|
||||
s.add(declare((Variable<String>) 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<String> 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<String> $messageText() {
|
||||
return messageText;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final MSignal $value(MField<?> newValue) {
|
||||
return constructor().apply(newValue, $messageText());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final MSignal $messageText(MField<String> newValue) {
|
||||
return constructor().apply($value(), newValue);
|
||||
}
|
||||
|
||||
public final Function2<? super MField<?>, ? super MField<String>, ? extends MSignal> constructor() {
|
||||
return (a1, a2) -> new Signal((Field<?>) a1, (Field<String>) a2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final MQueryPart replace(Function1<? super MQueryPart, ? extends MQueryPart> replacement) {
|
||||
return QOM.replace(
|
||||
this,
|
||||
$value(),
|
||||
$messageText(),
|
||||
constructor()::apply,
|
||||
replacement
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final <R> R traverse(
|
||||
R init,
|
||||
Predicate<? super R> abort,
|
||||
Predicate<? super MQueryPart> recurse,
|
||||
BiFunction<? super R, ? super MQueryPart, ? extends R> 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] */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user