From 6450d49b40fb3ffff7b3d012cd8a7854c49b196b Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 3 Mar 2021 14:57:36 +0100 Subject: [PATCH] [jOOQ/jOOQ#1985] Add EXASOL support (WIP) --- jOOQ/src/main/java/org/jooq/CreateViewAsStep.java | 1 + jOOQ/src/main/java/org/jooq/InsertOnConflictDoUpdateStep.java | 1 + jOOQ/src/main/java/org/jooq/InsertOnConflictWhereStep.java | 1 + jOOQ/src/main/java/org/jooq/InsertOnDuplicateSetStep.java | 1 + jOOQ/src/main/java/org/jooq/InsertOnDuplicateStep.java | 1 + jOOQ/src/main/java/org/jooq/LoaderOptionsStep.java | 1 + jOOQ/src/main/java/org/jooq/MergeKeyStepN.java | 1 + jOOQ/src/main/java/org/jooq/MergeMatchedDeleteStep.java | 1 + jOOQ/src/main/java/org/jooq/MergeMatchedSetStep.java | 1 + jOOQ/src/main/java/org/jooq/MergeMatchedStep.java | 1 + jOOQ/src/main/java/org/jooq/MergeMatchedThenStep.java | 1 + jOOQ/src/main/java/org/jooq/MergeMatchedWhereStep.java | 1 + jOOQ/src/main/java/org/jooq/MergeNotMatchedSetStep.java | 1 + jOOQ/src/main/java/org/jooq/MergeOnConditionStep.java | 1 + jOOQ/src/main/java/org/jooq/MergeOnStep.java | 1 + jOOQ/src/main/java/org/jooq/MergeUsingStep.java | 1 + jOOQ/src/main/java/org/jooq/MergeValuesStepN.java | 1 + jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java | 1 + jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java | 1 + jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java | 4 +++- 20 files changed, 22 insertions(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/CreateViewAsStep.java b/jOOQ/src/main/java/org/jooq/CreateViewAsStep.java index 0f5b374f69..4bb6787f1e 100644 --- a/jOOQ/src/main/java/org/jooq/CreateViewAsStep.java +++ b/jOOQ/src/main/java/org/jooq/CreateViewAsStep.java @@ -46,6 +46,7 @@ package org.jooq; import static org.jooq.SQLDialect.CUBRID; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; // ... diff --git a/jOOQ/src/main/java/org/jooq/InsertOnConflictDoUpdateStep.java b/jOOQ/src/main/java/org/jooq/InsertOnConflictDoUpdateStep.java index 29531a58a1..a2599ca351 100644 --- a/jOOQ/src/main/java/org/jooq/InsertOnConflictDoUpdateStep.java +++ b/jOOQ/src/main/java/org/jooq/InsertOnConflictDoUpdateStep.java @@ -45,6 +45,7 @@ import org.jetbrains.annotations.*; import static org.jooq.SQLDialect.CUBRID; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; import static org.jooq.SQLDialect.HSQLDB; diff --git a/jOOQ/src/main/java/org/jooq/InsertOnConflictWhereStep.java b/jOOQ/src/main/java/org/jooq/InsertOnConflictWhereStep.java index 616e0a0286..0556b85c79 100644 --- a/jOOQ/src/main/java/org/jooq/InsertOnConflictWhereStep.java +++ b/jOOQ/src/main/java/org/jooq/InsertOnConflictWhereStep.java @@ -44,6 +44,7 @@ import org.jetbrains.annotations.*; // ... import static org.jooq.SQLDialect.CUBRID; import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.H2; import static org.jooq.SQLDialect.MARIADB; // ... diff --git a/jOOQ/src/main/java/org/jooq/InsertOnDuplicateSetStep.java b/jOOQ/src/main/java/org/jooq/InsertOnDuplicateSetStep.java index 0718d586f4..48d22efe01 100644 --- a/jOOQ/src/main/java/org/jooq/InsertOnDuplicateSetStep.java +++ b/jOOQ/src/main/java/org/jooq/InsertOnDuplicateSetStep.java @@ -43,6 +43,7 @@ package org.jooq; import static org.jooq.SQLDialect.CUBRID; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; import static org.jooq.SQLDialect.HSQLDB; diff --git a/jOOQ/src/main/java/org/jooq/InsertOnDuplicateStep.java b/jOOQ/src/main/java/org/jooq/InsertOnDuplicateStep.java index ec2a8f01dd..f31bffcd83 100644 --- a/jOOQ/src/main/java/org/jooq/InsertOnDuplicateStep.java +++ b/jOOQ/src/main/java/org/jooq/InsertOnDuplicateStep.java @@ -43,6 +43,7 @@ package org.jooq; import static org.jooq.SQLDialect.CUBRID; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; import static org.jooq.SQLDialect.HSQLDB; diff --git a/jOOQ/src/main/java/org/jooq/LoaderOptionsStep.java b/jOOQ/src/main/java/org/jooq/LoaderOptionsStep.java index 2a7453fa50..6ee15292c1 100644 --- a/jOOQ/src/main/java/org/jooq/LoaderOptionsStep.java +++ b/jOOQ/src/main/java/org/jooq/LoaderOptionsStep.java @@ -43,6 +43,7 @@ package org.jooq; import static org.jooq.SQLDialect.CUBRID; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.H2; import static org.jooq.SQLDialect.HSQLDB; // ... diff --git a/jOOQ/src/main/java/org/jooq/MergeKeyStepN.java b/jOOQ/src/main/java/org/jooq/MergeKeyStepN.java index 261b7384d5..624f2d8d00 100644 --- a/jOOQ/src/main/java/org/jooq/MergeKeyStepN.java +++ b/jOOQ/src/main/java/org/jooq/MergeKeyStepN.java @@ -40,6 +40,7 @@ package org.jooq; // ... import static org.jooq.SQLDialect.CUBRID; // ... +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; // ... diff --git a/jOOQ/src/main/java/org/jooq/MergeMatchedDeleteStep.java b/jOOQ/src/main/java/org/jooq/MergeMatchedDeleteStep.java index fea90fe36d..6577085deb 100644 --- a/jOOQ/src/main/java/org/jooq/MergeMatchedDeleteStep.java +++ b/jOOQ/src/main/java/org/jooq/MergeMatchedDeleteStep.java @@ -39,6 +39,7 @@ package org.jooq; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; import static org.jooq.SQLDialect.HSQLDB; diff --git a/jOOQ/src/main/java/org/jooq/MergeMatchedSetStep.java b/jOOQ/src/main/java/org/jooq/MergeMatchedSetStep.java index 96131cc09d..7ffd492c6a 100644 --- a/jOOQ/src/main/java/org/jooq/MergeMatchedSetStep.java +++ b/jOOQ/src/main/java/org/jooq/MergeMatchedSetStep.java @@ -40,6 +40,7 @@ package org.jooq; import static org.jooq.SQLDialect.CUBRID; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; // ... diff --git a/jOOQ/src/main/java/org/jooq/MergeMatchedStep.java b/jOOQ/src/main/java/org/jooq/MergeMatchedStep.java index 85bcb485db..6d14b5c1d6 100644 --- a/jOOQ/src/main/java/org/jooq/MergeMatchedStep.java +++ b/jOOQ/src/main/java/org/jooq/MergeMatchedStep.java @@ -40,6 +40,7 @@ package org.jooq; import static org.jooq.SQLDialect.CUBRID; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; // ... diff --git a/jOOQ/src/main/java/org/jooq/MergeMatchedThenStep.java b/jOOQ/src/main/java/org/jooq/MergeMatchedThenStep.java index 72aa21cbf8..a6be638916 100644 --- a/jOOQ/src/main/java/org/jooq/MergeMatchedThenStep.java +++ b/jOOQ/src/main/java/org/jooq/MergeMatchedThenStep.java @@ -39,6 +39,7 @@ package org.jooq; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; // ... diff --git a/jOOQ/src/main/java/org/jooq/MergeMatchedWhereStep.java b/jOOQ/src/main/java/org/jooq/MergeMatchedWhereStep.java index bbe86b3f30..52724f74b7 100644 --- a/jOOQ/src/main/java/org/jooq/MergeMatchedWhereStep.java +++ b/jOOQ/src/main/java/org/jooq/MergeMatchedWhereStep.java @@ -39,6 +39,7 @@ package org.jooq; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; // ... diff --git a/jOOQ/src/main/java/org/jooq/MergeNotMatchedSetStep.java b/jOOQ/src/main/java/org/jooq/MergeNotMatchedSetStep.java index 0ac494e592..46a7c768be 100644 --- a/jOOQ/src/main/java/org/jooq/MergeNotMatchedSetStep.java +++ b/jOOQ/src/main/java/org/jooq/MergeNotMatchedSetStep.java @@ -40,6 +40,7 @@ package org.jooq; import static org.jooq.SQLDialect.CUBRID; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; // ... diff --git a/jOOQ/src/main/java/org/jooq/MergeOnConditionStep.java b/jOOQ/src/main/java/org/jooq/MergeOnConditionStep.java index c4301b9c31..5bd4f3ea2f 100644 --- a/jOOQ/src/main/java/org/jooq/MergeOnConditionStep.java +++ b/jOOQ/src/main/java/org/jooq/MergeOnConditionStep.java @@ -40,6 +40,7 @@ package org.jooq; import static org.jooq.SQLDialect.CUBRID; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; // ... diff --git a/jOOQ/src/main/java/org/jooq/MergeOnStep.java b/jOOQ/src/main/java/org/jooq/MergeOnStep.java index 77a1fceee6..1ae97d04f4 100644 --- a/jOOQ/src/main/java/org/jooq/MergeOnStep.java +++ b/jOOQ/src/main/java/org/jooq/MergeOnStep.java @@ -40,6 +40,7 @@ package org.jooq; import static org.jooq.SQLDialect.CUBRID; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; // ... diff --git a/jOOQ/src/main/java/org/jooq/MergeUsingStep.java b/jOOQ/src/main/java/org/jooq/MergeUsingStep.java index 5fd3b1d2ac..a06010e590 100644 --- a/jOOQ/src/main/java/org/jooq/MergeUsingStep.java +++ b/jOOQ/src/main/java/org/jooq/MergeUsingStep.java @@ -42,6 +42,7 @@ package org.jooq; import static org.jooq.SQLDialect.CUBRID; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; // ... diff --git a/jOOQ/src/main/java/org/jooq/MergeValuesStepN.java b/jOOQ/src/main/java/org/jooq/MergeValuesStepN.java index ac28b82d7a..d5ae5f17d4 100644 --- a/jOOQ/src/main/java/org/jooq/MergeValuesStepN.java +++ b/jOOQ/src/main/java/org/jooq/MergeValuesStepN.java @@ -42,6 +42,7 @@ package org.jooq; import static org.jooq.SQLDialect.CUBRID; // ... import static org.jooq.SQLDialect.DERBY; +// ... import static org.jooq.SQLDialect.FIREBIRD; import static org.jooq.SQLDialect.H2; // ... diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java index 8bbad14a0b..8c67b49c84 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java @@ -1411,6 +1411,7 @@ final class AlterTableImpl extends AbstractRowCountQuery implements + case CUBRID: diff --git a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java index fe873489b1..93229f71c0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java @@ -394,6 +394,7 @@ final class InsertQueryImpl extends AbstractStoreQuery impl + case DERBY: case FIREBIRD: case H2: diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index 67446da60d..151f554aa1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -297,6 +297,8 @@ final class SelectQueryImpl extends AbstractResultQuery imp + + private static final Set SUPPORT_FULL_WITH_TIES = SQLDialect.supportedBy(H2, POSTGRES); private static final Set EMULATE_DISTINCT_ON = SQLDialect.supportedBy(DERBY, FIREBIRD, HSQLDB, MARIADB, MYSQL, SQLITE); static final Set NO_SUPPORT_FOR_UPDATE_OF_FIELDS = SQLDialect.supportedBy(MYSQL, POSTGRES); @@ -1488,6 +1490,7 @@ final class SelectQueryImpl extends AbstractResultQuery imp + case CUBRID: @@ -1606,7 +1609,6 @@ final class SelectQueryImpl extends AbstractResultQuery imp * Emulate the LIMIT / OFFSET clause using window functions, specifically * when the WITH TIES clause is specified. */ - @SuppressWarnings("serial") private final void toSQLReferenceLimitWithWindowFunctions(Context ctx) { // AUTHOR.ID, BOOK.ID, BOOK.TITLE