From e57125eaa90024f3642bb87de2cb242ccc381ef4 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 21 Nov 2019 10:24:49 +0100 Subject: [PATCH] [jOOQ/jOOQ#9580] Add DDLExportConfiguration.defaultSequenceFlags --- .../java/org/jooq/DDLExportConfiguration.java | 89 +++++++++++++++---- jOOQ/src/main/java/org/jooq/impl/DDL.java | 17 ++++ 2 files changed, 90 insertions(+), 16 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/DDLExportConfiguration.java b/jOOQ/src/main/java/org/jooq/DDLExportConfiguration.java index 1fd0c5aca6..06a2be31c0 100644 --- a/jOOQ/src/main/java/org/jooq/DDLExportConfiguration.java +++ b/jOOQ/src/main/java/org/jooq/DDLExportConfiguration.java @@ -51,13 +51,15 @@ import java.util.Set; */ public final class DDLExportConfiguration { + private final EnumSet flags; + private final boolean createSchemaIfNotExists; private final boolean createTableIfNotExists; private final boolean createIndexIfNotExists; private final boolean createSequenceIfNotExists; private final boolean createViewIfNotExists; private final boolean createOrReplaceView; - private final EnumSet flags; + private final boolean respectCatalogOrder; private final boolean respectSchemaOrder; private final boolean respectTableOrder; @@ -66,6 +68,8 @@ public final class DDLExportConfiguration { private final boolean respectIndexOrder; private final boolean respectSequenceOrder; + private final boolean defaultSequenceFlags; + /** * Create a new default export configuration instance. */ @@ -86,25 +90,31 @@ public final class DDLExportConfiguration { true, false, false, + false, + false ); } private DDLExportConfiguration( Collection flags, + boolean createSchemaIfNotExists, boolean createTableIfNotExists, boolean createIndexIfNotExists, boolean createSequenceIfNotExists, boolean createViewIfNotExists, boolean createOrReplaceView, + boolean respectCatalogOrder, boolean respectSchemaOrder, boolean respectTableOrder, boolean respectColumnOrder, boolean respectConstraintOrder, boolean respectIndexOrder, - boolean respectSequenceOrder + boolean respectSequenceOrder, + + boolean defaultSequenceFlags ) { this.flags = EnumSet.copyOf(flags); @@ -122,6 +132,7 @@ public final class DDLExportConfiguration { this.respectConstraintOrder = respectConstraintOrder; this.respectIndexOrder = respectIndexOrder; this.respectSequenceOrder = respectSequenceOrder; + this.defaultSequenceFlags = defaultSequenceFlags; } /** @@ -156,7 +167,8 @@ public final class DDLExportConfiguration { respectColumnOrder, respectConstraintOrder, respectIndexOrder, - respectSequenceOrder + respectSequenceOrder, + defaultSequenceFlags ); } @@ -189,7 +201,8 @@ public final class DDLExportConfiguration { respectColumnOrder, respectConstraintOrder, respectIndexOrder, - respectSequenceOrder + respectSequenceOrder, + defaultSequenceFlags ); } @@ -222,7 +235,8 @@ public final class DDLExportConfiguration { respectColumnOrder, respectConstraintOrder, respectIndexOrder, - respectSequenceOrder + respectSequenceOrder, + defaultSequenceFlags ); } @@ -255,7 +269,8 @@ public final class DDLExportConfiguration { respectColumnOrder, respectConstraintOrder, respectIndexOrder, - respectSequenceOrder + respectSequenceOrder, + defaultSequenceFlags ); } @@ -288,7 +303,8 @@ public final class DDLExportConfiguration { respectColumnOrder, respectConstraintOrder, respectIndexOrder, - respectSequenceOrder + respectSequenceOrder, + defaultSequenceFlags ); } @@ -321,7 +337,8 @@ public final class DDLExportConfiguration { respectColumnOrder, respectConstraintOrder, respectIndexOrder, - respectSequenceOrder + respectSequenceOrder, + defaultSequenceFlags ); } @@ -354,7 +371,8 @@ public final class DDLExportConfiguration { respectColumnOrder, respectConstraintOrder, respectIndexOrder, - respectSequenceOrder + respectSequenceOrder, + defaultSequenceFlags ); } @@ -385,7 +403,8 @@ public final class DDLExportConfiguration { respectColumnOrder, respectConstraintOrder, respectIndexOrder, - respectSequenceOrder + respectSequenceOrder, + defaultSequenceFlags ); } @@ -416,7 +435,8 @@ public final class DDLExportConfiguration { respectColumnOrder, respectConstraintOrder, respectIndexOrder, - respectSequenceOrder + respectSequenceOrder, + defaultSequenceFlags ); } @@ -447,7 +467,8 @@ public final class DDLExportConfiguration { respectColumnOrder, respectConstraintOrder, respectIndexOrder, - respectSequenceOrder + respectSequenceOrder, + defaultSequenceFlags ); } @@ -478,7 +499,8 @@ public final class DDLExportConfiguration { newRespectColumnOrder, respectConstraintOrder, respectIndexOrder, - respectSequenceOrder + respectSequenceOrder, + defaultSequenceFlags ); } @@ -509,7 +531,8 @@ public final class DDLExportConfiguration { respectColumnOrder, newRespectConstraintOrder, respectIndexOrder, - respectSequenceOrder + respectSequenceOrder, + defaultSequenceFlags ); } @@ -540,7 +563,8 @@ public final class DDLExportConfiguration { respectColumnOrder, respectConstraintOrder, newRespectIndexOrder, - respectSequenceOrder + respectSequenceOrder, + defaultSequenceFlags ); } @@ -571,7 +595,40 @@ public final class DDLExportConfiguration { respectColumnOrder, respectConstraintOrder, respectIndexOrder, - newRespectSequenceOrder + newRespectSequenceOrder, + defaultSequenceFlags + ); + } + + /** + * Whether to explicitly produce defaults for all sequence flags, when + * they're not defined explicitly. + */ + public final boolean defaultSequenceFlags() { + return defaultSequenceFlags; + } + + /** + * Whether to explicitly produce defaults for all sequence flags, when + * they're not defined explicitly. + */ + public final DDLExportConfiguration defaultSequenceFlags(boolean newDefaultSequenceFlags) { + return new DDLExportConfiguration( + flags, + createSchemaIfNotExists, + createTableIfNotExists, + createIndexIfNotExists, + createSequenceIfNotExists, + createViewIfNotExists, + createOrReplaceView, + respectCatalogOrder, + respectSchemaOrder, + respectTableOrder, + respectColumnOrder, + respectConstraintOrder, + respectIndexOrder, + respectSequenceOrder, + newDefaultSequenceFlags ); } } diff --git a/jOOQ/src/main/java/org/jooq/impl/DDL.java b/jOOQ/src/main/java/org/jooq/impl/DDL.java index a93d4c5304..cde6f6337c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DDL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DDL.java @@ -136,16 +136,33 @@ final class DDL { if (sequence.getStartWith() != null) result = result.startWith(sequence.getStartWith()); + else if (configuration.defaultSequenceFlags()) + result = result.startWith(1); + if (sequence.getIncrementBy() != null) result = result.incrementBy(sequence.getIncrementBy()); + else if (configuration.defaultSequenceFlags()) + result = result.incrementBy(1); + if (sequence.getMinValue() != null) result = result.minvalue(sequence.getMinValue()); + else if (configuration.defaultSequenceFlags()) + result = result.noMinvalue(); + if (sequence.getMaxValue() != null) result = result.maxvalue(sequence.getMaxValue()); + else if (configuration.defaultSequenceFlags()) + result = result.noMaxvalue(); + if (sequence.getCycle()) result = result.cycle(); + else if (configuration.defaultSequenceFlags()) + result = result.noCycle(); + if (sequence.getCache() != null) result = result.cache(sequence.getCache()); + else if (configuration.defaultSequenceFlags()) + result = result.noCache(); return result; }