@@ -146,6 +146,7 @@ TOKEN: /* SQL Keywords. prefixed with K_ to avoid name clashes */
146
146
| <K_SOME:"SOME">
147
147
| <K_FULL:"FULL">
148
148
| <K_WITH:"WITH">
149
+ | <K_WITHOUT:"WITHOUT">
149
150
| <K_TABLE:"TABLE">
150
151
| <K_VIEW:"VIEW">
151
152
| <K_WHERE:"WHERE">
@@ -195,6 +196,7 @@ TOKEN: /* SQL Keywords. prefixed with K_ to avoid name clashes */
195
196
| <K_REFERENCES:"REFERENCES">
196
197
| <K_CHECK:"CHECK">
197
198
| <K_CHARACTER:"CHARACTER">
199
+ | <K_BIT:"BIT">
198
200
| <K_VARYING:"VARYING">
199
201
| <K_START:"START">
200
202
| <K_CONNECT:"CONNECT">
@@ -246,6 +248,7 @@ TOKEN: /* SQL Keywords. prefixed with K_ to avoid name clashes */
246
248
| <K_IGNORE : "IGNORE">
247
249
| <K_SEMI : "SEMI">
248
250
| <K_DATETIMELITERAL : ("DATE" | "TIME" | "TIMESTAMP") >
251
+ | <K_ZONE:"ZONE">
249
252
| <K_TIME_KEY_EXPR : ( "CURRENT_TIMESTAMP" | "CURRENT_TIME" | "CURRENT_DATE" ) ( "()" )?>
250
253
| <K_DOUBLE : "DOUBLE">
251
254
| <K_PRECISION : "PRECISION">
@@ -265,6 +268,11 @@ TOKEN : /* Operators */
265
268
| <OP_NOTEQUALSBANG: "!=">
266
269
}
267
270
271
+ TOKEN : /* Date/Time with time zones */
272
+ {
273
+ <DT_ZONE: <K_DATETIMELITERAL> <WHITESPACE> (<K_WITH> | <K_WITHOUT>) <WHITESPACE> "TIME" <WHITESPACE> <K_ZONE>>
274
+ }
275
+
268
276
TOKEN : /* Numeric Constants */
269
277
{
270
278
< S_DOUBLE: ((<S_LONG>)? "." <S_LONG> ( ["e","E"] (["+", "-"])? <S_LONG>)?
@@ -2818,9 +2826,9 @@ ColDataType ColDataType():
2818
2826
List<Integer> array = new ArrayList<Integer>();
2819
2827
}
2820
2828
{
2821
- ( tk=<K_CHARACTER> [tk2=<K_VARYING>] { colDataType.setDataType(tk.image + (tk2!=null?" " + tk2.image:"")); }
2829
+ ( ( tk=<K_CHARACTER> | tk=<K_BIT>) [tk2=<K_VARYING>] { colDataType.setDataType(tk.image + (tk2!=null?" " + tk2.image:"")); }
2822
2830
| tk=<K_DOUBLE> [tk2=<K_PRECISION>] { colDataType.setDataType(tk.image + (tk2!=null?" " + tk2.image:"")); }
2823
- | ( tk=<S_IDENTIFIER> | tk=<K_DATETIMELITERAL> | tk=<K_INTERVAL> ) { colDataType.setDataType(tk.image); } )
2831
+ | ( tk=<S_IDENTIFIER> | tk=<K_DATETIMELITERAL> | tk=<K_XML> | tk=< K_INTERVAL> | tk=<DT_ZONE> ) { colDataType.setDataType(tk.image); })
2824
2832
2825
2833
[LOOKAHEAD(2) "(" ( (tk=<S_LONG> | tk=<S_CHAR_LITERAL> | tk=<S_IDENTIFIER> ) { argumentsStringList.add(tk.image); } ["," {/*argumentsStringList.add(",");*/}] )* ")"]
2826
2834
[( "[" {tk=null;} [ tk=<S_LONG> ] { array.add(tk!=null?Integer.valueOf(tk.image):null); } "]" )+ { colDataType.setArrayData(array); } ]
0 commit comments