diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/Constants.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/Constants.java
index 2589917362..faab8b8c0e 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/codegen/Constants.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/Constants.java
@@ -74,7 +74,7 @@ public final class Constants {
/**
* The current jooq-runtime XSD file name.
*/
- public static final String XSD_RUNTIME = "jooq-runtime-3.18.0.xsd";
+ public static final String XSD_RUNTIME = "jooq-runtime-3.19.0.xsd";
/**
* The current jooq-runtime XML namespace.
diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/Constants.java b/jOOQ-meta/src/main/java/org/jooq/meta/Constants.java
index 57dd97f9b4..8a96d70e3b 100644
--- a/jOOQ-meta/src/main/java/org/jooq/meta/Constants.java
+++ b/jOOQ-meta/src/main/java/org/jooq/meta/Constants.java
@@ -74,7 +74,7 @@ public final class Constants {
/**
* The current jooq-runtime XSD file name.
*/
- public static final String XSD_RUNTIME = "jooq-runtime-3.18.0.xsd";
+ public static final String XSD_RUNTIME = "jooq-runtime-3.19.0.xsd";
/**
* The current jooq-runtime XML namespace.
diff --git a/jOOQ/src/main/java/org/jooq/Constants.java b/jOOQ/src/main/java/org/jooq/Constants.java
index 31e72c39c5..56bdc6dd90 100644
--- a/jOOQ/src/main/java/org/jooq/Constants.java
+++ b/jOOQ/src/main/java/org/jooq/Constants.java
@@ -74,7 +74,7 @@ public final class Constants {
/**
* The current jooq-runtime XSD file name.
*/
- public static final String XSD_RUNTIME = "jooq-runtime-3.18.0.xsd";
+ public static final String XSD_RUNTIME = "jooq-runtime-3.19.0.xsd";
/**
* The current jooq-runtime XML namespace.
diff --git a/jOOQ/src/main/java/org/jooq/conf/InterpreterSearchSchema.java b/jOOQ/src/main/java/org/jooq/conf/InterpreterSearchSchema.java
index 5dd24cf48e..78efcfa2ca 100644
--- a/jOOQ/src/main/java/org/jooq/conf/InterpreterSearchSchema.java
+++ b/jOOQ/src/main/java/org/jooq/conf/InterpreterSearchSchema.java
@@ -28,7 +28,7 @@ public class InterpreterSearchSchema
implements Serializable, Cloneable, XMLAppendable
{
- private final static long serialVersionUID = 31800L;
+ private final static long serialVersionUID = 31900L;
protected String catalog;
@XmlElement(required = true)
protected String schema;
diff --git a/jOOQ/src/main/java/org/jooq/conf/MappedCatalog.java b/jOOQ/src/main/java/org/jooq/conf/MappedCatalog.java
index c5dc131855..63e0b4ae83 100644
--- a/jOOQ/src/main/java/org/jooq/conf/MappedCatalog.java
+++ b/jOOQ/src/main/java/org/jooq/conf/MappedCatalog.java
@@ -34,7 +34,7 @@ public class MappedCatalog
implements Serializable, Cloneable, XMLAppendable
{
- private final static long serialVersionUID = 31800L;
+ private final static long serialVersionUID = 31900L;
protected String input;
@XmlElement(type = String.class)
@XmlJavaTypeAdapter(RegexAdapter.class)
diff --git a/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java b/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java
index 06c1e01a58..4178ff59d4 100644
--- a/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java
+++ b/jOOQ/src/main/java/org/jooq/conf/MappedSchema.java
@@ -34,7 +34,7 @@ public class MappedSchema
implements Serializable, Cloneable, XMLAppendable
{
- private final static long serialVersionUID = 31800L;
+ private final static long serialVersionUID = 31900L;
protected String input;
@XmlElement(type = String.class)
@XmlJavaTypeAdapter(RegexAdapter.class)
diff --git a/jOOQ/src/main/java/org/jooq/conf/MappedTable.java b/jOOQ/src/main/java/org/jooq/conf/MappedTable.java
index 78052e4fba..266e0b3a0a 100644
--- a/jOOQ/src/main/java/org/jooq/conf/MappedTable.java
+++ b/jOOQ/src/main/java/org/jooq/conf/MappedTable.java
@@ -30,7 +30,7 @@ public class MappedTable
implements Serializable, Cloneable, XMLAppendable
{
- private final static long serialVersionUID = 31800L;
+ private final static long serialVersionUID = 31900L;
protected String input;
@XmlElement(type = String.class)
@XmlJavaTypeAdapter(RegexAdapter.class)
diff --git a/jOOQ/src/main/java/org/jooq/conf/MigrationSchema.java b/jOOQ/src/main/java/org/jooq/conf/MigrationSchema.java
index 0eba528738..b099a01abe 100644
--- a/jOOQ/src/main/java/org/jooq/conf/MigrationSchema.java
+++ b/jOOQ/src/main/java/org/jooq/conf/MigrationSchema.java
@@ -28,7 +28,7 @@ public class MigrationSchema
implements Serializable, Cloneable, XMLAppendable
{
- private final static long serialVersionUID = 31800L;
+ private final static long serialVersionUID = 31900L;
protected String catalog;
@XmlElement(required = true)
protected String schema;
diff --git a/jOOQ/src/main/java/org/jooq/conf/ParseSearchSchema.java b/jOOQ/src/main/java/org/jooq/conf/ParseSearchSchema.java
index 5d3fabfe3a..448401cafa 100644
--- a/jOOQ/src/main/java/org/jooq/conf/ParseSearchSchema.java
+++ b/jOOQ/src/main/java/org/jooq/conf/ParseSearchSchema.java
@@ -28,7 +28,7 @@ public class ParseSearchSchema
implements Serializable, Cloneable, XMLAppendable
{
- private final static long serialVersionUID = 31800L;
+ private final static long serialVersionUID = 31900L;
protected String catalog;
@XmlElement(required = true)
protected String schema;
diff --git a/jOOQ/src/main/java/org/jooq/conf/RenderFormatting.java b/jOOQ/src/main/java/org/jooq/conf/RenderFormatting.java
index cd9f9d0121..92d82d065d 100644
--- a/jOOQ/src/main/java/org/jooq/conf/RenderFormatting.java
+++ b/jOOQ/src/main/java/org/jooq/conf/RenderFormatting.java
@@ -28,7 +28,7 @@ public class RenderFormatting
implements Serializable, Cloneable, XMLAppendable
{
- private final static long serialVersionUID = 31800L;
+ private final static long serialVersionUID = 31900L;
@XmlElement(defaultValue = "\n")
protected String newline = "\n";
@XmlElement(defaultValue = " ")
diff --git a/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java b/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java
index 66806c2fa6..50d5c61532 100644
--- a/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java
+++ b/jOOQ/src/main/java/org/jooq/conf/RenderMapping.java
@@ -32,7 +32,7 @@ public class RenderMapping
implements Serializable, Cloneable, XMLAppendable
{
- private final static long serialVersionUID = 31800L;
+ private final static long serialVersionUID = 31900L;
protected String defaultCatalog;
protected String defaultSchema;
@XmlElementWrapper(name = "catalogs")
diff --git a/jOOQ/src/main/java/org/jooq/conf/Settings.java b/jOOQ/src/main/java/org/jooq/conf/Settings.java
index 661178c0cc..f5a0aae2fd 100644
--- a/jOOQ/src/main/java/org/jooq/conf/Settings.java
+++ b/jOOQ/src/main/java/org/jooq/conf/Settings.java
@@ -36,7 +36,7 @@ public class Settings
implements Serializable, Cloneable, XMLAppendable
{
- private final static long serialVersionUID = 31800L;
+ private final static long serialVersionUID = 31900L;
@XmlElement(defaultValue = "true")
protected Boolean forceIntegerTypesOnZeroScaleDecimals = true;
@XmlElement(defaultValue = "true")
@@ -114,6 +114,8 @@ public class Settings
protected Boolean renderRedundantConditionForSeekClause = false;
@XmlElement(defaultValue = "false")
protected Boolean renderPlainSQLTemplatesAsRaw = false;
+ @XmlElement(defaultValue = "")
+ protected String renderDollarQuotedStringToken = "";
@XmlElement(defaultValue = ".")
protected String namePathSeparator = ".";
@XmlElement(defaultValue = "false")
@@ -1288,6 +1290,22 @@ public class Settings
this.renderPlainSQLTemplatesAsRaw = value;
}
+ /**
+ * The token to place between the $$ signs of a PostgreSQL dollar quoted string generated by jOOQ.
+ *
+ */
+ public String getRenderDollarQuotedStringToken() {
+ return renderDollarQuotedStringToken;
+ }
+
+ /**
+ * The token to place between the $$ signs of a PostgreSQL dollar quoted string generated by jOOQ.
+ *
+ */
+ public void setRenderDollarQuotedStringToken(String value) {
+ this.renderDollarQuotedStringToken = value;
+ }
+
/**
* The character(s) to be used as a separator in paths encoded in a {@link Name}
*
@@ -6125,6 +6143,15 @@ public class Settings
return this;
}
+ /**
+ * The token to place between the $$ signs of a PostgreSQL dollar quoted string generated by jOOQ.
+ *
+ */
+ public Settings withRenderDollarQuotedStringToken(String value) {
+ setRenderDollarQuotedStringToken(value);
+ return this;
+ }
+
/**
* The character(s) to be used as a separator in paths encoded in a {@link Name}
*
@@ -7444,6 +7471,7 @@ public class Settings
builder.append("renderRowConditionForSeekClause", renderRowConditionForSeekClause);
builder.append("renderRedundantConditionForSeekClause", renderRedundantConditionForSeekClause);
builder.append("renderPlainSQLTemplatesAsRaw", renderPlainSQLTemplatesAsRaw);
+ builder.append("renderDollarQuotedStringToken", renderDollarQuotedStringToken);
builder.append("namePathSeparator", namePathSeparator);
builder.append("bindOffsetDateTimeType", bindOffsetDateTimeType);
builder.append("bindOffsetTimeType", bindOffsetTimeType);
@@ -7936,6 +7964,15 @@ public class Settings
return false;
}
}
+ if (renderDollarQuotedStringToken == null) {
+ if (other.renderDollarQuotedStringToken!= null) {
+ return false;
+ }
+ } else {
+ if (!renderDollarQuotedStringToken.equals(other.renderDollarQuotedStringToken)) {
+ return false;
+ }
+ }
if (namePathSeparator == null) {
if (other.namePathSeparator!= null) {
return false;
@@ -9622,6 +9659,7 @@ public class Settings
result = ((prime*result)+((renderRowConditionForSeekClause == null)? 0 :renderRowConditionForSeekClause.hashCode()));
result = ((prime*result)+((renderRedundantConditionForSeekClause == null)? 0 :renderRedundantConditionForSeekClause.hashCode()));
result = ((prime*result)+((renderPlainSQLTemplatesAsRaw == null)? 0 :renderPlainSQLTemplatesAsRaw.hashCode()));
+ result = ((prime*result)+((renderDollarQuotedStringToken == null)? 0 :renderDollarQuotedStringToken.hashCode()));
result = ((prime*result)+((namePathSeparator == null)? 0 :namePathSeparator.hashCode()));
result = ((prime*result)+((bindOffsetDateTimeType == null)? 0 :bindOffsetDateTimeType.hashCode()));
result = ((prime*result)+((bindOffsetTimeType == null)? 0 :bindOffsetTimeType.hashCode()));
diff --git a/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java b/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java
index 1b17f91156..75a7c5aeb6 100644
--- a/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java
@@ -323,7 +323,7 @@ final class BlockImpl extends AbstractRowCountQuery implements Block {
if (keyword != null)
ctx.visit(keyword).sql(' ');
- ctx.sql("$$")
+ ctx.sql('$').sql(ctx.settings().getRenderDollarQuotedStringToken()).sql('$')
.formatSeparator()
.data(DATA_FORCE_STATIC_STATEMENT, true);
}
@@ -332,7 +332,7 @@ final class BlockImpl extends AbstractRowCountQuery implements Block {
if (decrement(ctx.data(), DATA_BLOCK_NESTING))
ctx.formatSeparator()
- .sql("$$")
+ .sql('$').sql(ctx.settings().getRenderDollarQuotedStringToken()).sql('$')
.paramType(previous);
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java
index 234f472a4d..2edbac6eec 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Tools.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java
@@ -5047,7 +5047,7 @@ final class Tools {
case POSTGRES:
case YUGABYTEDB:
if (increment(ctx.data(), DATA_BLOCK_NESTING))
- ctx.visit(K_DO).sql(" $$").formatSeparator();
+ ctx.visit(K_DO).sql(" $").sql(ctx.settings().getRenderDollarQuotedStringToken()).sql('$').formatSeparator();
ctx.visit(K_BEGIN).formatIndentStart().formatSeparator();
break;
@@ -5082,7 +5082,7 @@ final class Tools {
.visit(K_END);
if (decrement(ctx.data(), DATA_BLOCK_NESTING))
- ctx.sql(" $$");
+ ctx.sql(" $").sql(ctx.settings().getRenderDollarQuotedStringToken()).sql('$');
break;
}
diff --git a/jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.18.0.xsd b/jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.19.0.xsd
similarity index 99%
rename from jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.18.0.xsd
rename to jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.19.0.xsd
index aa1ab8bd74..309e482fa8 100644
--- a/jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.18.0.xsd
+++ b/jOOQ/src/main/resources/org/jooq/xsd/jooq-runtime-3.19.0.xsd
@@ -1,10 +1,10 @@
(a <= :a) AND (a, b) < ('a', 'b')