diff --git a/jOOQ/src/main/java/org/jooq/impl/Utils.java b/jOOQ/src/main/java/org/jooq/impl/Utils.java
index 6739814194..4f37abab37 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Utils.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Utils.java
@@ -1175,8 +1175,7 @@ final class Utils {
String[][] quotes = QUOTES.get(family);
// [#3630] Depending on this setting, we need to consider backslashes as escape characters within string literals.
- BackslashEscaping escaping = getBackslashEscaping(ctx.configuration().settings());
- boolean needsBackslashEscaping = escaping == ON || (escaping == DEFAULT && EnumSet.of(MARIADB, MYSQL).contains(family));
+ boolean needsBackslashEscaping = needsBackslashEscaping(ctx.configuration());
for (int i = 0; i < sqlChars.length; i++) {
@@ -1340,6 +1339,14 @@ final class Utils {
}
}
+ /**
+ * Whether backslash escaping is needed in inlined string literals.
+ */
+ static final boolean needsBackslashEscaping(Configuration configuration) {
+ BackslashEscaping escaping = getBackslashEscaping(configuration.settings());
+ return escaping == ON || (escaping == DEFAULT && EnumSet.of(MARIADB, MYSQL).contains(configuration.dialect().family()));
+ }
+
/**
* Peek for a string at a given index of a char[]
*
diff --git a/jOOQ/src/main/java/org/jooq/impl/Val.java b/jOOQ/src/main/java/org/jooq/impl/Val.java
index 59dd7615fc..d0bc32d648 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Val.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Val.java
@@ -60,12 +60,11 @@ import static org.jooq.SQLDialect.POSTGRES;
import static org.jooq.SQLDialect.SQLITE;
// ...
// ...
-import static org.jooq.conf.BackslashEscaping.ON;
import static org.jooq.conf.ParamType.NAMED;
import static org.jooq.conf.ParamType.NAMED_OR_INLINED;
import static org.jooq.impl.DSL.name;
import static org.jooq.impl.DSL.using;
-import static org.jooq.impl.Utils.settings;
+import static org.jooq.impl.Utils.needsBackslashEscaping;
import static org.jooq.tools.StringUtils.leftPad;
import java.math.BigDecimal;
@@ -84,7 +83,6 @@ import org.jooq.RenderContext;
import org.jooq.SQLDialect;
import org.jooq.Schema;
import org.jooq.UDTRecord;
-import org.jooq.conf.BackslashEscaping;
import org.jooq.tools.StringUtils;
import org.jooq.types.Interval;
@@ -642,10 +640,9 @@ class Val extends AbstractParam {
* Escape a string literal by replacing ' by '', and possibly also backslashes.
*/
private final String escape(Object val, Context> context) {
- BackslashEscaping escaping = settings(context.configuration()).getBackslashEscaping();
String result = val.toString();
- if (escaping == ON)
+ if (needsBackslashEscaping(context.configuration()))
result = result.replace("\\", "\\\\");
return result.replace("'", "''");