Skip to content

Commit 5b00ace

Browse files
tomershaywumpz
authored andcommitted
Add support for casting to signed integer (#734)
1 parent 04db124 commit 5b00ace

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,7 @@ TOKEN: /* SQL Keywords. prefixed with K_ to avoid name clashes */
296296
| <K_SQL_CALC_FOUND_ROWS: "SQL_CALC_FOUND_ROWS">
297297
| <K_SQL_NO_CACHE: "SQL_NO_CACHE">
298298
| <K_USING:"USING">
299+
| <K_SIGNED:"SIGNED">
299300
| <K_UNSIGNED:"UNSIGNED">
300301
| <K_VALIDATE : "VALIDATE">
301302
| <K_VALUE:"VALUE">
@@ -3425,6 +3426,7 @@ ColDataType ColDataType():
34253426
| ( tk=<S_IDENTIFIER> | tk=<K_DATETIMELITERAL> | tk=<K_XML> | tk=<K_INTERVAL> | tk=<DT_ZONE> | tk=<K_CHAR> )
34263427
{ colDataType.setDataType(tk.image); }
34273428
| tk=<K_UNSIGNED> tk2=<S_IDENTIFIER> {colDataType.setDataType(tk.image + " " + tk2.image);}
3429+
| tk=<K_SIGNED> tk2=<S_IDENTIFIER> {colDataType.setDataType(tk.image + " " + tk2.image);}
34283430
)
34293431

34303432
[LOOKAHEAD(2) "(" {tk2 =null;} ( (tk=<S_LONG> [ tk2=<K_BYTE> | tk2=<K_CHAR> ] | tk=<S_CHAR_LITERAL> | tk=<S_IDENTIFIER> )

src/test/java/net/sf/jsqlparser/statement/select/SelectTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2798,6 +2798,11 @@ public void testWhereIssue240_0() throws JSQLParserException {
27982798
assertSqlCanBeParsedAndDeparsed("SELECT count(*) FROM mytable WHERE 0");
27992799
}
28002800

2801+
@Test
2802+
public void testCastToSignedInteger() throws JSQLParserException {
2803+
assertSqlCanBeParsedAndDeparsed("SELECT CAST(contact_id AS SIGNED INTEGER) FROM contact WHERE contact_id = 20");
2804+
}
2805+
28012806
@Test
28022807
public void testWhereIssue240_notBoolean() {
28032808
try {

0 commit comments

Comments
 (0)