File tree Expand file tree Collapse file tree 3 files changed +34
-0
lines changed
java/net/sf/jsqlparser/schema
jjtree/net/sf/jsqlparser/parser
test/java/net/sf/jsqlparser/statement/create Expand file tree Collapse file tree 3 files changed +34
-0
lines changed Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ public class Sequence extends ASTNodeAccessImpl implements MultiPartName {
2929 private List <String > partItems = new ArrayList <>();
3030
3131 private List <Parameter > parameters ;
32+ private String dataType ;
3233
3334 public Sequence () {}
3435
@@ -45,6 +46,19 @@ public void setParameters(List<Parameter> parameters) {
4546 this .parameters = parameters ;
4647 }
4748
49+ public String getDataType () {
50+ return dataType ;
51+ }
52+
53+ public void setDataType (String dataType ) {
54+ this .dataType = dataType ;
55+ }
56+
57+ public Sequence withDataType (String dataType ) {
58+ this .setDataType (dataType );
59+ return this ;
60+ }
61+
4862 public Database getDatabase () {
4963 return new Database (getIndex (DATABASE_IDX ));
5064 }
@@ -129,6 +143,9 @@ public String getUnquotedName() {
129143 @ Override
130144 public String toString () {
131145 StringBuilder sql = new StringBuilder (getFullyQualifiedName ());
146+ if (dataType != null ) {
147+ sql .append (" AS " ).append (dataType );
148+ }
132149 if (parameters != null ) {
133150 for (Sequence .Parameter parameter : parameters ) {
134151 sql .append (" " ).append (parameter .formatParameter ());
Original file line number Diff line number Diff line change @@ -11500,9 +11500,11 @@ CreateSequence CreateSequence():
1150011500 CreateSequence createSequence = new CreateSequence();
1150111501 Sequence sequence;
1150211502 List<Sequence.Parameter> sequenceParameters;
11503+ Token dataType = null;
1150311504}
1150411505{
1150511506 <K_SEQUENCE> sequence=Sequence() { createSequence.setSequence(sequence); }
11507+ [ <K_AS> ( dataType=<S_IDENTIFIER> | dataType=<DATA_TYPE> ) { sequence.setDataType(dataType.image); } ]
1150611508 sequenceParameters = SequenceParameters()
1150711509 {
1150811510 sequence.setParameters(sequenceParameters);
Original file line number Diff line number Diff line change @@ -143,4 +143,19 @@ public void testCreateSequence_preservesParamOrder() throws JSQLParserException
143143 statement );
144144 }
145145
146+ @ Test
147+ public void testCreateSequence_withAsDataType () throws JSQLParserException {
148+ String statement = "CREATE SEQUENCE public.activites_activite_id_seq AS integer START WITH 1 INCREMENT BY 1 NOMINVALUE NOMAXVALUE CACHE 1" ;
149+ assertSqlCanBeParsedAndDeparsed (statement );
150+ }
151+
152+ @ Test
153+ public void testCreateSequence_withAsDataTypeSimple () throws JSQLParserException {
154+ String statement = "CREATE SEQUENCE my_seq AS integer" ;
155+ assertSqlCanBeParsedAndDeparsed (statement );
156+ assertDeparse (new CreateSequence ().withSequence (
157+ new Sequence ().withName ("my_seq" ).withDataType ("integer" )),
158+ statement );
159+ }
160+
146161}
You can’t perform that action at this time.
0 commit comments