[jOOQ/jOOQ#9030] Add AlterSequenceStep.restartWith(Field<? extends T>) overload

This commit is contained in:
Lukas Eder 2019-08-13 16:06:47 +02:00
parent 972c89c40b
commit b1d9fceddf
3 changed files with 23 additions and 4 deletions

View File

@ -86,4 +86,10 @@ public interface AlterSequenceRestartStep<T extends Number> {
*/
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, POSTGRES })
AlterSequenceFinalStep restartWith(T value);
/**
* Restart the sequence at a given value.
*/
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, POSTGRES })
AlterSequenceFinalStep restartWith(Field<? extends T> value);
}

View File

@ -91,6 +91,13 @@ public interface AlterSequenceStep<T extends Number> extends AlterSequenceRestar
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, POSTGRES })
AlterSequenceFinalStep restartWith(T value);
/**
* Restart the sequence at a given value.
*/
@Override
@Support({ CUBRID, FIREBIRD, H2, HSQLDB, POSTGRES })
AlterSequenceFinalStep restartWith(Field<? extends T> value);
/**
* Add a <code>RENAME TO</code> clause to the <code>ALTER SEQUENCE</code>
* statement.

View File

@ -73,6 +73,7 @@ import org.jooq.AlterSequenceStep;
import org.jooq.Clause;
import org.jooq.Configuration;
import org.jooq.Context;
import org.jooq.Field;
import org.jooq.Name;
// ...
import org.jooq.SQLDialect;
@ -100,7 +101,7 @@ final class AlterSequenceImpl<T extends Number> extends AbstractRowCountQuery im
private final Sequence<T> sequence;
private final boolean ifExists;
private T restartWith;
private Field<?> restartWith;
private Sequence<?> renameTo;
AlterSequenceImpl(Configuration configuration, Sequence<T> sequence) {
@ -125,6 +126,11 @@ final class AlterSequenceImpl<T extends Number> extends AbstractRowCountQuery im
@Override
public final AlterSequenceFinalStep restartWith(T value) {
return restartWith(Tools.field(value, sequence.getDataType()));
}
@Override
public final AlterSequenceFinalStep restartWith(Field<? extends T> value) {
restartWith = value;
return this;
}
@ -249,7 +255,7 @@ final class AlterSequenceImpl<T extends Number> extends AbstractRowCountQuery im
else {
ctx.start(ALTER_SEQUENCE_RESTART);
T with = restartWith;
Field<?> with = restartWith;
if (with == null) {
@ -262,10 +268,10 @@ final class AlterSequenceImpl<T extends Number> extends AbstractRowCountQuery im
else {
if (ctx.family() == CUBRID)
ctx.sql(' ').visit(K_START_WITH)
.sql(' ').sql(with.toString());
.sql(' ').visit(with);
else
ctx.sql(' ').visit(K_RESTART_WITH)
.sql(' ').sql(with.toString());
.sql(' ').visit(with);
}
ctx.end(ALTER_SEQUENCE_RESTART);