[jOOQ/jOOQ#12851] Add support for CREATE SEQUENCE .. AS <data type>
Added support for: - DDL - Parser
This commit is contained in:
parent
f9b7eb038f
commit
a4f683ada7
86
jOOQ/src/main/java/org/jooq/CreateSequenceAsStep.java
Normal file
86
jOOQ/src/main/java/org/jooq/CreateSequenceAsStep.java
Normal file
@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* Other licenses:
|
||||
* -----------------------------------------------------------------------------
|
||||
* Commercial licenses for this work are available. These replace the above
|
||||
* ASL 2.0 and offer limited warranties, support, maintenance, and commercial
|
||||
* database integrations.
|
||||
*
|
||||
* For more information, please visit: https://www.jooq.org/legal/licensing
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
package org.jooq;
|
||||
|
||||
import static org.jooq.SQLDialect.*;
|
||||
import static org.jooq.impl.DSL.*;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
import org.jooq.impl.DSL;
|
||||
|
||||
import org.jetbrains.annotations.*;
|
||||
|
||||
/**
|
||||
* A step in the construction of the <code>CREATE SEQUENCE</code> statement.
|
||||
* <p>
|
||||
* <h3>Referencing <code>XYZ*Step</code> types directly from client code</h3>
|
||||
* <p>
|
||||
* It is usually not recommended to reference any <code>XYZ*Step</code> types
|
||||
* directly from client code, or assign them to local variables. When writing
|
||||
* dynamic SQL, creating a statement's components dynamically, and passing them
|
||||
* to the DSL API statically is usually a better choice. See the manual's
|
||||
* section about dynamic SQL for details: <a href=
|
||||
* "https://www.jooq.org/doc/latest/manual/sql-building/dynamic-sql">https://www.jooq.org/doc/latest/manual/sql-building/dynamic-sql</a>.
|
||||
* <p>
|
||||
* Drawbacks of referencing the <code>XYZ*Step</code> types directly:
|
||||
* <ul>
|
||||
* <li>They're operating on mutable implementations (as of jOOQ 3.x)</li>
|
||||
* <li>They're less composable and not easy to get right when dynamic SQL gets
|
||||
* complex</li>
|
||||
* <li>They're less readable</li>
|
||||
* <li>They might have binary incompatible changes between minor releases</li>
|
||||
* </ul>
|
||||
*/
|
||||
@SuppressWarnings({ "unused" })
|
||||
public interface CreateSequenceAsStep<T extends Number> extends CreateSequenceFlagsStep<T> {
|
||||
|
||||
/**
|
||||
* Add the <code>AS</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
@Support({ DERBY, H2, HSQLDB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
<T extends Number> CreateSequenceFlagsStep<T> as(Class<T> dataType);
|
||||
|
||||
/**
|
||||
* Add the <code>AS</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
@Support({ DERBY, H2, HSQLDB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
<T extends Number> CreateSequenceFlagsStep<T> as(DataType<T> dataType);
|
||||
}
|
||||
@ -68,7 +68,7 @@ import org.jetbrains.annotations.*;
|
||||
* </ul>
|
||||
*/
|
||||
@SuppressWarnings({ "unused" })
|
||||
public interface CreateSequenceFlagsStep extends CreateSequenceFinalStep {
|
||||
public interface CreateSequenceFlagsStep<T extends Number> extends CreateSequenceFinalStep {
|
||||
|
||||
/**
|
||||
* Add the <code>START WITH</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
@ -77,14 +77,14 @@ public interface CreateSequenceFlagsStep extends CreateSequenceFinalStep {
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep startWith(Number startWith);
|
||||
CreateSequenceFlagsStep<T> startWith(T startWith);
|
||||
|
||||
/**
|
||||
* Add the <code>START WITH</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep startWith(Field<? extends Number> startWith);
|
||||
CreateSequenceFlagsStep<T> startWith(Field<T> startWith);
|
||||
|
||||
/**
|
||||
* Add the <code>INCREMENT BY</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
@ -93,14 +93,14 @@ public interface CreateSequenceFlagsStep extends CreateSequenceFinalStep {
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep incrementBy(Number incrementBy);
|
||||
CreateSequenceFlagsStep<T> incrementBy(T incrementBy);
|
||||
|
||||
/**
|
||||
* Add the <code>INCREMENT BY</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep incrementBy(Field<? extends Number> incrementBy);
|
||||
CreateSequenceFlagsStep<T> incrementBy(Field<T> incrementBy);
|
||||
|
||||
/**
|
||||
* Add the <code>MINVALUE</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
@ -109,21 +109,21 @@ public interface CreateSequenceFlagsStep extends CreateSequenceFinalStep {
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, DUCKDB, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep minvalue(Number minvalue);
|
||||
CreateSequenceFlagsStep<T> minvalue(T minvalue);
|
||||
|
||||
/**
|
||||
* Add the <code>MINVALUE</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, DUCKDB, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep minvalue(Field<? extends Number> minvalue);
|
||||
CreateSequenceFlagsStep<T> minvalue(Field<T> minvalue);
|
||||
|
||||
/**
|
||||
* Add the <code>NO MINVALUE</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep noMinvalue();
|
||||
CreateSequenceFlagsStep<T> noMinvalue();
|
||||
|
||||
/**
|
||||
* Add the <code>MAXVALUE</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
@ -132,35 +132,35 @@ public interface CreateSequenceFlagsStep extends CreateSequenceFinalStep {
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, DUCKDB, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep maxvalue(Number maxvalue);
|
||||
CreateSequenceFlagsStep<T> maxvalue(T maxvalue);
|
||||
|
||||
/**
|
||||
* Add the <code>MAXVALUE</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, DUCKDB, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep maxvalue(Field<? extends Number> maxvalue);
|
||||
CreateSequenceFlagsStep<T> maxvalue(Field<T> maxvalue);
|
||||
|
||||
/**
|
||||
* Add the <code>NO MAXVALUE</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep noMaxvalue();
|
||||
CreateSequenceFlagsStep<T> noMaxvalue();
|
||||
|
||||
/**
|
||||
* Add the <code>CYCLE</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, DUCKDB, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep cycle();
|
||||
CreateSequenceFlagsStep<T> cycle();
|
||||
|
||||
/**
|
||||
* Add the <code>NO CYCLE</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep noCycle();
|
||||
CreateSequenceFlagsStep<T> noCycle();
|
||||
|
||||
/**
|
||||
* Add the <code>CACHE</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
@ -169,19 +169,19 @@ public interface CreateSequenceFlagsStep extends CreateSequenceFinalStep {
|
||||
*/
|
||||
@Support({ CUBRID, H2, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep cache(Number cache);
|
||||
CreateSequenceFlagsStep<T> cache(T cache);
|
||||
|
||||
/**
|
||||
* Add the <code>CACHE</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
@Support({ CUBRID, H2, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep cache(Field<? extends Number> cache);
|
||||
CreateSequenceFlagsStep<T> cache(Field<T> cache);
|
||||
|
||||
/**
|
||||
* Add the <code>NO CACHE</code> clause to the <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
@NotNull @CheckReturnValue
|
||||
CreateSequenceFlagsStep noCache();
|
||||
CreateSequenceFlagsStep<T> noCache();
|
||||
}
|
||||
|
||||
@ -10832,7 +10832,7 @@ public interface DSLContext extends Scope {
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
CreateSequenceFlagsStep createSequence(@Stringly.Name String sequence);
|
||||
CreateSequenceAsStep<Number> createSequence(@Stringly.Name String sequence);
|
||||
|
||||
/**
|
||||
* The <code>CREATE SEQUENCE</code> statement.
|
||||
@ -10841,7 +10841,7 @@ public interface DSLContext extends Scope {
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
CreateSequenceFlagsStep createSequence(Name sequence);
|
||||
CreateSequenceAsStep<Number> createSequence(Name sequence);
|
||||
|
||||
/**
|
||||
* The <code>CREATE SEQUENCE</code> statement.
|
||||
@ -10850,7 +10850,7 @@ public interface DSLContext extends Scope {
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
CreateSequenceFlagsStep createSequence(Sequence<?> sequence);
|
||||
CreateSequenceAsStep<Number> createSequence(Sequence<?> sequence);
|
||||
|
||||
/**
|
||||
* The <code>CREATE SEQUENCE IF NOT EXISTS</code> statement.
|
||||
@ -10859,7 +10859,7 @@ public interface DSLContext extends Scope {
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
CreateSequenceFlagsStep createSequenceIfNotExists(@Stringly.Name String sequence);
|
||||
CreateSequenceAsStep<Number> createSequenceIfNotExists(@Stringly.Name String sequence);
|
||||
|
||||
/**
|
||||
* The <code>CREATE SEQUENCE IF NOT EXISTS</code> statement.
|
||||
@ -10868,7 +10868,7 @@ public interface DSLContext extends Scope {
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
CreateSequenceFlagsStep createSequenceIfNotExists(Name sequence);
|
||||
CreateSequenceAsStep<Number> createSequenceIfNotExists(Name sequence);
|
||||
|
||||
/**
|
||||
* The <code>CREATE SEQUENCE IF NOT EXISTS</code> statement.
|
||||
@ -10877,7 +10877,7 @@ public interface DSLContext extends Scope {
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
CreateSequenceFlagsStep createSequenceIfNotExists(Sequence<?> sequence);
|
||||
CreateSequenceAsStep<Number> createSequenceIfNotExists(Sequence<?> sequence);
|
||||
|
||||
/**
|
||||
* The <code>DROP DATABASE</code> statement.
|
||||
|
||||
@ -64,27 +64,29 @@ import java.util.stream.*;
|
||||
/**
|
||||
* The <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
@SuppressWarnings({ "hiding", "rawtypes", "unused" })
|
||||
final class CreateSequenceImpl
|
||||
@SuppressWarnings({ "hiding", "rawtypes", "unchecked", "unused" })
|
||||
final class CreateSequenceImpl<T extends Number>
|
||||
extends
|
||||
AbstractDDLQuery
|
||||
implements
|
||||
QOM.CreateSequence,
|
||||
CreateSequenceFlagsStep,
|
||||
QOM.CreateSequence<T>,
|
||||
CreateSequenceAsStep<T>,
|
||||
CreateSequenceFlagsStep<T>,
|
||||
CreateSequenceFinalStep
|
||||
{
|
||||
|
||||
final Sequence<?> sequence;
|
||||
final boolean ifNotExists;
|
||||
Field<? extends Number> startWith;
|
||||
Field<? extends Number> incrementBy;
|
||||
Field<? extends Number> minvalue;
|
||||
boolean noMinvalue;
|
||||
Field<? extends Number> maxvalue;
|
||||
boolean noMaxvalue;
|
||||
CycleOption cycle;
|
||||
Field<? extends Number> cache;
|
||||
boolean noCache;
|
||||
final Sequence<?> sequence;
|
||||
final boolean ifNotExists;
|
||||
DataType<T> dataType;
|
||||
Field<T> startWith;
|
||||
Field<T> incrementBy;
|
||||
Field<T> minvalue;
|
||||
boolean noMinvalue;
|
||||
Field<T> maxvalue;
|
||||
boolean noMaxvalue;
|
||||
CycleOption cycle;
|
||||
Field<T> cache;
|
||||
boolean noCache;
|
||||
|
||||
CreateSequenceImpl(
|
||||
Configuration configuration,
|
||||
@ -98,6 +100,7 @@ implements
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
false,
|
||||
null,
|
||||
false,
|
||||
@ -111,20 +114,22 @@ implements
|
||||
Configuration configuration,
|
||||
Sequence<?> sequence,
|
||||
boolean ifNotExists,
|
||||
Field<? extends Number> startWith,
|
||||
Field<? extends Number> incrementBy,
|
||||
Field<? extends Number> minvalue,
|
||||
DataType<T> dataType,
|
||||
Field<T> startWith,
|
||||
Field<T> incrementBy,
|
||||
Field<T> minvalue,
|
||||
boolean noMinvalue,
|
||||
Field<? extends Number> maxvalue,
|
||||
Field<T> maxvalue,
|
||||
boolean noMaxvalue,
|
||||
CycleOption cycle,
|
||||
Field<? extends Number> cache,
|
||||
Field<T> cache,
|
||||
boolean noCache
|
||||
) {
|
||||
super(configuration);
|
||||
|
||||
this.sequence = sequence;
|
||||
this.ifNotExists = ifNotExists;
|
||||
this.dataType = dataType;
|
||||
this.startWith = startWith;
|
||||
this.incrementBy = incrementBy;
|
||||
this.minvalue = minvalue;
|
||||
@ -141,86 +146,97 @@ implements
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl startWith(Number startWith) {
|
||||
return startWith(Tools.field(startWith, sequence.getDataType()));
|
||||
public final <T extends Number> CreateSequenceImpl<T> as(Class<T> dataType) {
|
||||
return as(DefaultDataType.getDataType(null, dataType));
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl startWith(Field<? extends Number> startWith) {
|
||||
public final <T extends Number> CreateSequenceImpl<T> as(DataType<T> dataType) {
|
||||
this.dataType = (DataType) dataType;
|
||||
return (CreateSequenceImpl) this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl<T> startWith(T startWith) {
|
||||
return startWith(Tools.field(startWith, (DataType<T>) sequence.getDataType()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl<T> startWith(Field<T> startWith) {
|
||||
this.startWith = startWith;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl incrementBy(Number incrementBy) {
|
||||
return incrementBy(Tools.field(incrementBy, sequence.getDataType()));
|
||||
public final CreateSequenceImpl<T> incrementBy(T incrementBy) {
|
||||
return incrementBy(Tools.field(incrementBy, (DataType<T>) sequence.getDataType()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl incrementBy(Field<? extends Number> incrementBy) {
|
||||
public final CreateSequenceImpl<T> incrementBy(Field<T> incrementBy) {
|
||||
this.incrementBy = incrementBy;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl minvalue(Number minvalue) {
|
||||
return minvalue(Tools.field(minvalue, sequence.getDataType()));
|
||||
public final CreateSequenceImpl<T> minvalue(T minvalue) {
|
||||
return minvalue(Tools.field(minvalue, (DataType<T>) sequence.getDataType()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl minvalue(Field<? extends Number> minvalue) {
|
||||
public final CreateSequenceImpl<T> minvalue(Field<T> minvalue) {
|
||||
this.minvalue = minvalue;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl noMinvalue() {
|
||||
public final CreateSequenceImpl<T> noMinvalue() {
|
||||
this.noMinvalue = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl maxvalue(Number maxvalue) {
|
||||
return maxvalue(Tools.field(maxvalue, sequence.getDataType()));
|
||||
public final CreateSequenceImpl<T> maxvalue(T maxvalue) {
|
||||
return maxvalue(Tools.field(maxvalue, (DataType<T>) sequence.getDataType()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl maxvalue(Field<? extends Number> maxvalue) {
|
||||
public final CreateSequenceImpl<T> maxvalue(Field<T> maxvalue) {
|
||||
this.maxvalue = maxvalue;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl noMaxvalue() {
|
||||
public final CreateSequenceImpl<T> noMaxvalue() {
|
||||
this.noMaxvalue = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl cycle() {
|
||||
public final CreateSequenceImpl<T> cycle() {
|
||||
this.cycle = CycleOption.CYCLE;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl noCycle() {
|
||||
public final CreateSequenceImpl<T> noCycle() {
|
||||
this.cycle = CycleOption.NO_CYCLE;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl cache(Number cache) {
|
||||
return cache(Tools.field(cache, sequence.getDataType()));
|
||||
public final CreateSequenceImpl<T> cache(T cache) {
|
||||
return cache(Tools.field(cache, (DataType<T>) sequence.getDataType()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl cache(Field<? extends Number> cache) {
|
||||
public final CreateSequenceImpl<T> cache(Field<T> cache) {
|
||||
this.cache = cache;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final CreateSequenceImpl noCache() {
|
||||
public final CreateSequenceImpl<T> noCache() {
|
||||
this.noCache = true;
|
||||
return this;
|
||||
}
|
||||
@ -267,6 +283,11 @@ implements
|
||||
ctx.visit(sequence);
|
||||
String noSeparator = NO_SEPARATOR.contains(ctx.dialect()) ? "" : " ";
|
||||
|
||||
if (dataType != null) {
|
||||
ctx.sql(' ').visit(K_AS).sql(' ');
|
||||
toSQLDDLTypeDeclaration(ctx, dataType);
|
||||
}
|
||||
|
||||
// Some databases default to sequences starting with MIN_VALUE
|
||||
if (startWith == null && REQUIRES_START_WITH.contains(ctx.dialect()))
|
||||
ctx.sql(' ').visit(K_START_WITH).sql(" 1");
|
||||
@ -322,17 +343,22 @@ implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<? extends Number> $startWith() {
|
||||
public final DataType<T> $dataType() {
|
||||
return dataType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<T> $startWith() {
|
||||
return startWith;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<? extends Number> $incrementBy() {
|
||||
public final Field<T> $incrementBy() {
|
||||
return incrementBy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<? extends Number> $minvalue() {
|
||||
public final Field<T> $minvalue() {
|
||||
return minvalue;
|
||||
}
|
||||
|
||||
@ -342,7 +368,7 @@ implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<? extends Number> $maxvalue() {
|
||||
public final Field<T> $maxvalue() {
|
||||
return maxvalue;
|
||||
}
|
||||
|
||||
@ -357,7 +383,7 @@ implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public final Field<? extends Number> $cache() {
|
||||
public final Field<T> $cache() {
|
||||
return cache;
|
||||
}
|
||||
|
||||
@ -367,64 +393,71 @@ implements
|
||||
}
|
||||
|
||||
@Override
|
||||
public final QOM.CreateSequence $sequence(Sequence<?> newValue) {
|
||||
return $constructor().apply(newValue, $ifNotExists(), $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
public final QOM.CreateSequence<T> $sequence(Sequence<?> newValue) {
|
||||
return $constructor().apply(newValue, $ifNotExists(), $dataType(), $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final QOM.CreateSequence $ifNotExists(boolean newValue) {
|
||||
return $constructor().apply($sequence(), newValue, $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
public final QOM.CreateSequence<T> $ifNotExists(boolean newValue) {
|
||||
return $constructor().apply($sequence(), newValue, $dataType(), $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final QOM.CreateSequence $startWith(Field<? extends Number> newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), newValue, $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
public final QOM.CreateSequence<T> $dataType(DataType<T> newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), newValue, $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final QOM.CreateSequence $incrementBy(Field<? extends Number> newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $startWith(), newValue, $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
public final QOM.CreateSequence<T> $startWith(Field<T> newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $dataType(), newValue, $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final QOM.CreateSequence $minvalue(Field<? extends Number> newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $startWith(), $incrementBy(), newValue, $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
public final QOM.CreateSequence<T> $incrementBy(Field<T> newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $dataType(), $startWith(), newValue, $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final QOM.CreateSequence $noMinvalue(boolean newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $startWith(), $incrementBy(), $minvalue(), newValue, $maxvalue(), $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
public final QOM.CreateSequence<T> $minvalue(Field<T> newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $dataType(), $startWith(), $incrementBy(), newValue, $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final QOM.CreateSequence $maxvalue(Field<? extends Number> newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), newValue, $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
public final QOM.CreateSequence<T> $noMinvalue(boolean newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $dataType(), $startWith(), $incrementBy(), $minvalue(), newValue, $maxvalue(), $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final QOM.CreateSequence $noMaxvalue(boolean newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), newValue, $cycle(), $cache(), $noCache());
|
||||
public final QOM.CreateSequence<T> $maxvalue(Field<T> newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $dataType(), $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), newValue, $noMaxvalue(), $cycle(), $cache(), $noCache());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final QOM.CreateSequence $cycle(CycleOption newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), newValue, $cache(), $noCache());
|
||||
public final QOM.CreateSequence<T> $noMaxvalue(boolean newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $dataType(), $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), newValue, $cycle(), $cache(), $noCache());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final QOM.CreateSequence $cache(Field<? extends Number> newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), newValue, $noCache());
|
||||
public final QOM.CreateSequence<T> $cycle(CycleOption newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $dataType(), $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), newValue, $cache(), $noCache());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final QOM.CreateSequence $noCache(boolean newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), $cache(), newValue);
|
||||
public final QOM.CreateSequence<T> $cache(Field<T> newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $dataType(), $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), newValue, $noCache());
|
||||
}
|
||||
|
||||
public final Function11<? super Sequence<?>, ? super Boolean, ? super Field<? extends Number>, ? super Field<? extends Number>, ? super Field<? extends Number>, ? super Boolean, ? super Field<? extends Number>, ? super Boolean, ? super CycleOption, ? super Field<? extends Number>, ? super Boolean, ? extends QOM.CreateSequence> $constructor() {
|
||||
return (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) -> new CreateSequenceImpl(configuration(), a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
|
||||
@Override
|
||||
public final QOM.CreateSequence<T> $noCache(boolean newValue) {
|
||||
return $constructor().apply($sequence(), $ifNotExists(), $dataType(), $startWith(), $incrementBy(), $minvalue(), $noMinvalue(), $maxvalue(), $noMaxvalue(), $cycle(), $cache(), newValue);
|
||||
}
|
||||
|
||||
public final Function12<? super Sequence<?>, ? super Boolean, ? super DataType<T>, ? super Field<T>, ? super Field<T>, ? super Field<T>, ? super Boolean, ? super Field<T>, ? super Boolean, ? super CycleOption, ? super Field<T>, ? super Boolean, ? extends QOM.CreateSequence<T>> $constructor() {
|
||||
return (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) -> new CreateSequenceImpl(configuration(), a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -9698,7 +9698,7 @@ public class DSL {
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
public static org.jooq.CreateSequenceFlagsStep createSequence(@Stringly.Name String sequence) {
|
||||
public static org.jooq.CreateSequenceAsStep<Number> createSequence(@Stringly.Name String sequence) {
|
||||
return dsl().createSequence(sequence);
|
||||
}
|
||||
|
||||
@ -9713,7 +9713,7 @@ public class DSL {
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
public static org.jooq.CreateSequenceFlagsStep createSequence(Name sequence) {
|
||||
public static org.jooq.CreateSequenceAsStep<Number> createSequence(Name sequence) {
|
||||
return dsl().createSequence(sequence);
|
||||
}
|
||||
|
||||
@ -9728,7 +9728,7 @@ public class DSL {
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ CUBRID, DERBY, DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
public static org.jooq.CreateSequenceFlagsStep createSequence(Sequence<?> sequence) {
|
||||
public static org.jooq.CreateSequenceAsStep<Number> createSequence(Sequence<?> sequence) {
|
||||
return dsl().createSequence(sequence);
|
||||
}
|
||||
|
||||
@ -9743,7 +9743,7 @@ public class DSL {
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
public static org.jooq.CreateSequenceFlagsStep createSequenceIfNotExists(@Stringly.Name String sequence) {
|
||||
public static org.jooq.CreateSequenceAsStep<Number> createSequenceIfNotExists(@Stringly.Name String sequence) {
|
||||
return dsl().createSequenceIfNotExists(sequence);
|
||||
}
|
||||
|
||||
@ -9758,7 +9758,7 @@ public class DSL {
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
public static org.jooq.CreateSequenceFlagsStep createSequenceIfNotExists(Name sequence) {
|
||||
public static org.jooq.CreateSequenceAsStep<Number> createSequenceIfNotExists(Name sequence) {
|
||||
return dsl().createSequenceIfNotExists(sequence);
|
||||
}
|
||||
|
||||
@ -9773,7 +9773,7 @@ public class DSL {
|
||||
*/
|
||||
@NotNull @CheckReturnValue
|
||||
@Support({ DUCKDB, FIREBIRD, H2, HSQLDB, MARIADB, POSTGRES, YUGABYTEDB })
|
||||
public static org.jooq.CreateSequenceFlagsStep createSequenceIfNotExists(Sequence<?> sequence) {
|
||||
public static org.jooq.CreateSequenceAsStep<Number> createSequenceIfNotExists(Sequence<?> sequence) {
|
||||
return dsl().createSequenceIfNotExists(sequence);
|
||||
}
|
||||
|
||||
|
||||
@ -3729,32 +3729,32 @@ public class DefaultDSLContext extends AbstractScope implements DSLContext, Seri
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.jooq.CreateSequenceFlagsStep createSequence(@Stringly.Name String sequence) {
|
||||
public org.jooq.CreateSequenceAsStep<Number> createSequence(@Stringly.Name String sequence) {
|
||||
return new CreateSequenceImpl(configuration(), DSL.sequence(DSL.name(sequence)), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.jooq.CreateSequenceFlagsStep createSequence(Name sequence) {
|
||||
public org.jooq.CreateSequenceAsStep<Number> createSequence(Name sequence) {
|
||||
return new CreateSequenceImpl(configuration(), DSL.sequence(sequence), false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.jooq.CreateSequenceFlagsStep createSequence(Sequence<?> sequence) {
|
||||
public org.jooq.CreateSequenceAsStep<Number> createSequence(Sequence<?> sequence) {
|
||||
return new CreateSequenceImpl(configuration(), sequence, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.jooq.CreateSequenceFlagsStep createSequenceIfNotExists(@Stringly.Name String sequence) {
|
||||
public org.jooq.CreateSequenceAsStep<Number> createSequenceIfNotExists(@Stringly.Name String sequence) {
|
||||
return new CreateSequenceImpl(configuration(), DSL.sequence(DSL.name(sequence)), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.jooq.CreateSequenceFlagsStep createSequenceIfNotExists(Name sequence) {
|
||||
public org.jooq.CreateSequenceAsStep<Number> createSequenceIfNotExists(Name sequence) {
|
||||
return new CreateSequenceImpl(configuration(), DSL.sequence(sequence), true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.jooq.CreateSequenceFlagsStep createSequenceIfNotExists(Sequence<?> sequence) {
|
||||
public org.jooq.CreateSequenceAsStep<Number> createSequenceIfNotExists(Sequence<?> sequence) {
|
||||
return new CreateSequenceImpl(configuration(), sequence, true);
|
||||
}
|
||||
|
||||
|
||||
@ -570,6 +570,7 @@ import org.jooq.CreateIndexWhereStep;
|
||||
// ...
|
||||
// ...
|
||||
// ...
|
||||
import org.jooq.CreateSequenceAsStep;
|
||||
import org.jooq.CreateSequenceFlagsStep;
|
||||
import org.jooq.CreateTableAsStep;
|
||||
import org.jooq.CreateTableCommentStep;
|
||||
@ -4359,6 +4360,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
|
||||
? dsl.createSequenceIfNotExists(schemaName)
|
||||
: dsl.createSequence(schemaName);
|
||||
|
||||
boolean as = false;
|
||||
boolean startWith = false;
|
||||
boolean incrementBy = false;
|
||||
boolean minvalue = false;
|
||||
@ -4367,9 +4369,12 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
|
||||
boolean cache = false;
|
||||
|
||||
for (;;) {
|
||||
Field<Long> field;
|
||||
Field field;
|
||||
DataType type = null;
|
||||
|
||||
if (!startWith && (startWith |= (field = parseSequenceStartWithIf()) != null))
|
||||
if (!as && (as |= (parseKeywordIf("AS") && (type = parseDataType()) != null)))
|
||||
s = ((CreateSequenceAsStep) s).as(type);
|
||||
else if (!startWith && (startWith |= (field = parseSequenceStartWithIf()) != null))
|
||||
s = s.startWith(field);
|
||||
else if (!incrementBy && (incrementBy |= (field = parseSequenceIncrementByIf()) != null))
|
||||
s = s.incrementBy(field);
|
||||
|
||||
@ -3054,14 +3054,15 @@ public final class QOM {
|
||||
/**
|
||||
* The <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
public static final CreateSequence CreateSequence() {
|
||||
return new org.jooq.impl.CreateSequenceImpl(
|
||||
public static final <T extends Number> CreateSequence<T> CreateSequence() {
|
||||
return new org.jooq.impl.CreateSequenceImpl<>(
|
||||
null,
|
||||
null,
|
||||
false,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
false,
|
||||
null,
|
||||
false,
|
||||
@ -3074,23 +3075,25 @@ public final class QOM {
|
||||
/**
|
||||
* The <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
public static final CreateSequence CreateSequence(
|
||||
public static final <T extends Number> CreateSequence<T> CreateSequence(
|
||||
Sequence<?> sequence,
|
||||
boolean ifNotExists,
|
||||
Field<? extends Number> startWith,
|
||||
Field<? extends Number> incrementBy,
|
||||
Field<? extends Number> minvalue,
|
||||
DataType<T> dataType,
|
||||
Field<T> startWith,
|
||||
Field<T> incrementBy,
|
||||
Field<T> minvalue,
|
||||
boolean noMinvalue,
|
||||
Field<? extends Number> maxvalue,
|
||||
Field<T> maxvalue,
|
||||
boolean noMaxvalue,
|
||||
CycleOption cycle,
|
||||
Field<? extends Number> cache,
|
||||
Field<T> cache,
|
||||
boolean noCache
|
||||
) {
|
||||
return new org.jooq.impl.CreateSequenceImpl(
|
||||
return new org.jooq.impl.CreateSequenceImpl<>(
|
||||
null,
|
||||
sequence,
|
||||
ifNotExists,
|
||||
dataType,
|
||||
startWith,
|
||||
incrementBy,
|
||||
minvalue,
|
||||
@ -3106,7 +3109,7 @@ public final class QOM {
|
||||
/**
|
||||
* The <code>CREATE SEQUENCE</code> statement.
|
||||
*/
|
||||
public /*sealed*/ interface CreateSequence
|
||||
public /*sealed*/ interface CreateSequence<T extends Number>
|
||||
extends
|
||||
DDLQuery
|
||||
//permits
|
||||
@ -3114,37 +3117,40 @@ public final class QOM {
|
||||
{
|
||||
@NotNull Sequence<?> $sequence();
|
||||
boolean $ifNotExists();
|
||||
@Nullable Field<? extends Number> $startWith();
|
||||
@Nullable Field<? extends Number> $incrementBy();
|
||||
@Nullable Field<? extends Number> $minvalue();
|
||||
@Nullable DataType<T> $dataType();
|
||||
@Nullable Field<T> $startWith();
|
||||
@Nullable Field<T> $incrementBy();
|
||||
@Nullable Field<T> $minvalue();
|
||||
boolean $noMinvalue();
|
||||
@Nullable Field<? extends Number> $maxvalue();
|
||||
@Nullable Field<T> $maxvalue();
|
||||
boolean $noMaxvalue();
|
||||
@Nullable CycleOption $cycle();
|
||||
@Nullable Field<? extends Number> $cache();
|
||||
@Nullable Field<T> $cache();
|
||||
boolean $noCache();
|
||||
@CheckReturnValue
|
||||
@NotNull CreateSequence $sequence(Sequence<?> sequence);
|
||||
@NotNull CreateSequence<T> $sequence(Sequence<?> sequence);
|
||||
@CheckReturnValue
|
||||
@NotNull CreateSequence $ifNotExists(boolean ifNotExists);
|
||||
@NotNull CreateSequence<T> $ifNotExists(boolean ifNotExists);
|
||||
@CheckReturnValue
|
||||
@NotNull CreateSequence $startWith(Field<? extends Number> startWith);
|
||||
@NotNull CreateSequence<T> $dataType(DataType<T> dataType);
|
||||
@CheckReturnValue
|
||||
@NotNull CreateSequence $incrementBy(Field<? extends Number> incrementBy);
|
||||
@NotNull CreateSequence<T> $startWith(Field<T> startWith);
|
||||
@CheckReturnValue
|
||||
@NotNull CreateSequence $minvalue(Field<? extends Number> minvalue);
|
||||
@NotNull CreateSequence<T> $incrementBy(Field<T> incrementBy);
|
||||
@CheckReturnValue
|
||||
@NotNull CreateSequence $noMinvalue(boolean noMinvalue);
|
||||
@NotNull CreateSequence<T> $minvalue(Field<T> minvalue);
|
||||
@CheckReturnValue
|
||||
@NotNull CreateSequence $maxvalue(Field<? extends Number> maxvalue);
|
||||
@NotNull CreateSequence<T> $noMinvalue(boolean noMinvalue);
|
||||
@CheckReturnValue
|
||||
@NotNull CreateSequence $noMaxvalue(boolean noMaxvalue);
|
||||
@NotNull CreateSequence<T> $maxvalue(Field<T> maxvalue);
|
||||
@CheckReturnValue
|
||||
@NotNull CreateSequence $cycle(CycleOption cycle);
|
||||
@NotNull CreateSequence<T> $noMaxvalue(boolean noMaxvalue);
|
||||
@CheckReturnValue
|
||||
@NotNull CreateSequence $cache(Field<? extends Number> cache);
|
||||
@NotNull CreateSequence<T> $cycle(CycleOption cycle);
|
||||
@CheckReturnValue
|
||||
@NotNull CreateSequence $noCache(boolean noCache);
|
||||
@NotNull CreateSequence<T> $cache(Field<T> cache);
|
||||
@CheckReturnValue
|
||||
@NotNull CreateSequence<T> $noCache(boolean noCache);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user