From aa2afc3b238ccd7dce25f7bec5298333acbf4937 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 24 Jun 2020 10:12:28 +0200 Subject: [PATCH] [jOOQ/jOOQ#10313] SQLDialect.supportedBy() sets should be used with contains(dialect()), not contains(family()) --- .../jooq/impl/AbstractAggregateFunction.java | 4 +- .../org/jooq/impl/AbstractWindowFunction.java | 2 +- jOOQ/src/main/java/org/jooq/impl/Alias.java | 4 +- .../java/org/jooq/impl/AlterDatabaseImpl.java | 2 +- .../java/org/jooq/impl/AlterDomainImpl.java | 4 +- .../java/org/jooq/impl/AlterIndexImpl.java | 4 +- .../java/org/jooq/impl/AlterTableImpl.java | 14 ++-- .../java/org/jooq/impl/AlterViewImpl.java | 3 +- jOOQ/src/main/java/org/jooq/impl/Array.java | 2 +- .../java/org/jooq/impl/BetweenCondition.java | 2 +- .../main/java/org/jooq/impl/BlockImpl.java | 2 +- .../java/org/jooq/impl/CommentOnImpl.java | 2 +- .../org/jooq/impl/CreateDatabaseImpl.java | 2 +- .../java/org/jooq/impl/CreateDomainImpl.java | 2 +- .../java/org/jooq/impl/CreateIndexImpl.java | 4 +- .../java/org/jooq/impl/CreateSchemaImpl.java | 2 +- .../org/jooq/impl/CreateSequenceImpl.java | 2 +- .../java/org/jooq/impl/CreateTableImpl.java | 46 ++++++------ .../java/org/jooq/impl/CreateViewImpl.java | 2 +- .../java/org/jooq/impl/CurrentTimestamp.java | 4 +- .../java/org/jooq/impl/DefaultBinding.java | 62 ++++++++-------- .../java/org/jooq/impl/DeleteQueryImpl.java | 4 +- .../java/org/jooq/impl/DropDatabaseImpl.java | 2 +- .../java/org/jooq/impl/DropDomainImpl.java | 2 +- .../java/org/jooq/impl/DropIndexImpl.java | 4 +- .../java/org/jooq/impl/DropSchemaImpl.java | 4 +- .../java/org/jooq/impl/DropSequenceImpl.java | 2 +- .../java/org/jooq/impl/DropTableImpl.java | 4 +- .../main/java/org/jooq/impl/DropViewImpl.java | 2 +- .../main/java/org/jooq/impl/Expression.java | 2 +- .../java/org/jooq/impl/FieldMapForUpdate.java | 2 +- jOOQ/src/main/java/org/jooq/impl/ForLock.java | 2 +- .../main/java/org/jooq/impl/InCondition.java | 4 +- .../main/java/org/jooq/impl/IndexImpl.java | 2 +- .../java/org/jooq/impl/InsertQueryImpl.java | 2 +- .../main/java/org/jooq/impl/JoinTable.java | 70 +++++++++---------- .../main/java/org/jooq/impl/MergeImpl.java | 6 +- .../src/main/java/org/jooq/impl/MetaImpl.java | 6 +- .../impl/QuantifiedComparisonCondition.java | 2 +- .../main/java/org/jooq/impl/RowCondition.java | 4 +- .../java/org/jooq/impl/RowInCondition.java | 2 +- .../main/java/org/jooq/impl/RowIsNull.java | 4 +- .../org/jooq/impl/RowOverlapsCondition.java | 4 +- .../java/org/jooq/impl/SelectQueryImpl.java | 8 +-- .../main/java/org/jooq/impl/TableImpl.java | 2 +- .../main/java/org/jooq/impl/TableList.java | 2 +- .../java/org/jooq/impl/TableRecordImpl.java | 2 +- jOOQ/src/main/java/org/jooq/impl/Tools.java | 16 ++--- .../org/jooq/impl/UpdatableRecordImpl.java | 2 +- .../java/org/jooq/impl/UpdateQueryImpl.java | 4 +- .../jooq/impl/WindowSpecificationImpl.java | 4 +- 51 files changed, 173 insertions(+), 174 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java b/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java index 45429d5e3c..0a43d256f5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractAggregateFunction.java @@ -127,7 +127,7 @@ implements ctx.visit(K_DISTINCT).sql(' '); // [#2883][#9109] PostgreSQL and H2 can use the DISTINCT keyword with formal row value expressions. - if (args.size() > 1 && SUPPORT_DISTINCT_RVE.contains(ctx.family())) + if (args.size() > 1 && SUPPORT_DISTINCT_RVE.contains(ctx.dialect())) ctx.sql('('); } @@ -146,7 +146,7 @@ implements } if (distinct) - if (args.size() > 1 && SUPPORT_DISTINCT_RVE.contains(ctx.family())) + if (args.size() > 1 && SUPPORT_DISTINCT_RVE.contains(ctx.dialect())) ctx.sql(')'); } diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractWindowFunction.java b/jOOQ/src/main/java/org/jooq/impl/AbstractWindowFunction.java index 31d8b3b0d4..bbc555865d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractWindowFunction.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractWindowFunction.java @@ -127,7 +127,7 @@ implements // [#3727] Referenced WindowDefinitions that contain a frame clause // shouldn't be referenced from within parentheses (in MySQL and PostgreSQL) if (windowDefinition != null) - if (SUPPORT_NO_PARENS_WINDOW_REFERENCE.contains(ctx.family())) + if (SUPPORT_NO_PARENS_WINDOW_REFERENCE.contains(ctx.dialect())) return windowDefinition; else return DSL.sql("({0})", windowDefinition); diff --git a/jOOQ/src/main/java/org/jooq/impl/Alias.java b/jOOQ/src/main/java/org/jooq/impl/Alias.java index 209b0aa6ca..8adfbcdae9 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Alias.java +++ b/jOOQ/src/main/java/org/jooq/impl/Alias.java @@ -301,13 +301,13 @@ final class Alias extends AbstractQueryPart { ctx.sql(' ').visit(K_AS); } else if (wrapped instanceof Field) { - if (ctx.settings().getRenderOptionalAsKeywordForFieldAliases() == RenderOptionalKeyword.DEFAULT && SUPPORT_AS_REQUIRED.contains(ctx.family())) + if (ctx.settings().getRenderOptionalAsKeywordForFieldAliases() == RenderOptionalKeyword.DEFAULT && SUPPORT_AS_REQUIRED.contains(ctx.dialect())) ctx.sql(' ').visit(K_AS); else if (ctx.settings().getRenderOptionalAsKeywordForFieldAliases() == RenderOptionalKeyword.ON) ctx.sql(' ').visit(K_AS); } else { - if (ctx.settings().getRenderOptionalAsKeywordForTableAliases() == RenderOptionalKeyword.DEFAULT && SUPPORT_AS_REQUIRED.contains(ctx.family())) + if (ctx.settings().getRenderOptionalAsKeywordForTableAliases() == RenderOptionalKeyword.DEFAULT && SUPPORT_AS_REQUIRED.contains(ctx.dialect())) ctx.sql(' ').visit(K_AS); diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java index 4a65aa2f98..4c402184f4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java @@ -130,7 +130,7 @@ implements private final boolean supportsIfExists(Context ctx) { - return !NO_SUPPORT_IF_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_EXISTS.contains(ctx.dialect()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterDomainImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterDomainImpl.java index c9dd626169..08f12b47f0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterDomainImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterDomainImpl.java @@ -315,11 +315,11 @@ implements private static final Set NO_SUPPORT_DROP_CONSTRAINT_IF_EXISTS = SQLDialect.supportedBy(FIREBIRD); private final boolean supportsRenameConstraintIfExists(Context ctx) { - return !NO_SUPPORT_RENAME_CONSTRAINT_IF_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_RENAME_CONSTRAINT_IF_EXISTS.contains(ctx.dialect()); } private final boolean supportsDropConstraintIfExists(Context ctx) { - return !NO_SUPPORT_DROP_CONSTRAINT_IF_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_DROP_CONSTRAINT_IF_EXISTS.contains(ctx.dialect()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterIndexImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterIndexImpl.java index f0bfda3e82..f5bdd00196 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterIndexImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterIndexImpl.java @@ -156,7 +156,7 @@ final class AlterIndexImpl extends AbstractRowCountQuery implements // ------------------------------------------------------------------------ private final boolean supportsIfExists(Context ctx) { - return !NO_SUPPORT_IF_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_EXISTS.contains(ctx.dialect()); } @Override @@ -172,7 +172,7 @@ final class AlterIndexImpl extends AbstractRowCountQuery implements } private final void accept0(Context ctx) { - boolean renameIndex = SUPPORT_RENAME_INDEX.contains(ctx.family()); + boolean renameIndex = SUPPORT_RENAME_INDEX.contains(ctx.dialect()); boolean qualify = ctx.qualify(); switch (ctx.family()) { diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java index b78c19b748..bcd461f1d4 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterTableImpl.java @@ -967,15 +967,15 @@ final class AlterTableImpl extends AbstractRowCountQuery implements // ------------------------------------------------------------------------ private final boolean supportsIfExists(Context ctx) { - return !NO_SUPPORT_IF_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_EXISTS.contains(ctx.dialect()); } private final boolean supportsIfExistsColumn(Context ctx) { - return !NO_SUPPORT_IF_EXISTS_COLUMN.contains(ctx.family()); + return !NO_SUPPORT_IF_EXISTS_COLUMN.contains(ctx.dialect()); } private final boolean supportsIfNotExistsColumn(Context ctx) { - return !NO_SUPPORT_IF_NOT_EXISTS_COLUMN.contains(ctx.family()); + return !NO_SUPPORT_IF_NOT_EXISTS_COLUMN.contains(ctx.dialect()); } @Override @@ -1172,13 +1172,13 @@ final class AlterTableImpl extends AbstractRowCountQuery implements ctx.start(ALTER_TABLE_RENAME); - if (NO_SUPPORT_RENAME_QUALIFIED_TABLE.contains(ctx.family())) + if (NO_SUPPORT_RENAME_QUALIFIED_TABLE.contains(ctx.dialect())) ctx.qualify(false); ctx.visit(renameObject || renameTable ? K_TO : K_RENAME_TO).sql(' ') .visit(renameTo); - if (NO_SUPPORT_RENAME_QUALIFIED_TABLE.contains(ctx.family())) + if (NO_SUPPORT_RENAME_QUALIFIED_TABLE.contains(ctx.dialect())) ctx.qualify(qualify); ctx.end(ALTER_TABLE_RENAME); @@ -1299,7 +1299,7 @@ final class AlterTableImpl extends AbstractRowCountQuery implements } else if (add != null) { boolean qualify = ctx.qualify(); - boolean multiAdd = REQUIRE_REPEAT_ADD_ON_MULTI_ALTER.contains(ctx.family()); + boolean multiAdd = REQUIRE_REPEAT_ADD_ON_MULTI_ALTER.contains(ctx.dialect()); boolean parens = !multiAdd ; boolean comma = true ; @@ -1673,7 +1673,7 @@ final class AlterTableImpl extends AbstractRowCountQuery implements // dropped by dropping their declarations. ctx.visit(dropConstraint.getUnqualifiedName().empty() ? K_DROP : K_DROP_CONSTRAINT).sql(' '); - if (ifExistsConstraint && !NO_SUPPORT_IF_EXISTS_CONSTRAINT.contains(ctx.family())) + if (ifExistsConstraint && !NO_SUPPORT_IF_EXISTS_CONSTRAINT.contains(ctx.dialect())) ctx.visit(K_IF_EXISTS).sql(' '); ctx.visit(dropConstraint); diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterViewImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterViewImpl.java index 182af3d502..5ded08ea0b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterViewImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterViewImpl.java @@ -147,9 +147,8 @@ final class AlterViewImpl extends AbstractRowCountQuery implements // XXX: QueryPart API // ------------------------------------------------------------------------ -// private static final EnumSet SUPPORT_IF_EXISTS = private final boolean supportsIfExists(Context ctx) { - return !SUPPORT_IF_EXISTS.contains(ctx.family()); + return !SUPPORT_IF_EXISTS.contains(ctx.dialect()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/Array.java b/jOOQ/src/main/java/org/jooq/impl/Array.java index 74dc0f1211..204a51e206 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Array.java +++ b/jOOQ/src/main/java/org/jooq/impl/Array.java @@ -102,7 +102,7 @@ final class Array extends AbstractField { .visit(fields) .sql(squareBrackets ? ']' : ')'); - if (fields.fields.length == 0 && REQUIRES_CAST.contains(ctx.family())) + if (fields.fields.length == 0 && REQUIRES_CAST.contains(ctx.dialect())) ctx.sql("::").visit(K_INT).sql("[]"); break; diff --git a/jOOQ/src/main/java/org/jooq/impl/BetweenCondition.java b/jOOQ/src/main/java/org/jooq/impl/BetweenCondition.java index 58b8bda373..bd0f870fac 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BetweenCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/BetweenCondition.java @@ -151,7 +151,7 @@ final class BetweenCondition extends AbstractCondition implements BetweenAndS ? f.betweenSymmetric(min).and(max) : f.between(min).and(max)); } - else if (symmetric && NO_SUPPORT_SYMMETRIC.contains(configuration.family())) + else if (symmetric && NO_SUPPORT_SYMMETRIC.contains(configuration.dialect())) return (QueryPartInternal) (not ? field.notBetween(minValue, maxValue).and(field.notBetween(maxValue, minValue)) : field.between(minValue, maxValue).or(field.between(maxValue, minValue))); diff --git a/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java b/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java index f01dccd334..5736907847 100644 --- a/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/BlockImpl.java @@ -406,7 +406,7 @@ final class BlockImpl extends AbstractRowCountQuery implements Block { - if (s instanceof NullStatement && !SUPPORTS_NULL_STATEMENT.contains(ctx.family())) + if (s instanceof NullStatement && !SUPPORTS_NULL_STATEMENT.contains(ctx.dialect())) continue statementLoop; ctx.formatSeparator(); diff --git a/jOOQ/src/main/java/org/jooq/impl/CommentOnImpl.java b/jOOQ/src/main/java/org/jooq/impl/CommentOnImpl.java index 48b75e751c..f56fb8d974 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CommentOnImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CommentOnImpl.java @@ -212,7 +212,7 @@ implements ctx.visit(K_COMMENT).sql(' ').visit(K_ON).sql(' '); if (table != null) - ctx.visit(isView && SUPPORTS_COMMENT_ON_VIEW.contains(ctx.family()) ? K_VIEW : K_TABLE) + ctx.visit(isView && SUPPORTS_COMMENT_ON_VIEW.contains(ctx.dialect()) ? K_VIEW : K_TABLE) .sql(' ') .visit(table); else if (field != null) diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateDatabaseImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateDatabaseImpl.java index ba7ad56de2..537339997f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateDatabaseImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateDatabaseImpl.java @@ -89,7 +89,7 @@ implements private static final Set NO_SUPPORT_IF_NOT_EXISTS = SQLDialect.supportedBy(DERBY, FIREBIRD, POSTGRES); private final boolean supportsIfNotExists(Context ctx) { - return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.dialect()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateDomainImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateDomainImpl.java index da6d82dbfc..81939a4aa0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateDomainImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateDomainImpl.java @@ -155,7 +155,7 @@ implements private static final Set NO_SUPPORT_IF_NOT_EXISTS = SQLDialect.supportedBy(FIREBIRD, POSTGRES); private final boolean supportsIfNotExists(Context ctx) { - return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.dialect()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateIndexImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateIndexImpl.java index b19e07dea7..d4a2871f4f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateIndexImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateIndexImpl.java @@ -257,7 +257,7 @@ final class CreateIndexImpl extends AbstractRowCountQuery implements // ------------------------------------------------------------------------ private final boolean supportsIfNotExists(Context ctx) { - return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.dialect()); } @Override @@ -290,7 +290,7 @@ final class CreateIndexImpl extends AbstractRowCountQuery implements if (index != null) ctx.visit(index) .sql(' '); - else if (!SUPPORT_UNNAMED_INDEX.contains(ctx.family())) + else if (!SUPPORT_UNNAMED_INDEX.contains(ctx.dialect())) ctx.visit(generatedName()) .sql(' '); diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java index 57969344a1..69fc903a14 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java @@ -95,7 +95,7 @@ implements private final boolean supportsIfNotExists(Context ctx) { - return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.dialect()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateSequenceImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateSequenceImpl.java index e2958f2f59..5ad767983d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateSequenceImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateSequenceImpl.java @@ -248,7 +248,7 @@ implements private static final Set OMIT_NO_MAXVALUE = SQLDialect.supportedBy(FIREBIRD); private final boolean supportsIfNotExists(Context ctx) { - return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.dialect()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java index 998d469cff..10efa827dd 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateTableImpl.java @@ -351,7 +351,7 @@ final class CreateTableImpl extends AbstractRowCountQuery implements // ------------------------------------------------------------------------ private final boolean supportsIfNotExists(Context ctx) { - return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.dialect()); } @Override @@ -367,18 +367,18 @@ final class CreateTableImpl extends AbstractRowCountQuery implements } private final void accept0(Context ctx) { - boolean c = comment != null && EMULATE_COMMENT_IN_BLOCK.contains(ctx.family()); - boolean i = !indexes.isEmpty() && EMULATE_INDEXES_IN_BLOCK.contains(ctx.family()); + boolean c = comment != null && EMULATE_COMMENT_IN_BLOCK.contains(ctx.dialect()); + boolean i = !indexes.isEmpty() && EMULATE_INDEXES_IN_BLOCK.contains(ctx.dialect()); if (c || i) { begin(ctx); - if (REQUIRE_EXECUTE_IMMEDIATE.contains(ctx.family())) + if (REQUIRE_EXECUTE_IMMEDIATE.contains(ctx.dialect())) beginExecuteImmediate(ctx); accept1(ctx); - if (REQUIRE_EXECUTE_IMMEDIATE.contains(ctx.family())) + if (REQUIRE_EXECUTE_IMMEDIATE.contains(ctx.dialect())) endExecuteImmediate(ctx); else ctx.sql(';'); @@ -386,12 +386,12 @@ final class CreateTableImpl extends AbstractRowCountQuery implements if (c) { ctx.formatSeparator(); - if (REQUIRE_EXECUTE_IMMEDIATE.contains(ctx.family())) + if (REQUIRE_EXECUTE_IMMEDIATE.contains(ctx.dialect())) beginExecuteImmediate(ctx); ctx.visit(commentOnTable(table).is(comment)); - if (REQUIRE_EXECUTE_IMMEDIATE.contains(ctx.family())) + if (REQUIRE_EXECUTE_IMMEDIATE.contains(ctx.dialect())) endExecuteImmediate(ctx); else ctx.sql(';'); @@ -401,7 +401,7 @@ final class CreateTableImpl extends AbstractRowCountQuery implements for (Index index : indexes) { ctx.formatSeparator(); - if (REQUIRE_EXECUTE_IMMEDIATE.contains(ctx.family())) + if (REQUIRE_EXECUTE_IMMEDIATE.contains(ctx.dialect())) beginExecuteImmediate(ctx); if ("".equals(index.getName())) @@ -409,7 +409,7 @@ final class CreateTableImpl extends AbstractRowCountQuery implements else ctx.visit(createIndex(index.getUnqualifiedName()).on(index.getTable(), index.getFields())); - if (REQUIRE_EXECUTE_IMMEDIATE.contains(ctx.family())) + if (REQUIRE_EXECUTE_IMMEDIATE.contains(ctx.dialect())) endExecuteImmediate(ctx); else ctx.sql(';'); @@ -442,7 +442,7 @@ final class CreateTableImpl extends AbstractRowCountQuery implements toSQLOnCommit(ctx); } - if (comment != null && !EMULATE_COMMENT_IN_BLOCK.contains(ctx.family())) + if (comment != null && !EMULATE_COMMENT_IN_BLOCK.contains(ctx.dialect())) ctx.formatSeparator() .visit(K_COMMENT).sql(' ').visit(comment); @@ -458,7 +458,7 @@ final class CreateTableImpl extends AbstractRowCountQuery implements toSQLCreateTableName(ctx); if (!columnFields.isEmpty() - && (select == null || !NO_SUPPORT_CTAS_COLUMN_NAMES.contains(ctx.family()))) { + && (select == null || !NO_SUPPORT_CTAS_COLUMN_NAMES.contains(ctx.dialect()))) { ctx.sql(" (") .start(CREATE_TABLE_COLUMNS) .formatIndentStart() @@ -498,7 +498,7 @@ final class CreateTableImpl extends AbstractRowCountQuery implements .formatSeparator() .visit(constraint); - if (EMULATE_SOME_ENUM_TYPES_AS_CHECK.contains(ctx.family())) { + if (EMULATE_SOME_ENUM_TYPES_AS_CHECK.contains(ctx.dialect())) { for (int i = 0; i < columnFields.size(); i++) { DataType type = columnTypes.get(i); @@ -507,7 +507,7 @@ final class CreateTableImpl extends AbstractRowCountQuery implements @SuppressWarnings("unchecked") DataType enumType = (DataType) type; - if (EMULATE_STORED_ENUM_TYPES_AS_CHECK.contains(ctx.family()) || !storedEnumType(enumType)) { + if (EMULATE_STORED_ENUM_TYPES_AS_CHECK.contains(ctx.dialect()) || !storedEnumType(enumType)) { Field field = columnFields.get(i); ctx.sql(',') @@ -521,7 +521,7 @@ final class CreateTableImpl extends AbstractRowCountQuery implements ctx.end(CREATE_TABLE_CONSTRAINTS); - if (!indexes.isEmpty() && !EMULATE_INDEXES_IN_BLOCK.contains(ctx.family())) { + if (!indexes.isEmpty() && !EMULATE_INDEXES_IN_BLOCK.contains(ctx.dialect())) { ctx.qualify(false); for (Index index : indexes) { @@ -562,41 +562,41 @@ final class CreateTableImpl extends AbstractRowCountQuery implements ctx.formatSeparator() .visit(K_AS); - if (WRAP_SELECT_IN_PARENS.contains(ctx.family())) + if (WRAP_SELECT_IN_PARENS.contains(ctx.dialect())) ctx.sql(" (") .formatIndentStart() .formatNewLine(); else ctx.formatSeparator(); - if (FALSE.equals(withData) && NO_SUPPORT_WITH_DATA.contains(ctx.family())) + if (FALSE.equals(withData) && NO_SUPPORT_WITH_DATA.contains(ctx.dialect())) ctx.data(DATA_SELECT_NO_DATA, true); ctx.start(CREATE_TABLE_AS); - if (!columnFields.isEmpty() && NO_SUPPORT_CTAS_COLUMN_NAMES.contains(ctx.family())) + if (!columnFields.isEmpty() && NO_SUPPORT_CTAS_COLUMN_NAMES.contains(ctx.dialect())) ctx.visit(select(asterisk()).from(select.asTable(table(name("t")), columnFields.toArray(EMPTY_FIELD)))); else ctx.visit(select); ctx.end(CREATE_TABLE_AS); - if (FALSE.equals(withData) && NO_SUPPORT_WITH_DATA.contains(ctx.family())) + if (FALSE.equals(withData) && NO_SUPPORT_WITH_DATA.contains(ctx.dialect())) ctx.data().remove(DATA_SELECT_NO_DATA); - if (WRAP_SELECT_IN_PARENS.contains(ctx.family())) { + if (WRAP_SELECT_IN_PARENS.contains(ctx.dialect())) { ctx.formatIndentEnd() .formatNewLine() .sql(')'); } - if (FALSE.equals(withData) && !NO_SUPPORT_WITH_DATA.contains(ctx.family())) + if (FALSE.equals(withData) && !NO_SUPPORT_WITH_DATA.contains(ctx.dialect())) ctx.formatSeparator() .visit(K_WITH_NO_DATA); - else if (TRUE.equals(withData) && !NO_SUPPORT_WITH_DATA.contains(ctx.family())) + else if (TRUE.equals(withData) && !NO_SUPPORT_WITH_DATA.contains(ctx.dialect())) ctx.formatSeparator() .visit(K_WITH_DATA); - else if (REQUIRES_WITH_DATA.contains(ctx.family())) + else if (REQUIRES_WITH_DATA.contains(ctx.dialect())) ctx.formatSeparator() .visit(K_WITH_DATA); } @@ -649,7 +649,7 @@ final class CreateTableImpl extends AbstractRowCountQuery implements .sql(' '); if (temporary) - if (SUPPORT_TEMPORARY.contains(ctx.family())) + if (SUPPORT_TEMPORARY.contains(ctx.dialect())) ctx.visit(K_TEMPORARY).sql(' '); else ctx.visit(K_GLOBAL_TEMPORARY).sql(' '); diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateViewImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateViewImpl.java index 2b75d0f395..2301ba4718 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateViewImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateViewImpl.java @@ -202,7 +202,7 @@ final class CreateViewImpl extends AbstractRowCountQuery imple // ------------------------------------------------------------------------ private final boolean supportsIfNotExists(Context ctx) { - return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_NOT_EXISTS.contains(ctx.dialect()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/CurrentTimestamp.java b/jOOQ/src/main/java/org/jooq/impl/CurrentTimestamp.java index 69ceab7797..c17f0d0975 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CurrentTimestamp.java +++ b/jOOQ/src/main/java/org/jooq/impl/CurrentTimestamp.java @@ -123,7 +123,7 @@ final class CurrentTimestamp extends AbstractField { case HSQLDB: case POSTGRES: case SQLITE: - if (precision != null && !NO_SUPPORT_PRECISION.contains(ctx.family())) + if (precision != null && !NO_SUPPORT_PRECISION.contains(ctx.dialect())) ctx.visit(K_CURRENT).sql('_').visit(K_TIMESTAMP).sql('(').visit(precision).sql(')'); else ctx.visit(K_CURRENT).sql('_').visit(K_TIMESTAMP); @@ -131,7 +131,7 @@ final class CurrentTimestamp extends AbstractField { break; default: - if (precision != null && !NO_SUPPORT_PRECISION.contains(ctx.family())) + if (precision != null && !NO_SUPPORT_PRECISION.contains(ctx.dialect())) ctx.visit(N_CURRENT_TIMESTAMP).sql('(').visit(precision).sql(')'); else ctx.visit(N_CURRENT_TIMESTAMP).sql("()"); diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java index 2cd9ae255d..3bfcee57eb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultBinding.java @@ -1019,7 +1019,7 @@ public class DefaultBinding implements Binding { ctx.render().sql(')'); } - else if (REQUIRES_ARRAY_CAST.contains(ctx.family())) { + else if (REQUIRES_ARRAY_CAST.contains(ctx.dialect())) { // [#8933] In some cases, we cannot derive the cast type from // array type directly @@ -1048,7 +1048,7 @@ public class DefaultBinding implements Binding { // [#3214] Some PostgreSQL array type literals need explicit casting // TODO: This seems mutually exclusive with the previous branch. Still needed? - if ((REQUIRES_ARRAY_CAST.contains(ctx.family())) && EnumType.class.isAssignableFrom(type.getComponentType())) + if ((REQUIRES_ARRAY_CAST.contains(ctx.dialect())) && EnumType.class.isAssignableFrom(type.getComponentType())) DefaultEnumTypeBinding.pgRenderEnumCast(ctx.render(), type); } } @@ -1436,8 +1436,8 @@ public class DefaultBinding implements Binding { /** * Generated UID */ - private static final long serialVersionUID = -8912971184035434281L; - private static final Set BIND_AS_STRING = SQLDialect.supportedBy(SQLITE); + private static final long serialVersionUID = -8912971184035434281L; + private static final Set BIND_AS_STRING = SQLDialect.supportedBy(SQLITE); DefaultBigDecimalBinding(Converter converter, boolean isLob) { super(converter, isLob); @@ -1450,7 +1450,7 @@ public class DefaultBinding implements Binding { @Override final void set0(BindingSetStatementContext ctx, BigDecimal value) throws SQLException { - if (BIND_AS_STRING.contains(ctx.family())) + if (BIND_AS_STRING.contains(ctx.dialect())) ctx.statement().setString(ctx.index(), value.toString()); else ctx.statement().setBigDecimal(ctx.index(), value); @@ -1506,7 +1506,7 @@ public class DefaultBinding implements Binding { @Override final void set0(BindingSetStatementContext ctx, BigInteger value) throws SQLException { - if (BIND_AS_STRING.contains(ctx.family())) + if (BIND_AS_STRING.contains(ctx.dialect())) ctx.statement().setString(ctx.index(), value.toString()); else ctx.statement().setBigDecimal(ctx.index(), new BigDecimal(value)); @@ -1625,7 +1625,7 @@ public class DefaultBinding implements Binding { final void sqlInline0(BindingSQLContext ctx, Boolean value) { // [#1153] Some dialects don't support boolean literals TRUE and FALSE - if (BIND_AS_1_0.contains(ctx.family())) + if (BIND_AS_1_0.contains(ctx.dialect())) ctx.render().sql(value ? "1" : "0"); @@ -1805,7 +1805,7 @@ public class DefaultBinding implements Binding { - if (INLINE_AS_X_APOS.contains(ctx.family())) + if (INLINE_AS_X_APOS.contains(ctx.dialect())) ctx.render() .sql("X'") .sql(convertBytesToHex(value)) @@ -1822,7 +1822,7 @@ public class DefaultBinding implements Binding { - else if (REQUIRE_BYTEA_CAST.contains(ctx.family())) + else if (REQUIRE_BYTEA_CAST.contains(ctx.dialect())) ctx.render() .sql("E'") .sql(PostgresUtils.toPGString(value)) @@ -1986,7 +1986,7 @@ public class DefaultBinding implements Binding { // The SQLite JDBC driver does not implement the escape syntax // [#1253] Sybase does not implement date literals - if (INLINE_AS_STRING_LITERAL.contains(ctx.family())) + if (INLINE_AS_STRING_LITERAL.contains(ctx.dialect())) ctx.render().sql('\'').sql(escape(value, ctx.render())).sql('\''); @@ -2006,7 +2006,7 @@ public class DefaultBinding implements Binding { ctx.render().visit(K_DATE).sql("('").sql(escape(value, ctx.render())).sql("')"); // [#3648] Circumvent a MySQL bug related to date literals - else if (REQUIRE_JDBC_DATE_LITERAL.contains(ctx.family())) + else if (REQUIRE_JDBC_DATE_LITERAL.contains(ctx.dialect())) ctx.render().sql("{d '").sql(escape(value, ctx.render())).sql("'}"); // Most dialects implement SQL standard date literals @@ -2173,7 +2173,7 @@ public class DefaultBinding implements Binding { @Override void sqlInline0(BindingSQLContext ctx, DayToSecond value) throws SQLException { // [#566] Interval data types are best bound as Strings - if (REQUIRE_PG_INTERVAL_SYNTAX.contains(ctx.family())) { + if (REQUIRE_PG_INTERVAL_SYNTAX.contains(ctx.dialect())) { int sign = value.getSign(); int days = sign * value.getDays(); ctx.render().sql('\'') @@ -2197,7 +2197,7 @@ public class DefaultBinding implements Binding { final void set0(BindingSetStatementContext ctx, DayToSecond value) throws SQLException { // [#566] Interval data types are best bound as Strings - if (REQUIRE_PG_INTERVAL_SYNTAX.contains(ctx.family())) + if (REQUIRE_PG_INTERVAL_SYNTAX.contains(ctx.dialect())) ctx.statement().setObject(ctx.index(), toPGInterval(value)); else ctx.statement().setString(ctx.index(), value.toString()); @@ -2210,7 +2210,7 @@ public class DefaultBinding implements Binding { @Override final DayToSecond get0(BindingGetResultSetContext ctx) throws SQLException { - if (REQUIRE_PG_INTERVAL_SYNTAX.contains(ctx.family())) { + if (REQUIRE_PG_INTERVAL_SYNTAX.contains(ctx.dialect())) { Object object = ctx.resultSet().getObject(ctx.index()); return object == null ? null : PostgresUtils.toDayToSecond(object); } @@ -2222,7 +2222,7 @@ public class DefaultBinding implements Binding { @Override final DayToSecond get0(BindingGetStatementContext ctx) throws SQLException { - if (REQUIRE_PG_INTERVAL_SYNTAX.contains(ctx.family())) { + if (REQUIRE_PG_INTERVAL_SYNTAX.contains(ctx.dialect())) { Object object = ctx.statement().getObject(ctx.index()); return object == null ? null : PostgresUtils.toDayToSecond(object); } @@ -2261,7 +2261,7 @@ public class DefaultBinding implements Binding { // [#5249] [#6912] [#8063] Special inlining of special floating point values if (value.isNaN()) - if (REQUIRE_NAN_CAST.contains(ctx.family())) + if (REQUIRE_NAN_CAST.contains(ctx.dialect())) ctx.render().visit(inline("NaN")).sql("::float8"); else if (ctx.family() == HSQLDB) ctx.render().visit(sqrt(inline(-1))); @@ -2339,7 +2339,7 @@ public class DefaultBinding implements Binding { super.sqlBind0(ctx, value); // Postgres needs explicit casting for enum (array) types - if (REQUIRE_ENUM_CAST.contains(ctx.family())) + if (REQUIRE_ENUM_CAST.contains(ctx.dialect())) pgRenderEnumCast(ctx.render(), type); } @@ -2436,7 +2436,7 @@ public class DefaultBinding implements Binding { // [#5249] [#6912] [#8063] Special inlining of special floating point values if (value.isNaN()) - if (REQUIRE_NAN_CAST.contains(ctx.family())) + if (REQUIRE_NAN_CAST.contains(ctx.dialect())) ctx.render().visit(inline("NaN")).sql("::float4"); else if (ctx.family() == HSQLDB) ctx.render().visit(sqrt(inline(-1))); @@ -3263,13 +3263,13 @@ public class DefaultBinding implements Binding { void sqlBind0(BindingSQLContext ctx, Record value) throws SQLException { super.sqlBind0(ctx, value); - if (REQUIRE_RECORD_CAST.contains(ctx.family()) && value != null) + if (REQUIRE_RECORD_CAST.contains(ctx.dialect()) && value != null) pgRenderRecordCast(ctx.render(), value); } @Override final void sqlInline0(BindingSQLContext ctx, Record value) throws SQLException { - if (REQUIRE_RECORD_CAST.contains(ctx.family())) { + if (REQUIRE_RECORD_CAST.contains(ctx.dialect())) { ctx.render().visit(inline(PostgresUtils.toPGString(value))); pgRenderRecordCast(ctx.render(), value); } @@ -3292,7 +3292,7 @@ public class DefaultBinding implements Binding { @Override final void set0(BindingSetStatementContext ctx, Record value) throws SQLException { - if (REQUIRE_RECORD_CAST.contains(ctx.family()) && value != null) + if (REQUIRE_RECORD_CAST.contains(ctx.dialect()) && value != null) ctx.statement().setString(ctx.index(), PostgresUtils.toPGString(value)); else ctx.statement().setObject(ctx.index(), value); @@ -3760,7 +3760,7 @@ public class DefaultBinding implements Binding { // The SQLite JDBC driver does not implement the escape syntax // [#1253] Sybase does not implement time literals - if (INLINE_AS_STRING_LITERAL.contains(ctx.family())) + if (INLINE_AS_STRING_LITERAL.contains(ctx.dialect())) ctx.render().sql('\'').sql(new SimpleDateFormat("HH:mm:ss").format(value)).sql('\''); @@ -3775,7 +3775,7 @@ public class DefaultBinding implements Binding { ctx.render().visit(K_TIME).sql("('").sql(escape(value, ctx.render())).sql("')"); // [#3648] Circumvent a MySQL bug related to date literals - else if (REQUIRE_JDBC_DATE_LITERAL.contains(ctx.family())) + else if (REQUIRE_JDBC_DATE_LITERAL.contains(ctx.dialect())) ctx.render().sql("{t '").sql(escape(value, ctx.render())).sql("'}"); @@ -3854,7 +3854,7 @@ public class DefaultBinding implements Binding { // The SQLite JDBC driver does not implement the escape syntax // [#1253] Sybase does not implement timestamp literals - if (INLINE_AS_STRING_LITERAL.contains(ctx.family())) + if (INLINE_AS_STRING_LITERAL.contains(ctx.dialect())) ctx.render().sql('\'').sql(escape(value, ctx.render())).sql('\''); @@ -3878,7 +3878,7 @@ public class DefaultBinding implements Binding { ctx.render().visit(K_DATETIME).sql(" '").sql(escape(value, ctx.render())).sql('\''); // [#3648] Circumvent a MySQL bug related to date literals - else if (REQUIRE_JDBC_DATE_LITERAL.contains(ctx.family())) + else if (REQUIRE_JDBC_DATE_LITERAL.contains(ctx.dialect())) ctx.render().sql("{ts '").sql(escape(value, ctx.render())).sql("'}"); // Most dialects implement SQL standard timestamp literals @@ -4501,7 +4501,7 @@ public class DefaultBinding implements Binding { final void set0(BindingSetStatementContext ctx, YearToSecond value) throws SQLException { // [#566] Interval data types are best bound as Strings - if (REQUIRE_PG_INTERVAL.contains(ctx.family())) + if (REQUIRE_PG_INTERVAL.contains(ctx.dialect())) ctx.statement().setObject(ctx.index(), toPGInterval(value)); else ctx.statement().setString(ctx.index(), value.toString()); @@ -4514,7 +4514,7 @@ public class DefaultBinding implements Binding { @Override final YearToSecond get0(BindingGetResultSetContext ctx) throws SQLException { - if (REQUIRE_PG_INTERVAL.contains(ctx.family())) { + if (REQUIRE_PG_INTERVAL.contains(ctx.dialect())) { Object object = ctx.resultSet().getObject(ctx.index()); return object == null ? null : PostgresUtils.toYearToSecond(object); } @@ -4526,7 +4526,7 @@ public class DefaultBinding implements Binding { @Override final YearToSecond get0(BindingGetStatementContext ctx) throws SQLException { - if (REQUIRE_PG_INTERVAL.contains(ctx.family())) { + if (REQUIRE_PG_INTERVAL.contains(ctx.dialect())) { Object object = ctx.statement().getObject(ctx.index()); return object == null ? null : PostgresUtils.toYearToSecond(object); } @@ -4564,7 +4564,7 @@ public class DefaultBinding implements Binding { final void set0(BindingSetStatementContext ctx, YearToMonth value) throws SQLException { // [#566] Interval data types are best bound as Strings - if (REQUIRE_PG_INTERVAL.contains(ctx.family())) + if (REQUIRE_PG_INTERVAL.contains(ctx.dialect())) ctx.statement().setObject(ctx.index(), toPGInterval(value)); else ctx.statement().setString(ctx.index(), value.toString()); @@ -4577,7 +4577,7 @@ public class DefaultBinding implements Binding { @Override final YearToMonth get0(BindingGetResultSetContext ctx) throws SQLException { - if (REQUIRE_PG_INTERVAL.contains(ctx.family())) { + if (REQUIRE_PG_INTERVAL.contains(ctx.dialect())) { Object object = ctx.resultSet().getObject(ctx.index()); return object == null ? null : PostgresUtils.toYearToMonth(object); } @@ -4589,7 +4589,7 @@ public class DefaultBinding implements Binding { @Override final YearToMonth get0(BindingGetStatementContext ctx) throws SQLException { - if (REQUIRE_PG_INTERVAL.contains(ctx.family())) { + if (REQUIRE_PG_INTERVAL.contains(ctx.dialect())) { Object object = ctx.statement().getObject(ctx.index()); return object == null ? null : PostgresUtils.toYearToMonth(object); } diff --git a/jOOQ/src/main/java/org/jooq/impl/DeleteQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/DeleteQueryImpl.java index 648328d12d..6c5ad8fb06 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DeleteQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DeleteQueryImpl.java @@ -205,7 +205,7 @@ final class DeleteQueryImpl extends AbstractDMLQuery implem // [#2464] MySQL supports a peculiar multi-table DELETE syntax for aliased tables: // DELETE t1 FROM my_table AS t1 - if (SPECIAL_DELETE_AS_SYNTAX.contains(ctx.family())) { + if (SPECIAL_DELETE_AS_SYNTAX.contains(ctx.dialect())) { // [#2579] [#6304] TableAlias discovery if (Tools.alias(table()) != null) @@ -231,7 +231,7 @@ final class DeleteQueryImpl extends AbstractDMLQuery implem // [#2059] MemSQL does not support DELETE ... ORDER BY - if (limit != null && NO_SUPPORT_LIMIT.contains(ctx.family()) ) { + if (limit != null && NO_SUPPORT_LIMIT.contains(ctx.dialect()) ) { Field[] keyFields = table().getKeys().isEmpty() ? new Field[] { table().rowid() } diff --git a/jOOQ/src/main/java/org/jooq/impl/DropDatabaseImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropDatabaseImpl.java index 8019a7ebfd..66bd9cfd7b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropDatabaseImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropDatabaseImpl.java @@ -89,7 +89,7 @@ implements private static final Set NO_SUPPORT_IF_EXISTS = SQLDialect.supportedBy(DERBY, FIREBIRD); private final boolean supportsIfExists(Context ctx) { - return !NO_SUPPORT_IF_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_EXISTS.contains(ctx.dialect()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/DropDomainImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropDomainImpl.java index ebeabab75b..06b0f67153 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropDomainImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropDomainImpl.java @@ -122,7 +122,7 @@ implements private static final Set NO_SUPPORT_IF_EXISTS = SQLDialect.supportedBy(FIREBIRD); private final boolean supportsIfExists(Context ctx) { - return !NO_SUPPORT_IF_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_EXISTS.contains(ctx.dialect()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/DropIndexImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropIndexImpl.java index 0eba30ec51..b6652347cb 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropIndexImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropIndexImpl.java @@ -148,7 +148,7 @@ final class DropIndexImpl extends AbstractRowCountQuery implements // ------------------------------------------------------------------------ private final boolean supportsIfExists(Context ctx) { - return !NO_SUPPORT_IF_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_EXISTS.contains(ctx.dialect()); } @Override @@ -176,7 +176,7 @@ final class DropIndexImpl extends AbstractRowCountQuery implements ctx.visit(index); - if (on != null && REQUIRES_ON.contains(ctx.family())) + if (on != null && REQUIRES_ON.contains(ctx.dialect())) ctx.sql(' ').visit(K_ON).sql(' ').visit(on); if (cascade != null) diff --git a/jOOQ/src/main/java/org/jooq/impl/DropSchemaImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropSchemaImpl.java index 9b10178ad3..e11690ff15 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropSchemaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropSchemaImpl.java @@ -129,7 +129,7 @@ implements private final boolean supportsIfExists(Context ctx) { - return !NO_SUPPORT_IF_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_EXISTS.contains(ctx.dialect()); } @Override @@ -180,7 +180,7 @@ implements if (cascade != null && cascade) ctx.sql(' ').visit(K_CASCADE); - else if (cascade != null && !cascade || REQUIRES_RESTRICT.contains(ctx.family())) + else if (cascade != null && !cascade || REQUIRES_RESTRICT.contains(ctx.dialect())) ctx.sql(' ').visit(K_RESTRICT); ctx.end(Clause.DROP_SCHEMA_SCHEMA); diff --git a/jOOQ/src/main/java/org/jooq/impl/DropSequenceImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropSequenceImpl.java index 66fbb83a24..348e91dc86 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropSequenceImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropSequenceImpl.java @@ -90,7 +90,7 @@ implements private static final Set NO_SUPPORT_IF_EXISTS = SQLDialect.supportedBy(DERBY, FIREBIRD); private final boolean supportsIfExists(Context ctx) { - return !NO_SUPPORT_IF_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_EXISTS.contains(ctx.dialect()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java index 3c262cfbd3..2ceeac0bc2 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropTableImpl.java @@ -133,7 +133,7 @@ final class DropTableImpl extends AbstractRowCountQuery implements // ------------------------------------------------------------------------ private final boolean supportsIfExists(Context ctx) { - return !NO_SUPPORT_IF_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_EXISTS.contains(ctx.dialect()); } @Override @@ -154,7 +154,7 @@ final class DropTableImpl extends AbstractRowCountQuery implements // [#6371] [#9019] While many dialects do not require this keyword, in // some dialects (e.g. MySQL), there is a semantic // difference, e.g. with respect to transactions. - if (temporary && TEMPORARY_SEMANTIC.contains(ctx.family())) + if (temporary && TEMPORARY_SEMANTIC.contains(ctx.dialect())) ctx.visit(K_DROP).sql(' ').visit(K_TEMPORARY).sql(' ').visit(K_TABLE).sql(' '); else ctx.visit(K_DROP_TABLE).sql(' '); diff --git a/jOOQ/src/main/java/org/jooq/impl/DropViewImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropViewImpl.java index 79e9cd7ee8..36e6ae7cf3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropViewImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropViewImpl.java @@ -98,7 +98,7 @@ final class DropViewImpl extends AbstractRowCountQuery implements // ------------------------------------------------------------------------ private final boolean supportsIfExists(Context ctx) { - return !NO_SUPPORT_IF_EXISTS.contains(ctx.family()); + return !NO_SUPPORT_IF_EXISTS.contains(ctx.dialect()); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/Expression.java b/jOOQ/src/main/java/org/jooq/impl/Expression.java index 297c60e55b..ce6f995871 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Expression.java +++ b/jOOQ/src/main/java/org/jooq/impl/Expression.java @@ -833,7 +833,7 @@ final class Expression extends AbstractField { public final void accept(Context ctx) { String op = operator.toSQL(); - if (operator == BIT_XOR && HASH_OP_FOR_BIT_XOR.contains(ctx.family())) + if (operator == BIT_XOR && HASH_OP_FOR_BIT_XOR.contains(ctx.dialect())) op = "#"; ctx.sql('('); diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldMapForUpdate.java b/jOOQ/src/main/java/org/jooq/impl/FieldMapForUpdate.java index 0241d06533..b241f22746 100644 --- a/jOOQ/src/main/java/org/jooq/impl/FieldMapForUpdate.java +++ b/jOOQ/src/main/java/org/jooq/impl/FieldMapForUpdate.java @@ -93,7 +93,7 @@ final class FieldMapForUpdate extends AbstractQueryPartMap, Field> { // disambiguated columns in queries like // UPDATE t1 JOIN t2 .. SET t1.val = ..., t2.val = ... boolean restoreQualify = ctx.qualify(); - boolean supportsQualify = NO_SUPPORT_QUALIFY.contains(ctx.family()) ? false : restoreQualify; + boolean supportsQualify = NO_SUPPORT_QUALIFY.contains(ctx.dialect()) ? false : restoreQualify; // [#2823] [#10034] Few dialects need bind value casts for UPDATE .. SET // Some regressions have been observed e.g. in PostgreSQL with JSON types, so let's be careful. diff --git a/jOOQ/src/main/java/org/jooq/impl/ForLock.java b/jOOQ/src/main/java/org/jooq/impl/ForLock.java index f6bed11adc..336fbf4c34 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ForLock.java +++ b/jOOQ/src/main/java/org/jooq/impl/ForLock.java @@ -138,7 +138,7 @@ final class ForLock extends AbstractQueryPart { // [#4151] [#6117] Some databases don't allow for qualifying column // names here. Copy also to TableList - boolean unqualified = NO_SUPPORT_FOR_UPDATE_QUALIFIED.contains(ctx.family()); + boolean unqualified = NO_SUPPORT_FOR_UPDATE_QUALIFIED.contains(ctx.dialect()); boolean qualify = ctx.qualify(); if (unqualified) diff --git a/jOOQ/src/main/java/org/jooq/impl/InCondition.java b/jOOQ/src/main/java/org/jooq/impl/InCondition.java index d3c2dda75c..86ac7541d1 100644 --- a/jOOQ/src/main/java/org/jooq/impl/InCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/InCondition.java @@ -141,7 +141,7 @@ final class InCondition extends AbstractCondition { } private final void accept0(Context ctx) { - if (values.size() == 0 && NO_SUPPORT_EMPTY_LISTS.contains(ctx.family())) { + if (values.size() == 0 && NO_SUPPORT_EMPTY_LISTS.contains(ctx.dialect())) { if (comparator == IN) ctx.visit(falseCondition()); else @@ -202,7 +202,7 @@ final class InCondition extends AbstractCondition { static List padded(Context ctx, List list) { return ctx.paramType() == INDEXED && TRUE.equals(ctx.settings().isInListPadding()) - ? new PaddedList<>(list, REQUIRES_IN_LIMIT.contains(ctx.family()) + ? new PaddedList<>(list, REQUIRES_IN_LIMIT.contains(ctx.dialect()) ? IN_LIMIT : Integer.MAX_VALUE, defaultIfNull(ctx.settings().getInListPadBase(), 2)) diff --git a/jOOQ/src/main/java/org/jooq/impl/IndexImpl.java b/jOOQ/src/main/java/org/jooq/impl/IndexImpl.java index 8e5428fb97..c3a7463433 100644 --- a/jOOQ/src/main/java/org/jooq/impl/IndexImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/IndexImpl.java @@ -98,7 +98,7 @@ class IndexImpl extends AbstractNamed implements Index { @Override public final void accept(Context ctx) { - if (NO_SUPPORT_INDEX_QUALIFICATION.contains(ctx.family())) + if (NO_SUPPORT_INDEX_QUALIFICATION.contains(ctx.dialect())) ctx.visit(getUnqualifiedName()); else if (getTable() == null) ctx.visit(getQualifiedName()); diff --git a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java index 2d2ba894ee..d939e49143 100644 --- a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java @@ -630,7 +630,7 @@ final class InsertQueryImpl extends AbstractStoreQuery impl // [#4376] [#8433] for SQLite render using ON CONFLICT DO NOTHING // rather than INSERT OR IGNORE if (onDuplicateKeyIgnore) - if (SUPPORT_INSERT_IGNORE.contains(ctx.family())) + if (SUPPORT_INSERT_IGNORE.contains(ctx.dialect())) ctx.visit(K_IGNORE).sql(' '); ctx.visit(K_INTO) diff --git a/jOOQ/src/main/java/org/jooq/impl/JoinTable.java b/jOOQ/src/main/java/org/jooq/impl/JoinTable.java index 1b2e8653bf..f53c56818f 100755 --- a/jOOQ/src/main/java/org/jooq/impl/JoinTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/JoinTable.java @@ -294,7 +294,7 @@ implements toSQLJoinCondition(ctx); ctx.formatIndentEnd(); } - else if (OUTER_APPLY == translatedType && EMULATE_APPLY.contains(ctx.family())) { + else if (OUTER_APPLY == translatedType && EMULATE_APPLY.contains(ctx.dialect())) { ctx.formatIndentStart() .formatSeparator() .start(TABLE_JOIN_ON) @@ -353,9 +353,9 @@ implements break; } - if (translatedType == CROSS_APPLY && EMULATE_APPLY.contains(ctx.family())) + if (translatedType == CROSS_APPLY && EMULATE_APPLY.contains(ctx.dialect())) keyword = K_CROSS_JOIN_LATERAL; - else if (translatedType == OUTER_APPLY && EMULATE_APPLY.contains(ctx.family())) + else if (translatedType == OUTER_APPLY && EMULATE_APPLY.contains(ctx.dialect())) if (ctx.settings().getRenderOptionalOuterKeyword() == RenderOptionalKeyword.OFF) keyword = K_LEFT_JOIN_LATERAL; else @@ -415,22 +415,22 @@ implements /** * Translate the join type for SQL rendering */ - final JoinType translateType(Context context) { - if (emulateCrossJoin(context)) + final JoinType translateType(Context ctx) { + if (emulateCrossJoin(ctx)) return JOIN; - else if (emulateNaturalJoin(context)) + else if (emulateNaturalJoin(ctx)) return JOIN; - else if (emulateNaturalLeftOuterJoin(context)) + else if (emulateNaturalLeftOuterJoin(ctx)) return LEFT_OUTER_JOIN; - else if (emulateNaturalRightOuterJoin(context)) + else if (emulateNaturalRightOuterJoin(ctx)) return RIGHT_OUTER_JOIN; - else if (emulateNaturalFullOuterJoin(context)) + else if (emulateNaturalFullOuterJoin(ctx)) return FULL_OUTER_JOIN; else return type; } - private final boolean emulateCrossJoin(Context context) { + private final boolean emulateCrossJoin(Context ctx) { return false @@ -438,25 +438,25 @@ implements ; } - private final boolean emulateNaturalJoin(Context context) { - return type == NATURAL_JOIN && EMULATE_NATURAL_JOIN.contains(context.family()); + private final boolean emulateNaturalJoin(Context ctx) { + return type == NATURAL_JOIN && EMULATE_NATURAL_JOIN.contains(ctx.dialect()); } - private final boolean emulateNaturalLeftOuterJoin(Context context) { - return type == NATURAL_LEFT_OUTER_JOIN && EMULATE_NATURAL_OUTER_JOIN.contains(context.family()); + private final boolean emulateNaturalLeftOuterJoin(Context ctx) { + return type == NATURAL_LEFT_OUTER_JOIN && EMULATE_NATURAL_OUTER_JOIN.contains(ctx.dialect()); } - private final boolean emulateNaturalRightOuterJoin(Context context) { - return type == NATURAL_RIGHT_OUTER_JOIN && EMULATE_NATURAL_OUTER_JOIN.contains(context.family()); + private final boolean emulateNaturalRightOuterJoin(Context ctx) { + return type == NATURAL_RIGHT_OUTER_JOIN && EMULATE_NATURAL_OUTER_JOIN.contains(ctx.dialect()); } - private final boolean emulateNaturalFullOuterJoin(Context context) { - return type == NATURAL_FULL_OUTER_JOIN && EMULATE_NATURAL_OUTER_JOIN.contains(context.family()); + private final boolean emulateNaturalFullOuterJoin(Context ctx) { + return type == NATURAL_FULL_OUTER_JOIN && EMULATE_NATURAL_OUTER_JOIN.contains(ctx.dialect()); } - private final void toSQLJoinCondition(Context context) { + private final void toSQLJoinCondition(Context ctx) { if (!using.isEmpty()) { - boolean qualify = context.qualify(); + boolean qualify = ctx.qualify(); @@ -467,30 +467,30 @@ implements - context.formatSeparator() - .start(TABLE_JOIN_USING) - .visit(K_USING) - .sql(" (") - .qualify(false) - .visit(wrap(using).indentSize(0)) - .qualify(qualify) - .sql(')') - .end(TABLE_JOIN_USING); + ctx.formatSeparator() + .start(TABLE_JOIN_USING) + .visit(K_USING) + .sql(" (") + .qualify(false) + .visit(wrap(using).indentSize(0)) + .qualify(qualify) + .sql(')') + .end(TABLE_JOIN_USING); } // [#577] If any NATURAL JOIN syntax needs to be emulated, find out // common fields in lhs and rhs of the JOIN clause - else if (emulateNaturalJoin(context) || - emulateNaturalLeftOuterJoin(context) || - emulateNaturalRightOuterJoin(context) || - emulateNaturalFullOuterJoin(context)) { + else if (emulateNaturalJoin(ctx) || + emulateNaturalLeftOuterJoin(ctx) || + emulateNaturalRightOuterJoin(ctx) || + emulateNaturalFullOuterJoin(ctx)) { - toSQLJoinCondition(context, naturalCondition()); + toSQLJoinCondition(ctx, naturalCondition()); } // Regular JOIN condition else { - toSQLJoinCondition(context, condition); + toSQLJoinCondition(ctx, condition); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java index 06a4fc500a..5373b93e3e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/MergeImpl.java @@ -1599,7 +1599,7 @@ implements // This can also happen in Firebird: http://tracker.firebirdsql.org/browse/JDBC-621 // [#10054] TODO: Skip all WHEN MATCHED clauses after a WHEN MATCHED clause with no search condition - if (NO_SUPPORT_CONDITION_AFTER_NO_CONDITION.contains(ctx.family())) { + if (NO_SUPPORT_CONDITION_AFTER_NO_CONDITION.contains(ctx.dialect())) { boolean withoutMatchedConditionFound = false; for (MatchedClause m : matched) { @@ -1662,7 +1662,7 @@ implements update.condition = update.condition.or(condition); } - if (REQUIRE_NEGATION.contains(ctx.family())) + if (REQUIRE_NEGATION.contains(ctx.dialect())) negate = negate.andNot(m.condition instanceof NoCondition ? trueCondition() : m.condition); } @@ -1689,7 +1689,7 @@ implements } // [#7291] Workaround for https://github.com/h2database/h2database/issues/2552 - else if (REQUIRE_NEGATION.contains(ctx.family())) { + else if (REQUIRE_NEGATION.contains(ctx.dialect())) { Condition negate = noCondition(); for (MatchedClause m : matched) { diff --git a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java index eed3949766..4495e48688 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java @@ -123,7 +123,7 @@ final class MetaImpl extends AbstractMeta { super(configuration); this.databaseMetaData = databaseMetaData; - this.inverseSchemaCatalog = INVERSE_SCHEMA_CATALOG.contains(family()); + this.inverseSchemaCatalog = INVERSE_SCHEMA_CATALOG.contains(dialect()); } private interface MetaFunction { @@ -876,11 +876,11 @@ final class MetaImpl extends AbstractMeta { try { // [#7194] Some databases report all default values as expressions, not as values - if (EXPRESSION_COLUMN_DEFAULT.contains(family())) + if (EXPRESSION_COLUMN_DEFAULT.contains(dialect())) type = type.defaultValue(DSL.field(defaultValue, type)); // [#5574] MySQL mixes constant value expressions with other column expressions here - else if (CURRENT_TIMESTAMP_COLUMN_DEFAULT.contains(family()) && "CURRENT_TIMESTAMP".equalsIgnoreCase(defaultValue)) + else if (CURRENT_TIMESTAMP_COLUMN_DEFAULT.contains(dialect()) && "CURRENT_TIMESTAMP".equalsIgnoreCase(defaultValue)) type = type.defaultValue(DSL.field(defaultValue, type)); else type = type.defaultValue(DSL.inline(defaultValue, type)); diff --git a/jOOQ/src/main/java/org/jooq/impl/QuantifiedComparisonCondition.java b/jOOQ/src/main/java/org/jooq/impl/QuantifiedComparisonCondition.java index d9bb5c8691..5860efc2ed 100644 --- a/jOOQ/src/main/java/org/jooq/impl/QuantifiedComparisonCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/QuantifiedComparisonCondition.java @@ -152,7 +152,7 @@ final class QuantifiedComparisonCondition extends AbstractCondition implements L // [#9224] Special case when a SQL dialect actually supports quantified // arrays, such as x = any(?::int[]) in PostgreSQL - if (quantifiedArray && SUPPORTS_QUANTIFIED_ARRAYS.contains(ctx.family()) && !emulateOperator) { + if (quantifiedArray && SUPPORTS_QUANTIFIED_ARRAYS.contains(ctx.dialect()) && !emulateOperator) { accept1(ctx); } else if (query.values != null || quantifiedArray) { diff --git a/jOOQ/src/main/java/org/jooq/impl/RowCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowCondition.java index 3eabcdd644..8db08c757b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowCondition.java @@ -114,7 +114,7 @@ final class RowCondition extends AbstractCondition { private final QueryPartInternal delegate(Configuration configuration) { // Regular comparison predicate emulation if ((comparator == EQUALS || comparator == NOT_EQUALS) && - EMULATE_EQ_AND_NE.contains(configuration.family())) { + EMULATE_EQ_AND_NE.contains(configuration.dialect())) { Field[] leftFields = left.fields(); Field[] rightFields = right.fields(); @@ -133,7 +133,7 @@ final class RowCondition extends AbstractCondition { // Ordering comparison predicate emulation else if ((comparator == GREATER || comparator == GREATER_OR_EQUAL || comparator == LESS || comparator == LESS_OR_EQUAL) && - EMULATE_RANGES.contains(configuration.family())) { + EMULATE_RANGES.contains(configuration.dialect())) { // The order component of the comparator (stripping the equal component) Comparator order diff --git a/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java index 15a7d5f549..6380426973 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowInCondition.java @@ -109,7 +109,7 @@ final class RowInCondition extends AbstractCondition { } private final QueryPartInternal delegate(Configuration configuration) { - if (EMULATE_IN.contains(configuration.family())) { + if (EMULATE_IN.contains(configuration.dialect())) { List conditions = new ArrayList<>(right.size()); for (Row row : right) diff --git a/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java b/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java index e4c4e55e2d..ad70ecd5f7 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowIsNull.java @@ -124,9 +124,9 @@ final class RowIsNull extends AbstractCondition { - if (row != null && EMULATE_NULL_ROW.contains(ctx.family())) + if (row != null && EMULATE_NULL_ROW.contains(ctx.dialect())) ctx.visit(condition(row.fields())); - else if (select != null && EMULATE_NULL_QUERY.contains(ctx.family())) { + else if (select != null && EMULATE_NULL_QUERY.contains(ctx.dialect())) { Table t = select.asTable("t", fieldNameStrings(select.getSelect().size())); ctx.visit(inline(1).eq(selectCount().from(t).where(condition(t.fields())))); } diff --git a/jOOQ/src/main/java/org/jooq/impl/RowOverlapsCondition.java b/jOOQ/src/main/java/org/jooq/impl/RowOverlapsCondition.java index 7b278d9d68..13e6aae557 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RowOverlapsCondition.java +++ b/jOOQ/src/main/java/org/jooq/impl/RowOverlapsCondition.java @@ -110,7 +110,7 @@ final class RowOverlapsCondition extends AbstractCondition { boolean intervalOverlaps = type0.isDateTime() && (type1.isInterval() || type1.isNumeric()); // The non-standard OVERLAPS predicate is always emulated - if (!standardOverlaps || EMULATE_NON_STANDARD_OVERLAPS.contains(ctx.family())) { + if (!standardOverlaps || EMULATE_NON_STANDARD_OVERLAPS.contains(ctx.dialect())) { // Interval OVERLAPS predicates need some additional arithmetic if (intervalOverlaps) @@ -122,7 +122,7 @@ final class RowOverlapsCondition extends AbstractCondition { } // These dialects seem to have trouble with INTERVAL OVERLAPS predicates - else if (intervalOverlaps && EMULATE_INTERVAL_OVERLAPS.contains(ctx.family())) + else if (intervalOverlaps && EMULATE_INTERVAL_OVERLAPS.contains(ctx.dialect())) ctx.visit(right1.le(left1.add(left2)).and(left1.le(right1.add(right2)))); // Everyone else can handle OVERLAPS diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index 3e524a6dbb..80443a7b12 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -884,7 +884,7 @@ final class SelectQueryImpl extends AbstractResultQuery imp // [#6583] Work around MySQL's self-reference-in-DML-subquery restriction if (context.subqueryLevel() == 1 - && REQUIRES_DERIVED_TABLE_DML.contains(context.family()) + && REQUIRES_DERIVED_TABLE_DML.contains(context.dialect()) && (dmlTable = (Table) context.data(DATA_DML_TARGET_TABLE)) != null && containsTable(dmlTable)) { context.visit(DSL.select(asterisk()).from(asTable("t"))); @@ -2216,18 +2216,18 @@ final class SelectQueryImpl extends AbstractResultQuery imp // [#3579] [#6431] [#7222] Some databases don't support nested set operations at all // because they do not allow wrapping set op subqueries in parentheses - NO_SUPPORT_UNION_PARENTHESES.contains(ctx.family()) + NO_SUPPORT_UNION_PARENTHESES.contains(ctx.dialect()) // [#3579] [#6431] [#7222] Nested set operations aren't supported, but parenthesised // set op subqueries are. - || (TRUE.equals(ctx.data(DATA_NESTED_SET_OPERATIONS)) && UNION_PARENTHESIS.contains(ctx.family())) + || (TRUE.equals(ctx.data(DATA_NESTED_SET_OPERATIONS)) && UNION_PARENTHESIS.contains(ctx.dialect())) // [#2995] Ambiguity may need to be resolved when parentheses could mean both: // Set op subqueries or insert column lists || TRUE.equals(ctx.data(DATA_INSERT_SELECT_WITHOUT_INSERT_COLUMN_LIST)) // [#7222] [#7711] Workaround for https://issues.apache.org/jira/browse/DERBY-6984 - || (ctx.subquery() && UNION_PARENTHESIS_IN_DERIVED_TABLES.contains(ctx.family())) + || (ctx.subquery() && UNION_PARENTHESIS_IN_DERIVED_TABLES.contains(ctx.dialect())) ; parensRequired |= derivedTable; diff --git a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java index b76dbe1663..f1196affbc 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java @@ -276,7 +276,7 @@ public class TableImpl extends AbstractTable { ctx.scopeMarkStart(this); if (ctx.qualify() && - (!NO_SUPPORT_QUALIFIED_TVF_CALLS.contains(ctx.family()) || parameters == null || ctx.declareTables())) { + (!NO_SUPPORT_QUALIFIED_TVF_CALLS.contains(ctx.dialect()) || parameters == null || ctx.declareTables())) { Schema mappedSchema = Tools.getMappedSchema(ctx.configuration(), getSchema()); if (mappedSchema != null && !"".equals(mappedSchema.getName())) { diff --git a/jOOQ/src/main/java/org/jooq/impl/TableList.java b/jOOQ/src/main/java/org/jooq/impl/TableList.java index f6ff2d10ed..7aea8b0921 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TableList.java +++ b/jOOQ/src/main/java/org/jooq/impl/TableList.java @@ -93,7 +93,7 @@ final class TableList extends QueryPartList> { // [#4151] [#6117] Some databases don't allow for qualifying column // names here. Copy also to SelectQueryImpl - boolean unqualified = UNQUALIFY_FIELDS.contains(ctx.family()); + boolean unqualified = UNQUALIFY_FIELDS.contains(ctx.dialect()); boolean qualify = ctx.qualify(); if (unqualified) diff --git a/jOOQ/src/main/java/org/jooq/impl/TableRecordImpl.java b/jOOQ/src/main/java/org/jooq/impl/TableRecordImpl.java index ab17e54f15..fc5e161678 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TableRecordImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/TableRecordImpl.java @@ -237,7 +237,7 @@ public class TableRecordImpl> extends AbstractRecord im // [#1859] In some databases, not all fields can be fetched via getGeneratedKeys() if (TRUE.equals(configuration().settings().isReturnAllOnUpdatableRecord()) - && REFRESH_GENERATED_KEYS.contains(configuration().family()) + && REFRESH_GENERATED_KEYS.contains(configuration().dialect()) && this instanceof UpdatableRecord) ((UpdatableRecord) this).refresh(key.toArray(EMPTY_FIELD)); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index 5c2b8f2d28..193560d736 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -2586,7 +2586,7 @@ final class Tools { */ static final boolean needsBackslashEscaping(Configuration configuration) { BackslashEscaping escaping = getBackslashEscaping(configuration.settings()); - return escaping == ON || (escaping == DEFAULT && REQUIRES_BACKSLASH_ESCAPING.contains(configuration.family())); + return escaping == ON || (escaping == DEFAULT && REQUIRES_BACKSLASH_ESCAPING.contains(configuration.dialect())); } /** @@ -4696,7 +4696,7 @@ final class Tools { // [#5356] Some dialects require the DEFAULT clause prior to the // NULL constraints clause - if (DEFAULT_BEFORE_NULL.contains(ctx.family())) + if (DEFAULT_BEFORE_NULL.contains(ctx.dialect())) toSQLDDLTypeDeclarationDefault(ctx, type); if (!type.nullable()) @@ -4704,10 +4704,10 @@ final class Tools { // Some databases default to NOT NULL, so explicitly setting columns to NULL is mostly required here // [#3400] [#4321] [#7392] ... but not in Derby, Firebird, HSQLDB - else if (!NO_SUPPORT_NULL.contains(ctx.family())) + else if (!NO_SUPPORT_NULL.contains(ctx.dialect())) ctx.sql(' ').visit(K_NULL); - if (!DEFAULT_BEFORE_NULL.contains(ctx.family())) + if (!DEFAULT_BEFORE_NULL.contains(ctx.dialect())) toSQLDDLTypeDeclarationDefault(ctx, type); toSQLDDLTypeDeclarationIdentityAfterNull(ctx, type); @@ -4853,7 +4853,7 @@ final class Tools { } // [#5807] These databases cannot use the DataType.getCastTypeName() (which is simply char in this case) - if (type.getType() == UUID.class && NO_SUPPORT_CAST_TYPE_IN_DDL.contains(ctx.family())) { + if (type.getType() == UUID.class && NO_SUPPORT_CAST_TYPE_IN_DDL.contains(ctx.dialect())) { toSQLDDLTypeDeclaration(ctx, VARCHAR(36)); return; } @@ -4864,13 +4864,13 @@ final class Tools { if (type.hasLength() || elementType.hasLength()) { // [#6289] [#7191] Some databases don't support lengths on binary types - if (type.isBinary() && NO_SUPPORT_BINARY_TYPE_LENGTH.contains(ctx.family())) + if (type.isBinary() && NO_SUPPORT_BINARY_TYPE_LENGTH.contains(ctx.dialect())) ctx.sql(typeName); else if (type.length() > 0) ctx.sql(typeName).sql('(').sql(type.length()).sql(')'); // [#6745] [#9473] The DataType.getCastTypeName() cannot be used in some dialects, for DDL - else if (NO_SUPPORT_CAST_TYPE_IN_DDL.contains(ctx.family())) + else if (NO_SUPPORT_CAST_TYPE_IN_DDL.contains(ctx.dialect())) if (type.isBinary()) ctx.sql(SQLDataType.BLOB.getTypeName(ctx.configuration())); else @@ -4886,7 +4886,7 @@ final class Tools { ctx.sql(typeName); } } - else if (type.hasPrecision() && type.precision() > 0 && (!type.isTimestamp() || !NO_SUPPORT_TIMESTAMP_PRECISION.contains(ctx.family()))) { + else if (type.hasPrecision() && type.precision() > 0 && (!type.isTimestamp() || !NO_SUPPORT_TIMESTAMP_PRECISION.contains(ctx.dialect()))) { if (type.hasScale()) ctx.sql(typeName).sql('(').sql(type.precision()).sql(", ").sql(type.scale()).sql(')'); else diff --git a/jOOQ/src/main/java/org/jooq/impl/UpdatableRecordImpl.java b/jOOQ/src/main/java/org/jooq/impl/UpdatableRecordImpl.java index 2da6b9f3a9..56d9c2647e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UpdatableRecordImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UpdatableRecordImpl.java @@ -473,7 +473,7 @@ public class UpdatableRecordImpl> extends TableReco // [#1547] MS Access and SQLite doesn't support FOR UPDATE. CUBRID and SQL Server // can emulate it, though! - if (!NO_SUPPORT_FOR_UPDATE.contains(create().configuration().family())) + if (!NO_SUPPORT_FOR_UPDATE.contains(create().dialect())) select.setForUpdate(true); R record = select.fetchOne(); diff --git a/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java index dd68410fb5..b011d07681 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UpdateQueryImpl.java @@ -555,7 +555,7 @@ final class UpdateQueryImpl extends AbstractStoreQuery impl if (multiRow != null) { // [#6884] This syntax can be emulated trivially, if the RHS is not a SELECT subquery - if (multiValue != null && !SUPPORT_RVE_SET.contains(ctx.family())) { + if (multiValue != null && !SUPPORT_RVE_SET.contains(ctx.dialect())) { FieldMapForUpdate map = new FieldMapForUpdate(table(), UPDATE_SET_ASSIGNMENT); for (int i = 0; i < multiRow.size(); i++) { @@ -645,7 +645,7 @@ final class UpdateQueryImpl extends AbstractStoreQuery impl } // [#2059] MemSQL does not support UPDATE ... ORDER BY - if (limit != null && NO_SUPPORT_LIMIT.contains(ctx.family()) ) { + if (limit != null && NO_SUPPORT_LIMIT.contains(ctx.dialect()) ) { Field[] keyFields = table().getKeys().isEmpty() ? new Field[] { table().rowid() } diff --git a/jOOQ/src/main/java/org/jooq/impl/WindowSpecificationImpl.java b/jOOQ/src/main/java/org/jooq/impl/WindowSpecificationImpl.java index 3a6f8ead25..6a6e8a00ff 100644 --- a/jOOQ/src/main/java/org/jooq/impl/WindowSpecificationImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/WindowSpecificationImpl.java @@ -152,7 +152,7 @@ final class WindowSpecificationImpl extends AbstractQueryPart implements if (o.isEmpty()) { boolean requiresOrderBy = TRUE.equals(ctx.data(BooleanDataKey.DATA_ORDERED_WINDOW_FUNCTION)) - && REQUIRES_ORDER_BY_IN_RANKING.contains(ctx.family()); + && REQUIRES_ORDER_BY_IN_RANKING.contains(ctx.dialect()); @@ -210,7 +210,7 @@ final class WindowSpecificationImpl extends AbstractQueryPart implements // Ignore PARTITION BY 1 clause. These databases erroneously map the // 1 literal onto the column index (CUBRID, Sybase), or do not support // constant expressions in the PARTITION BY clause (HANA) - if (partitionByOne && OMIT_PARTITION_BY_ONE.contains(ctx.family())) { + if (partitionByOne && OMIT_PARTITION_BY_ONE.contains(ctx.dialect())) { } else { if (hasWindowDefinitions)