@@ -141,9 +141,6 @@ def test_databricks(self):
141141
142142 self .validate_all (
143143 "SELECT c1:item[1].price" ,
144- read = {
145- "spark" : "SELECT GET_JSON_OBJECT(c1, '$.item[1].price')" ,
146- },
147144 write = {
148145 "databricks" : "SELECT c1:item[1].price" ,
149146 "spark" : "SELECT GET_JSON_OBJECT(c1, '$.item[1].price')" ,
@@ -152,8 +149,11 @@ def test_databricks(self):
152149
153150 self .validate_all (
154151 "SELECT GET_JSON_OBJECT(c1, '$.item[1].price')" ,
152+ read = {
153+ "spark" : "SELECT GET_JSON_OBJECT(c1, '$.item[1].price')" ,
154+ },
155155 write = {
156- "databricks" : "SELECT c1: item[1].price" ,
156+ "databricks" : "SELECT GET_JSON_OBJECT(c1, '$. item[1].price') " ,
157157 "spark" : "SELECT GET_JSON_OBJECT(c1, '$.item[1].price')" ,
158158 },
159159 )
@@ -271,7 +271,7 @@ def test_databricks(self):
271271
272272 self .validate_identity (
273273 """WITH t AS (SELECT '{"x-y": "z"}' AS c) SELECT get_json_object(c, '$.x-y') FROM t""" ,
274- """WITH t AS (SELECT '{"x-y": "z"}' AS c) SELECT c: ["x-y"] FROM t""" ,
274+ """WITH t AS (SELECT '{"x-y": "z"}' AS c) SELECT GET_JSON_OBJECT(c, '$ ["x-y"]') FROM t""" ,
275275 ).selects [0 ].expression .assert_is (exp .JSONPath )
276276
277277 # https://docs.databricks.com/sql/language-manual/functions/colonsign.html
@@ -296,9 +296,11 @@ def test_json(self):
296296 """SELECT c1:price FROM VALUES ('{ "price": 5 }') AS T(c1)""" ,
297297 )
298298 self .validate_identity (
299- """SELECT GET_JSON_OBJECT(c1, '$.price') FROM VALUES ('{ "price": 5 }') AS T(c1)""" ,
300- """SELECT c1:price FROM VALUES ('{ "price": 5 }') AS T(c1)""" ,
299+ """SELECT GET_JSON_OBJECT(c1, '$.price') FROM VALUES ('{ "price": 5 }') AS T(c1)"""
301300 )
301+ self .validate_identity ("SELECT GET_JSON_OBJECT(col, path_col)" )
302+ self .validate_identity ("SELECT GET_JSON_OBJECT(col, CONCAT('$.', field_name))" )
303+ self .validate_identity ("SELECT GET_JSON_OBJECT(GET_JSON_OBJECT(col, '$[0]'), '$.a')" )
302304 self .validate_identity (
303305 """SELECT raw:`zip code`, raw:`fb:testid`, raw:store['bicycle'], raw:store["zip code"]""" ,
304306 """SELECT raw:["zip code"], raw:["fb:testid"], raw:store.bicycle, raw:store["zip code"]""" ,
0 commit comments