[jOOQ/jOOQ#14357] Use ? as parameter marker on MySQL, MariaDB when using

R2DBC
This commit is contained in:
Lukas Eder 2023-02-08 14:41:45 +01:00
parent 2eca7a83bd
commit 3cdbc6abaa

View File

@ -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);