[jOOQ/jOOQ#9410] Better implementation of omitted CREATE SEQUENCE default flags
This commit is contained in:
parent
ba0eda5b44
commit
7df070357d
@ -91,13 +91,11 @@ final class CreateSequenceImpl extends AbstractRowCountQuery implements
|
||||
private static final Set<SQLDialect> NO_SUPPORT_IF_NOT_EXISTS = SQLDialect.supported(DERBY, FIREBIRD);
|
||||
private static final Set<SQLDialect> REQUIRES_START_WITH = SQLDialect.supported(DERBY);
|
||||
private static final Set<SQLDialect> NO_SUPPORT_CACHE = SQLDialect.supported(DERBY, FIREBIRD, HSQLDB);
|
||||
private static final Set<SQLDialect> NO_SUPPORT_CYCLE = SQLDialect.supported(FIREBIRD);
|
||||
private static final Set<SQLDialect> NO_SUPPORT_INCREMENT_BY = SQLDialect.supported(FIREBIRD);
|
||||
private static final Set<SQLDialect> NO_SUPPORT_MINVALUE = SQLDialect.supported(FIREBIRD);
|
||||
private static final Set<SQLDialect> NO_SUPPORT_MAXVALUE = SQLDialect.supported(FIREBIRD);
|
||||
private static final Set<SQLDialect> NO_SUPPORT_START_WITH = SQLDialect.supported(FIREBIRD);
|
||||
private static final Set<SQLDialect> NO_SEPARATOR = SQLDialect.supported(CUBRID, MARIADB);
|
||||
private static final Set<SQLDialect> OMIT_NO_CACHE = SQLDialect.supported(FIREBIRD, POSTGRES);
|
||||
private static final Set<SQLDialect> OMIT_NO_CYCLE = SQLDialect.supported(FIREBIRD);
|
||||
private static final Set<SQLDialect> OMIT_NO_MINVALUE = SQLDialect.supported(FIREBIRD);
|
||||
private static final Set<SQLDialect> OMIT_NO_MAXVALUE = SQLDialect.supported(FIREBIRD);
|
||||
|
||||
private final Sequence<?> sequence;
|
||||
private final boolean ifNotExists;
|
||||
@ -257,35 +255,29 @@ final class CreateSequenceImpl extends AbstractRowCountQuery implements
|
||||
ctx.visit(sequence);
|
||||
String noSeparator = NO_SEPARATOR.contains(family) ? "" : " ";
|
||||
|
||||
if (!NO_SUPPORT_START_WITH.contains(family))
|
||||
// Some databases default to sequences starting with MIN_VALUE
|
||||
if (startWith == null && REQUIRES_START_WITH.contains(family))
|
||||
ctx.sql(' ').visit(K_START_WITH).sql(" 1");
|
||||
else if (startWith != null)
|
||||
ctx.sql(' ').visit(K_START_WITH).sql(' ').visit(startWith);
|
||||
|
||||
// Some databases default to sequences starting with MIN_VALUE
|
||||
if (startWith == null && REQUIRES_START_WITH.contains(family))
|
||||
ctx.sql(' ').visit(K_START_WITH).sql(" 1");
|
||||
else if (startWith != null)
|
||||
ctx.sql(' ').visit(K_START_WITH).sql(' ').visit(startWith);
|
||||
if (incrementBy != null)
|
||||
ctx.sql(' ').visit(K_INCREMENT_BY).sql(' ').visit(incrementBy);
|
||||
|
||||
if (!NO_SUPPORT_INCREMENT_BY.contains(family))
|
||||
if (incrementBy != null)
|
||||
ctx.sql(' ').visit(K_INCREMENT_BY).sql(' ').visit(incrementBy);
|
||||
if (minvalue != null)
|
||||
ctx.sql(' ').visit(K_MINVALUE).sql(' ').visit(minvalue);
|
||||
else if (noMinvalue && !OMIT_NO_MINVALUE.contains(family))
|
||||
ctx.sql(' ').visit(K_NO).sql(noSeparator).visit(K_MINVALUE);
|
||||
|
||||
if (!NO_SUPPORT_MINVALUE.contains(family))
|
||||
if (minvalue != null)
|
||||
ctx.sql(' ').visit(K_MINVALUE).sql(' ').visit(minvalue);
|
||||
else if (noMinvalue)
|
||||
ctx.sql(' ').visit(K_NO).sql(noSeparator).visit(K_MINVALUE);
|
||||
if (maxvalue != null)
|
||||
ctx.sql(' ').visit(K_MAXVALUE).sql(' ').visit(maxvalue);
|
||||
else if (noMaxvalue && !OMIT_NO_MAXVALUE.contains(family))
|
||||
ctx.sql(' ').visit(K_NO).sql(noSeparator).visit(K_MAXVALUE);
|
||||
|
||||
if (!NO_SUPPORT_MAXVALUE.contains(family))
|
||||
if (maxvalue != null)
|
||||
ctx.sql(' ').visit(K_MAXVALUE).sql(' ').visit(maxvalue);
|
||||
else if (noMaxvalue)
|
||||
ctx.sql(' ').visit(K_NO).sql(noSeparator).visit(K_MAXVALUE);
|
||||
|
||||
if (!NO_SUPPORT_CYCLE.contains(family))
|
||||
if (cycle)
|
||||
ctx.sql(' ').visit(K_CYCLE);
|
||||
else if (noCycle)
|
||||
ctx.sql(' ').visit(K_NO).sql(noSeparator).visit(K_CYCLE);
|
||||
if (cycle)
|
||||
ctx.sql(' ').visit(K_CYCLE);
|
||||
else if (noCycle && !OMIT_NO_CYCLE.contains(family))
|
||||
ctx.sql(' ').visit(K_NO).sql(noSeparator).visit(K_CYCLE);
|
||||
|
||||
if (!NO_SUPPORT_CACHE.contains(family))
|
||||
if (cache != null)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user