[jOOQ/jOOQ#19431] DefaultRenderContext.checkForceInline() does not work
for R2DBC connections
This commit is contained in:
parent
4f26421ea4
commit
e6b8c01c95
@ -496,7 +496,7 @@ abstract class AbstractQuery<R extends Record> extends AbstractAttachableQueryPa
|
||||
}
|
||||
|
||||
private static final Rendered getSQL0(DefaultExecuteContext ctx) {
|
||||
Rendered rendered = Rendered.rendered(ctx.originalConfiguration(), ctx, ctx.query(), true, false);
|
||||
Rendered rendered = Rendered.rendered(ctx.originalConfiguration(), ctx, r -> {}, ctx.query(), true, false);
|
||||
|
||||
|
||||
|
||||
|
||||
@ -126,7 +126,7 @@ final class BatchMultiple extends AbstractBatch {
|
||||
ctx.sql(null);
|
||||
listener.renderStart(ctx);
|
||||
|
||||
Rendered r = Rendered.rendered(configuration, ctx, ctx.batchQueries()[i], false, true);
|
||||
Rendered r = Rendered.rendered(configuration, ctx, x -> {}, ctx.batchQueries()[i], false, true);
|
||||
r.setSQLAndParams(ctx);
|
||||
ctx.sql(batchSQL[i] = r.sql);
|
||||
listener.renderEnd(ctx);
|
||||
|
||||
@ -207,7 +207,7 @@ final class BatchSingle extends AbstractBatch implements BatchBindStep {
|
||||
ctx.transformQueries(listener);
|
||||
|
||||
listener.renderStart(ctx);
|
||||
Rendered.rendered(configuration, ctx, ctx.batchQueries()[0], false, false).setSQLAndParams(ctx);
|
||||
Rendered.rendered(configuration, ctx, r -> {}, ctx.batchQueries()[0], false, false).setSQLAndParams(ctx);
|
||||
listener.renderEnd(ctx);
|
||||
|
||||
listener.prepareStart(ctx);
|
||||
|
||||
@ -61,6 +61,7 @@ import java.util.ArrayDeque;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Deque;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.jooq.BindContext;
|
||||
@ -1006,6 +1007,7 @@ class DefaultRenderContext extends AbstractContext<RenderContext> implements Ren
|
||||
static Rendered rendered(
|
||||
Configuration c,
|
||||
DefaultExecuteContext ctx,
|
||||
Consumer<? super DefaultRenderContext> renderContextConsumer,
|
||||
Query query,
|
||||
boolean countBindValues,
|
||||
boolean forceStaticStatement
|
||||
@ -1016,22 +1018,26 @@ class DefaultRenderContext extends AbstractContext<RenderContext> implements Ren
|
||||
if (ctx.type() == DDL) {
|
||||
ctx.data(DATA_FORCE_STATIC_STATEMENT, true);
|
||||
DefaultRenderContext render = new DefaultRenderContext(c, ctx);
|
||||
renderContextConsumer.accept(render);
|
||||
return new Rendered(render.paramType(INLINED).visit(query).render(), null, render.skipUpdateCounts());
|
||||
}
|
||||
else if (executePreparedStatements(c.settings()) && !forceStaticStatement) {
|
||||
try {
|
||||
DefaultRenderContext render = new DefaultRenderContext(c, ctx);
|
||||
renderContextConsumer.accept(render);
|
||||
render.data(DATA_COUNT_BIND_VALUES, countBindValues);
|
||||
return new Rendered(render.visit(query).render(), render.bindValues(), render.skipUpdateCounts());
|
||||
}
|
||||
catch (DefaultRenderContext.ForceInlineSignal e) {
|
||||
ctx.data(DATA_FORCE_STATIC_STATEMENT, true);
|
||||
DefaultRenderContext render = new DefaultRenderContext(c, ctx);
|
||||
renderContextConsumer.accept(render);
|
||||
return new Rendered(render.paramType(INLINED).visit(query).render(), null, render.skipUpdateCounts());
|
||||
}
|
||||
}
|
||||
else {
|
||||
DefaultRenderContext render = new DefaultRenderContext(c, ctx);
|
||||
renderContextConsumer.accept(render);
|
||||
return new Rendered(render.paramType(INLINED).visit(query).render(), null, render.skipUpdateCounts());
|
||||
}
|
||||
}
|
||||
|
||||
@ -938,17 +938,17 @@ final class R2DBC {
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
static final Rendered rendered(Configuration configuration, Query query) {
|
||||
DefaultRenderContext render = new DefaultRenderContext(configuration.deriveSettings(s ->
|
||||
setParamType(configuration.dialect(), s)
|
||||
), null);
|
||||
Configuration c = configuration.deriveSettings(s -> setParamType(configuration.dialect(), s));
|
||||
|
||||
// [#17088] Some rendering decisions may be made based on whether we're using R2DBC
|
||||
render.data(DATA_RENDER_FOR_R2DBC, true);
|
||||
return Rendered.rendered(
|
||||
c,
|
||||
new DefaultExecuteContext(c, query),
|
||||
|
||||
return new Rendered(
|
||||
render.paramType(render.settings().getParamType()).visit(query).render(),
|
||||
render.bindValues(),
|
||||
render.skipUpdateCounts()
|
||||
// [#17088] Some rendering decisions may be made based on whether we're using R2DBC
|
||||
r -> r.paramType(c.settings().getParamType()).data(DATA_RENDER_FOR_R2DBC, true),
|
||||
query,
|
||||
true,
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user