From e9d3564ebdd6b276201669abe945e54dd5599d71 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 26 Feb 2024 16:11:21 +0100 Subject: [PATCH] [jOOQ/jOOQ#16332] Fix regression in internal bindParamListener feature --- jOOQ/src/main/java/org/jooq/impl/ParserImpl.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 6be2e297f8..8bf769cea5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -15381,9 +15381,17 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { // [#11054] Use a VisitListener to find actual Params in the expression tree, // which may have more refined DataTypes attached to them, from context dsl.configuration().deriveAppending(onVisitStart(ctx -> { - if (ctx.queryPart() instanceof Param p) - if (!params.containsKey(p.getParamName())) - params.put(p.getParamName(), p); + if (ctx.queryPart() instanceof Param p) { + if (!p.isInline()) { + String name = p.getParamName(); + + if (name == null) + name = "" + ctx.context().peekIndex(); + + if (!params.containsKey(name)) + params.put(name, p); + } + } })).dsl().render(result); for (String name : bindParams.keySet())