Skip to content

Commit 6e91c3e

Browse files
fix: date/time functions colliding with implicit casts
- fixes starlake-ai/jsqltranspiler#93 Signed-off-by: Andreas Reichel <[email protected]>
1 parent 2f6afbc commit 6e91c3e

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5435,7 +5435,7 @@ Expression PrimaryExpression() #PrimaryExpression:
54355435

54365436
| LOOKAHEAD(2, {!interrupted}) retval=CharacterPrimary()
54375437

5438-
| LOOKAHEAD(5, {!interrupted}) retval=ImplicitCast()
5438+
| LOOKAHEAD(6, {!interrupted}) retval=ImplicitCast()
54395439

54405440
| retval = JdbcParameter()
54415441

src/test/java/net/sf/jsqlparser/expression/CastExpressionTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,14 @@ void testParenthesisCastIssue1997() throws JSQLParserException {
104104
sqlStr = "SELECT ((foo)::text = ANY((((ARRAY['bar'])))::text[]))";
105105
assertSqlCanBeParsedAndDeparsed(sqlStr, true);
106106
}
107+
108+
@Test
109+
void testDateTimeCast() throws JSQLParserException {
110+
String sqlStr = "SELECT\n"
111+
+ " TIME(15, 30, 00) as time_hms,\n"
112+
+ " TIME(DATETIME '2008-12-25 15:30:00') AS time_dt,\n"
113+
+ " TIME(TIMESTAMP '2008-12-25 15:30:00+08', 'America/Los_Angeles')\n"
114+
+ "as time_tstz;";
115+
assertSqlCanBeParsedAndDeparsed(sqlStr, true);
116+
}
107117
}

0 commit comments

Comments
 (0)