diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java
index 1eb9b83393..b093728dd3 100644
--- a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java
+++ b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractDatabase.java
@@ -351,7 +351,7 @@ public abstract class AbstractDatabase implements Database {
// cases where quoting would have been necessary were found in
// integration tests, or when looking for identifiers matching
// [A-Za-z_$#][A-Za-z0-9_$#]+ in generated jOOQ-meta code.
- configuration.settings().setRenderQuotedNames(RenderQuotedNames.NEVER);
+ configuration.settings().setRenderQuotedNames(getRenderQuotedNames());
if (muteExceptions) {
return DSL.using(configuration);
@@ -464,6 +464,13 @@ public abstract class AbstractDatabase implements Database {
}
}
+ /**
+ * Subclasses may override this.
+ */
+ protected RenderQuotedNames getRenderQuotedNames() {
+ return RenderQuotedNames.NEVER;
+ }
+
/**
* Check if the configured dialect is versioned explicitly and supports a
* given dialect.
diff --git a/jOOQ/src/main/java/org/jooq/XMLAggOrderByStep.java b/jOOQ/src/main/java/org/jooq/XMLAggOrderByStep.java
index 67d61ff6ea..1fe7043601 100644
--- a/jOOQ/src/main/java/org/jooq/XMLAggOrderByStep.java
+++ b/jOOQ/src/main/java/org/jooq/XMLAggOrderByStep.java
@@ -37,16 +37,16 @@
*/
package org.jooq;
-import org.jetbrains.annotations.*;
-
-
// ...
import static org.jooq.SQLDialect.POSTGRES;
+// ...
import java.util.Collection;
import org.jooq.impl.DSL;
+import org.jetbrains.annotations.NotNull;
+
/**
* The SQL standard ARRAY_AGG() function.
*
diff --git a/jOOQ/src/main/java/org/jooq/XMLExistsPassingStep.java b/jOOQ/src/main/java/org/jooq/XMLExistsPassingStep.java
index bab58278b8..c0e0fcb743 100644
--- a/jOOQ/src/main/java/org/jooq/XMLExistsPassingStep.java
+++ b/jOOQ/src/main/java/org/jooq/XMLExistsPassingStep.java
@@ -37,12 +37,12 @@
*/
package org.jooq;
-import org.jetbrains.annotations.*;
-
-
// ...
// ...
import static org.jooq.SQLDialect.POSTGRES;
+// ...
+
+import org.jetbrains.annotations.NotNull;
/**
* A step in the construction of an XMLEXISTS predicate.
diff --git a/jOOQ/src/main/java/org/jooq/XMLQueryPassingStep.java b/jOOQ/src/main/java/org/jooq/XMLQueryPassingStep.java
index 4e05158056..59eb03fc68 100644
--- a/jOOQ/src/main/java/org/jooq/XMLQueryPassingStep.java
+++ b/jOOQ/src/main/java/org/jooq/XMLQueryPassingStep.java
@@ -37,12 +37,12 @@
*/
package org.jooq;
-import org.jetbrains.annotations.*;
-
-
// ...
// ...
import static org.jooq.SQLDialect.POSTGRES;
+// ...
+
+import org.jetbrains.annotations.NotNull;
/**
* A step in the construction of an XMLQUERY expression.
diff --git a/jOOQ/src/main/java/org/jooq/XMLTableColumnForOrdinalityStep.java b/jOOQ/src/main/java/org/jooq/XMLTableColumnForOrdinalityStep.java
index 69c1fdf75a..1788475fdf 100644
--- a/jOOQ/src/main/java/org/jooq/XMLTableColumnForOrdinalityStep.java
+++ b/jOOQ/src/main/java/org/jooq/XMLTableColumnForOrdinalityStep.java
@@ -42,6 +42,7 @@ package org.jooq;
// ...
import static org.jooq.SQLDialect.POSTGRES;
// ...
+// ...
import org.jetbrains.annotations.NotNull;
diff --git a/jOOQ/src/main/java/org/jooq/XMLTableColumnPathStep.java b/jOOQ/src/main/java/org/jooq/XMLTableColumnPathStep.java
index dc91c30ba7..bb68f1b512 100644
--- a/jOOQ/src/main/java/org/jooq/XMLTableColumnPathStep.java
+++ b/jOOQ/src/main/java/org/jooq/XMLTableColumnPathStep.java
@@ -42,6 +42,7 @@ package org.jooq;
// ...
import static org.jooq.SQLDialect.POSTGRES;
// ...
+// ...
import org.jetbrains.annotations.NotNull;
diff --git a/jOOQ/src/main/java/org/jooq/XMLTableColumnsFirstStep.java b/jOOQ/src/main/java/org/jooq/XMLTableColumnsFirstStep.java
index a9a105338e..573ba6973e 100644
--- a/jOOQ/src/main/java/org/jooq/XMLTableColumnsFirstStep.java
+++ b/jOOQ/src/main/java/org/jooq/XMLTableColumnsFirstStep.java
@@ -42,6 +42,7 @@ package org.jooq;
// ...
import static org.jooq.SQLDialect.POSTGRES;
// ...
+// ...
import org.jetbrains.annotations.NotNull;
diff --git a/jOOQ/src/main/java/org/jooq/XMLTablePassingStep.java b/jOOQ/src/main/java/org/jooq/XMLTablePassingStep.java
index 7c6a31dd3b..965ed489b1 100644
--- a/jOOQ/src/main/java/org/jooq/XMLTablePassingStep.java
+++ b/jOOQ/src/main/java/org/jooq/XMLTablePassingStep.java
@@ -42,6 +42,7 @@ package org.jooq;
// ...
import static org.jooq.SQLDialect.POSTGRES;
// ...
+// ...
import org.jetbrains.annotations.NotNull;
diff --git a/jOOQ/src/main/java/org/jooq/impl/Keywords.java b/jOOQ/src/main/java/org/jooq/impl/Keywords.java
index 4f5fdc5ff6..c722e7f81f 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Keywords.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Keywords.java
@@ -320,6 +320,7 @@ final class Keywords {
static final Keyword K_PLACING = keyword("placing");
static final Keyword K_POSITION = keyword("position");
static final Keyword K_PRECEDING = keyword("preceding");
+ static final Keyword K_PRESERVE = keyword("preserve");
static final Keyword K_PREVIOUS_VALUE_FOR = keyword("previous value for");
static final Keyword K_PRIMARY_KEY = keyword("primary key");
static final Keyword K_PRIOR = keyword("prior");
@@ -431,6 +432,7 @@ final class Keywords {
static final Keyword K_WHEN = keyword("when");
static final Keyword K_WHERE = keyword("where");
static final Keyword K_WHILE = keyword("while");
+ static final Keyword K_WHITESPACE = keyword("whitespace");
static final Keyword K_WINDOW = keyword("window");
static final Keyword K_WITH = keyword("with");
static final Keyword K_WITHIN_GROUP = keyword("within group");
diff --git a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java
index 09e5a09bfc..4dba16b47e 100644
--- a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java
@@ -57,6 +57,7 @@ import static org.jooq.SQLDialect.HSQLDB;
// ...
// ...
// ...
+import static org.jooq.conf.ParamType.INLINED;
import static org.jooq.impl.DSL.condition;
import static org.jooq.impl.DSL.exists;
import static org.jooq.impl.DSL.insertInto;
@@ -169,6 +170,7 @@ import org.jooq.Select;
import org.jooq.Table;
import org.jooq.TableLike;
import org.jooq.UniqueKey;
+import org.jooq.conf.ParamType;
import org.jooq.impl.Tools.DataExtendedKey;
import org.jooq.tools.StringUtils;
@@ -1458,6 +1460,7 @@ implements
if (usingDual) {
switch (c2.family()) {
case DERBY:
+
c2.visit(new Dual());
break;
default:
diff --git a/jOOQ/src/main/java/org/jooq/impl/NotField.java b/jOOQ/src/main/java/org/jooq/impl/NotField.java
index 6bcc880f27..fdc232057d 100644
--- a/jOOQ/src/main/java/org/jooq/impl/NotField.java
+++ b/jOOQ/src/main/java/org/jooq/impl/NotField.java
@@ -64,7 +64,6 @@ final class NotField extends AbstractField {
public final void accept(Context> ctx) {
switch (ctx.family()) {
- // [#2485] Some of these don't work nicely, yet
diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java
index d8d883161c..691b543d9d 100644
--- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java
+++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java
@@ -1555,10 +1555,11 @@ final class SelectQueryImpl extends AbstractResultQuery imp
+
else
- ctx.data(DATA_TRANSFORM_ROWNUM_TO_LIMIT, null, c -> accept0(c));
+ accept0(ctx);
}
final void accept0(Context> context) {
@@ -3097,9 +3098,6 @@ final class SelectQueryImpl extends AbstractResultQuery imp
-
-
-
diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java
index 879854bdc3..35a9d5a711 100644
--- a/jOOQ/src/main/java/org/jooq/impl/Tools.java
+++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java
@@ -4847,6 +4847,7 @@ final class Tools {
// [#5062] H2's (and others') AUTO_INCREMENT flag is syntactically located *after* NULL flags.
switch (ctx.family()) {
+
case H2: ctx.sql(' ').visit(K_GENERATED_BY_DEFAULT_AS_IDENTITY); break;
diff --git a/jOOQ/src/main/java/org/jooq/impl/WidthBucket.java b/jOOQ/src/main/java/org/jooq/impl/WidthBucket.java
index 3e2c50cb5c..46b3d6b51d 100644
--- a/jOOQ/src/main/java/org/jooq/impl/WidthBucket.java
+++ b/jOOQ/src/main/java/org/jooq/impl/WidthBucket.java
@@ -102,11 +102,6 @@ extends
-
-
-
-
-
case POSTGRES:
ctx.visit(keyword("width_bucket")).sql('(').visit(field).sql(", ").visit(low).sql(", ").visit(high).sql(", ").visit(buckets).sql(')');
break;
diff --git a/jOOQ/src/main/java/org/jooq/impl/XMLParse.java b/jOOQ/src/main/java/org/jooq/impl/XMLParse.java
index 65177516cf..48156efa0d 100644
--- a/jOOQ/src/main/java/org/jooq/impl/XMLParse.java
+++ b/jOOQ/src/main/java/org/jooq/impl/XMLParse.java
@@ -37,11 +37,14 @@
*/
package org.jooq.impl;
+// ...
import static org.jooq.impl.DSL.inline;
import static org.jooq.impl.DSL.xmlparseDocument;
import static org.jooq.impl.DSL.xmlquery;
import static org.jooq.impl.Keywords.K_CONTENT;
import static org.jooq.impl.Keywords.K_DOCUMENT;
+import static org.jooq.impl.Keywords.K_PRESERVE;
+import static org.jooq.impl.Keywords.K_WHITESPACE;
import static org.jooq.impl.Names.N_XMLPARSE;
import static org.jooq.impl.SQLDataType.VARCHAR;
import static org.jooq.impl.XMLParse.DocumentOrContent.DOCUMENT;
@@ -86,6 +89,7 @@ final class XMLParse extends AbstractField {
+
case POSTGRES:
default:
@@ -101,8 +105,14 @@ final class XMLParse extends AbstractField {
) {
ctx.visit(N_XMLPARSE).sql('(')
.visit(documentOrContent == DOCUMENT ? K_DOCUMENT : K_CONTENT).sql(' ')
- .visit(content)
- .sql(')');
+ .visit(content);
+
+
+
+
+
+
+ ctx.sql(')');
}
enum DocumentOrContent { DOCUMENT, CONTENT }