diff --git a/jOOQ/src/main/java/org/jooq/conf/QuoteEscaping.java b/jOOQ/src/main/java/org/jooq/conf/QuoteEscaping.java
index d050b63219..e505fb09db 100644
--- a/jOOQ/src/main/java/org/jooq/conf/QuoteEscaping.java
+++ b/jOOQ/src/main/java/org/jooq/conf/QuoteEscaping.java
@@ -14,19 +14,19 @@ import javax.xml.bind.annotation.XmlType;
/**
*
Java class for QuoteEscaping.
- *
+ *
*
The following schema fragment specifies the expected content contained within this class.
*
*
- * <simpleType name="QuoteEscaping">
- * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
- * <enumeration value="DEFAULT"/>
- * <enumeration value="QUOTE"/>
- * <enumeration value="ESCAPE"/>
- * </restriction>
- * </simpleType>
+ * <simpleType name="QuoteEscaping">
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * <enumeration value="DEFAULT"/>
+ * <enumeration value="QUOTE"/>
+ * <enumeration value="BACKSLASH"/>
+ * </restriction>
+ * </simpleType>
*
- *
+ *
*/
@XmlType(name = "QuoteEscaping")
@XmlEnum
diff --git a/jOOQ/src/main/java/org/jooq/conf/Settings.java b/jOOQ/src/main/java/org/jooq/conf/Settings.java
index a895b4a8a1..792ace0812 100644
--- a/jOOQ/src/main/java/org/jooq/conf/Settings.java
+++ b/jOOQ/src/main/java/org/jooq/conf/Settings.java
@@ -351,7 +351,7 @@ public class Settings
}
/**
- * Whether string literals should be escaped with backslash.
+ * Whether quotes in strings literals should be escaped with quote repeating or backslash.
*
* @return
* possible object is
@@ -1279,6 +1279,11 @@ public class Settings
sb.append(backslashEscaping);
sb.append("");
}
+ if (quoteEscaping!= null) {
+ sb.append("");
+ sb.append(quoteEscaping);
+ sb.append("");
+ }
if (paramType!= null) {
sb.append("");
sb.append(paramType);
@@ -1510,6 +1515,15 @@ public class Settings
return false;
}
}
+ if (quoteEscaping == null) {
+ if (other.quoteEscaping!= null) {
+ return false;
+ }
+ } else {
+ if (!quoteEscaping.equals(other.quoteEscaping)) {
+ return false;
+ }
+ }
if (paramType == null) {
if (other.paramType!= null) {
return false;
@@ -1769,6 +1783,7 @@ public class Settings
result = ((prime*result)+((renderFormatting == null)? 0 :renderFormatting.hashCode()));
result = ((prime*result)+((renderScalarSubqueriesForStoredFunctions == null)? 0 :renderScalarSubqueriesForStoredFunctions.hashCode()));
result = ((prime*result)+((backslashEscaping == null)? 0 :backslashEscaping.hashCode()));
+ result = ((prime*result)+((quoteEscaping == null)? 0 :quoteEscaping.hashCode()));
result = ((prime*result)+((paramType == null)? 0 :paramType.hashCode()));
result = ((prime*result)+((paramCastMode == null)? 0 :paramCastMode.hashCode()));
result = ((prime*result)+((statementType == null)? 0 :statementType.hashCode()));
diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java
index 09265bd55a..ae9f00e643 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Tools.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java
@@ -1799,6 +1799,8 @@ final class Tools {
// [#3630] Depending on this setting, we need to consider backslashes as escape characters within string literals.
boolean needsBackslashEscaping = needsBackslashEscaping(ctx.configuration());
+
+ // [#5873] [#7314] This setting governs how quotes are escaped within string literals
boolean quotesNeedsBackslashEscaping = quotesNeedsBackslashEscaping(ctx.configuration());
characterLoop:
diff --git a/jOOQ/src/main/resources/xsd/jooq-runtime-3.11.0.xsd b/jOOQ/src/main/resources/xsd/jooq-runtime-3.11.0.xsd
index f9b02e3c8b..a59aef7741 100644
--- a/jOOQ/src/main/resources/xsd/jooq-runtime-3.11.0.xsd
+++ b/jOOQ/src/main/resources/xsd/jooq-runtime-3.11.0.xsd
@@ -488,4 +488,4 @@ Either <input/> or <inputExpression/> must be provided]]>
-
+
\ No newline at end of file