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