From e99c73b762f54b1d6b746cadeaac72f299ff23e5 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 26 Feb 2024 16:09:15 +0100 Subject: [PATCH] [jOOQ/jOOQ#16340] DefaultRenderContext::peekIndex doesn't contain correct bind index --- jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java | 3 +++ jOOQ/src/main/java/org/jooq/impl/Val.java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java b/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java index 0f9446e945..885a9b5f37 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultRenderContext.java @@ -736,6 +736,9 @@ class DefaultRenderContext extends AbstractContext implements Ren Param param = (Param) internal; if (!param.isInline()) { + + // [#16340] Increment index even if we don't need it internally, while rendering + nextIndex(); bindValues.add(param); Integer threshold = settings().getInlineThreshold(); diff --git a/jOOQ/src/main/java/org/jooq/impl/Val.java b/jOOQ/src/main/java/org/jooq/impl/Val.java index 9e70a2bbbd..03b43a18e3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Val.java +++ b/jOOQ/src/main/java/org/jooq/impl/Val.java @@ -351,7 +351,7 @@ final class Val extends AbstractParam implements UEmpty { @NotNull final String getBindVariable(Context ctx) { if (ctx.paramType() == NAMED || ctx.paramType() == NAMED_OR_INLINED) { - int index = ctx.nextIndex(); + int index = ctx.peekIndex(); String prefix = defaultIfNull(ctx.settings().getRenderNamedParamPrefix(), ":"); if (StringUtils.isBlank(getParamName()))