Skip to content

Commit 6eb5887

Browse files
feat: Snowflake GET operator :
Signed-off-by: Andreas Reichel <andreas@manticore-projects.com>
1 parent dc12382 commit 6eb5887

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4859,7 +4859,7 @@ Expression PrimaryExpression() #PrimaryExpression:
48594859
[
48604860
LOOKAHEAD(2) (
48614861
LOOKAHEAD(2) (
4862-
token="->" expression=Expression()
4862+
( token="->" | token=":" /*Snowflake GET_PATH Operator*/ ) expression=Expression()
48634863
|
48644864
token="->>" expression=Expression()
48654865
|
@@ -5140,7 +5140,7 @@ JsonExpression JsonExpression(Expression expr, List<Map.Entry<Expression, String
51405140

51415141
(
51425142
LOOKAHEAD(2) (
5143-
token="->" expression=Expression()
5143+
( token="->" | token=":" /*Snowflake GET_PATH Operator*/ ) expression=Expression()
51445144
|
51455145
token="->>" expression=Expression()
51465146
|

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
class JsonExpressionTest {
2020

2121
@Test
22-
void testIssue1792() throws JSQLParserException, InterruptedException {
22+
void testIssue1792() throws JSQLParserException {
2323
String sqlStr =
2424
"SELECT ''::JSON -> 'obj'::TEXT";
2525
assertSqlCanBeParsedAndDeparsed(sqlStr, true);
@@ -37,6 +37,12 @@ void testIssue1792() throws JSQLParserException, InterruptedException {
3737
assertSqlCanBeParsedAndDeparsed(sqlStr, true);
3838
}
3939

40+
@Test
41+
void testSnowflakeGetOperator() throws JSQLParserException {
42+
String sqlStr = "SELECT v:'attr[0].name' FROM vartab;";
43+
assertSqlCanBeParsedAndDeparsed(sqlStr, true);
44+
}
45+
4046
@Test
4147
void testParenthesedJsonExpressionsIssue1792() throws JSQLParserException {
4248
String sqlStr =

0 commit comments

Comments
 (0)