[jOOQ/jOOQ#18221] BatchMultiple rendering Context doesn't have a

Context.executeContext()
This commit is contained in:
Lukas Eder 2025-03-26 11:48:36 +01:00
parent 60b93556ab
commit a15ad7403b
4 changed files with 15 additions and 9 deletions

View File

@ -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, true);
Rendered rendered = Rendered.rendered(ctx.originalConfiguration(), ctx, ctx.query(), true, false);

View File

@ -50,6 +50,7 @@ import org.jooq.ExecuteListener;
import org.jooq.Query;
import org.jooq.conf.SettingsTools;
import org.jooq.exception.ControlFlowSignal;
import org.jooq.impl.DefaultRenderContext.Rendered;
import org.jooq.impl.R2DBC.BatchMultipleSubscriber;
import org.jooq.impl.R2DBC.BatchSubscription;
@ -124,8 +125,10 @@ final class BatchMultiple extends AbstractBatch {
for (int i = 0; i < ctx.batchQueries().length; i++) {
ctx.sql(null);
listener.renderStart(ctx);
batchSQL[i] = DSL.using(configuration).renderInlined(ctx.batchQueries()[i]);
ctx.sql(batchSQL[i]);
Rendered r = Rendered.rendered(configuration, ctx, ctx.batchQueries()[i], false, true);
r.setSQLAndParams(ctx);
ctx.sql(batchSQL[i] = r.sql);
listener.renderEnd(ctx);
}

View File

@ -207,7 +207,7 @@ final class BatchSingle extends AbstractBatch implements BatchBindStep {
ctx.transformQueries(listener);
listener.renderStart(ctx);
Rendered.rendered(configuration, ctx, false).setSQLAndParams(ctx);
Rendered.rendered(configuration, ctx, ctx.batchQueries()[0], false, false).setSQLAndParams(ctx);
listener.renderEnd(ctx);
listener.prepareStart(ctx);

View File

@ -924,10 +924,13 @@ class DefaultRenderContext extends AbstractContext<RenderContext> implements Ren
this.skipUpdateCounts = skipUpdateCounts;
}
static Rendered rendered(Configuration c, DefaultExecuteContext ctx, boolean countBindValues) {
Query query = ctx.batchMode() == BatchMode.SINGLE
? ctx.batchQueries()[0]
: ctx.query();
static Rendered rendered(
Configuration c,
DefaultExecuteContext ctx,
Query query,
boolean countBindValues,
boolean forceStaticStatement
) {
// [#3542] [#4977] Some dialects do not support bind values in DDL statements
// [#6474] [#6929] Can this be communicated in a leaner way?
@ -936,7 +939,7 @@ class DefaultRenderContext extends AbstractContext<RenderContext> implements Ren
DefaultRenderContext render = new DefaultRenderContext(c, ctx);
return new Rendered(render.paramType(INLINED).visit(query).render(), null, render.skipUpdateCounts());
}
else if (executePreparedStatements(c.settings())) {
else if (executePreparedStatements(c.settings()) && !forceStaticStatement) {
try {
DefaultRenderContext render = new DefaultRenderContext(c, ctx);
render.data(DATA_COUNT_BIND_VALUES, countBindValues);