Skip to content

Commit 1d27f93

Browse files
committed
Support PostgreSQL-specific [CREATE SEQUENCE name START n ...]
I.e. no `START WITH` Fixes #2347
1 parent 999cdca commit 1d27f93

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

src/main/java/net/sf/jsqlparser/schema/Sequence.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ public Sequence addParameters(Collection<? extends Parameter> parameters) {
158158
* The available parameters to a sequence
159159
*/
160160
public enum ParameterType {
161-
INCREMENT_BY, START_WITH, RESTART_WITH, MAXVALUE, NOMAXVALUE, MINVALUE, NOMINVALUE, CYCLE, NOCYCLE, CACHE, NOCACHE, ORDER, NOORDER, KEEP, NOKEEP, SESSION, GLOBAL;
161+
INCREMENT_BY, START_WITH, START, RESTART_WITH, MAXVALUE, NOMAXVALUE, MINVALUE, NOMINVALUE, CYCLE, NOCYCLE, CACHE, NOCACHE, ORDER, NOORDER, KEEP, NOKEEP, SESSION, GLOBAL;
162162

163163
public static ParameterType from(String type) {
164164
return Enum.valueOf(ParameterType.class, type.toUpperCase());
@@ -191,6 +191,8 @@ public String formatParameter() {
191191
return prefix("INCREMENT BY");
192192
case START_WITH:
193193
return prefix("START WITH");
194+
case START:
195+
return prefix("START");
194196
case RESTART_WITH:
195197
if (value != null) {
196198
return prefix("RESTART WITH");

src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10209,6 +10209,7 @@ List<Sequence.Parameter> SequenceParameters():
1020910209
List<Sequence.Parameter> sequenceParameters = new ArrayList<Sequence.Parameter>();
1021010210
Sequence.Parameter parameter = null;
1021110211
Token token = null;
10212+
Token withToken = null;
1021210213
}
1021310214
{
1021410215
(
@@ -10223,9 +10224,13 @@ List<Sequence.Parameter> SequenceParameters():
1022310224
)
1022410225
|
1022510226
(
10226-
<K_START> <K_WITH> token=<S_LONG>
10227+
<K_START> [ withToken=<K_WITH> ] token=<S_LONG>
1022710228
{
10228-
parameter = new Sequence.Parameter(Sequence.ParameterType.START_WITH);
10229+
if (withToken != null) {
10230+
parameter = new Sequence.Parameter(Sequence.ParameterType.START_WITH);
10231+
} else {
10232+
parameter = new Sequence.Parameter(Sequence.ParameterType.START);
10233+
}
1022910234
parameter.setValue(Long.parseLong(token.image));
1023010235
sequenceParameters.add(parameter);
1023110236
}

src/test/java/net/sf/jsqlparser/statement/create/CreateSequenceTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ public void testCreateSequence_withStart() throws JSQLParserException {
4444
assertSqlCanBeParsedAndDeparsed("CREATE SEQUENCE my_seq START WITH 10");
4545
}
4646

47+
@Test
48+
public void testCreateSequence_withStartPostgres() throws JSQLParserException {
49+
assertSqlCanBeParsedAndDeparsed("CREATE SEQUENCE my_seq START 10");
50+
}
51+
4752
@Test
4853
public void testCreateSequence_withMaxValue() throws JSQLParserException {
4954
assertSqlCanBeParsedAndDeparsed("CREATE SEQUENCE my_seq MAXVALUE 5");

0 commit comments

Comments
 (0)