From 3cdbc6abaa0b13f0dcb20bf9a3d6a024cb31a9a9 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 8 Feb 2023 14:41:45 +0100 Subject: [PATCH] [jOOQ/jOOQ#14357] Use ? as parameter marker on MySQL, MariaDB when using R2DBC --- jOOQ/src/main/java/org/jooq/impl/R2DBC.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/R2DBC.java b/jOOQ/src/main/java/org/jooq/impl/R2DBC.java index ed6c6649f9..efa996728d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/R2DBC.java +++ b/jOOQ/src/main/java/org/jooq/impl/R2DBC.java @@ -764,7 +764,11 @@ final class R2DBC { setParamType(configuration.dialect(), s) ), null); - return new Rendered(render.paramType(NAMED).visit(query).render(), render.bindValues(), render.skipUpdateCounts()); + return new Rendered( + render.paramType(render.settings().getParamType()).visit(query).render(), + render.bindValues(), + render.skipUpdateCounts() + ); } static final long addNoOverflow(long x, long y) { @@ -1416,15 +1420,16 @@ final class R2DBC { static final Settings setParamType(SQLDialect dialect, Settings settings) { switch (dialect.family()) { + + // [#14357] While Oracle style :x markers seem to work mostly, + // there's a bug in r2dbc-mariadb that produces syntax + // errors in rare cases. case MYSQL: - return settings - .withParamType(NAMED) - .withRenderNamedParamPrefix("?p") - .withParseNamedParamPrefix("?p"); - case MARIADB: + return settings; + + - return settings.withParamType(NAMED);