Skip to content

Commit 9dbdecd

Browse files
updates to parameters and tests
1 parent c385b81 commit 9dbdecd

File tree

3 files changed

+20
-34
lines changed

3 files changed

+20
-34
lines changed

sqlglot/expressions.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7442,30 +7442,28 @@ class MapFromEntries(Func):
74427442

74437443

74447444
class MapCat(Func):
7445-
arg_types = {"this": True, "expressions": False}
7446-
is_var_len_args = True
7445+
arg_types = {"this": True, "expressions": True}
74477446

74487447

74497448
class MapContainsKey(Func):
7450-
arg_types = {"this": True, "expression": True}
7449+
arg_types = {"this": True, "key": True}
74517450

74527451

74537452
class MapDelete(Func):
7454-
arg_types = {"this": True, "expressions": False}
7453+
arg_types = {"this": True, "key": True}
74557454
is_var_len_args = True
74567455

74577456

74587457
class MapInsert(Func):
7459-
arg_types = {"this": True, "expressions": False}
7460-
is_var_len_args = True
7458+
arg_types = {"this": True, "key": False, "value": True, "update_flag": False}
74617459

74627460

74637461
class MapKeys(Func):
74647462
pass
74657463

74667464

74677465
class MapPick(Func):
7468-
arg_types = {"this": True, "expressions": False}
7466+
arg_types = {"this": True, "expressions": True}
74697467
is_var_len_args = True
74707468

74717469

tests/dialects/test_snowflake.py

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -310,26 +310,14 @@ def test_snowflake(self):
310310
self.validate_identity("SELECT TIMEADD(HOUR, 2, CAST('09:05:03' AS TIME))")
311311
self.validate_identity("SELECT CAST(OBJECT_CONSTRUCT('a', 1) AS MAP(VARCHAR, INT))")
312312
self.validate_identity(
313-
"SELECT MAP_CAT(CAST(OBJECT_CONSTRUCT('a', '1') AS MAP(VARCHAR, VARCHAR)), CAST(OBJECT_CONSTRUCT('b', '2') AS MAP(VARCHAR, VARCHAR)))"
314-
)
315-
self.validate_identity(
316-
"SELECT MAP_CONTAINS_KEY('k1', CAST(OBJECT_CONSTRUCT('k1', 'v1', 'k2', 'v2', 'k3', 'v3') AS MAP(VARCHAR, VARCHAR)))"
317-
)
318-
self.validate_identity(
319-
"SELECT MAP_DELETE(CAST(OBJECT_CONSTRUCT('a', '1', 'b', '2', 'c', '3') AS MAP(VARCHAR, VARCHAR)), 'b')"
320-
)
321-
self.validate_identity(
322-
"SELECT MAP_INSERT(CAST(OBJECT_CONSTRUCT('a', '1') AS MAP(VARCHAR, VARCHAR)), 'b', '2')"
323-
)
324-
self.validate_identity(
325-
"SELECT MAP_KEYS(CAST(OBJECT_CONSTRUCT('a', '1', 'b', '2') AS MAP(VARCHAR, VARCHAR)))"
326-
)
327-
self.validate_identity(
328-
"SELECT MAP_PICK(CAST(OBJECT_CONSTRUCT('a', '1', 'b', '2', 'c', '3') AS MAP(VARCHAR, VARCHAR)), 'a', 'c')"
329-
)
330-
self.validate_identity(
331-
"SELECT MAP_SIZE(CAST(OBJECT_CONSTRUCT('a', '1', 'b', '2') AS MAP(VARCHAR, VARCHAR)))"
332-
)
313+
"SELECT MAP_CAT(CAST(col AS MAP(VARCHAR, VARCHAR)), CAST(col AS MAP(VARCHAR, VARCHAR)))"
314+
)
315+
self.validate_identity("SELECT MAP_CONTAINS_KEY('k1', CAST(col AS MAP(VARCHAR, VARCHAR)))")
316+
self.validate_identity("SELECT MAP_DELETE(CAST(col AS MAP(VARCHAR, VARCHAR)), 'k1')")
317+
self.validate_identity("SELECT MAP_INSERT(CAST(col AS MAP(VARCHAR, VARCHAR)), 'b', '2')")
318+
self.validate_identity("SELECT MAP_KEYS(CAST(col AS MAP(VARCHAR, VARCHAR)))")
319+
self.validate_identity("SELECT MAP_PICK(CAST(col AS MAP(VARCHAR, VARCHAR)), 'a', 'c')")
320+
self.validate_identity("SELECT MAP_SIZE(CAST(col AS MAP(VARCHAR, VARCHAR)))")
333321
self.validate_identity("SELECT CAST(OBJECT_CONSTRUCT('a', 1) AS OBJECT(a CHAR NOT NULL))")
334322
self.validate_identity("SELECT CAST([1, 2, 3] AS ARRAY(INT))")
335323
self.validate_identity("SELECT CAST(obj AS OBJECT(x CHAR) RENAME FIELDS)")

tests/fixtures/optimizer/annotate_functions.sql

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2953,31 +2953,31 @@ LTRIM(NULL);
29532953
VARCHAR;
29542954

29552955
# dialect: snowflake
2956-
MAP_CAT(CAST(OBJECT_CONSTRUCT('a', '1') AS MAP(VARCHAR, VARCHAR)), CAST(OBJECT_CONSTRUCT('b', '2') AS MAP(VARCHAR, VARCHAR)));
2956+
MAP_CAT(CAST(col AS MAP(VARCHAR, VARCHAR)), CAST(col AS MAP(VARCHAR, VARCHAR)));
29572957
MAP;
29582958

29592959
# dialect: snowflake
2960-
MAP_CONTAINS_KEY('k1', CAST(OBJECT_CONSTRUCT('k1', 'v1', 'k2', 'v2', 'k3', 'v3') AS MAP(VARCHAR, VARCHAR)));
2960+
MAP_CONTAINS_KEY('k1', CAST(col AS MAP(VARCHAR, VARCHAR)));
29612961
BOOLEAN;
29622962

29632963
# dialect: snowflake
2964-
MAP_DELETE(CAST(OBJECT_CONSTRUCT('a', '1', 'b', '2', 'c', '3') AS MAP(VARCHAR, VARCHAR)), 'b');
2964+
MAP_DELETE(CAST(col AS MAP(VARCHAR, VARCHAR)), 'b');
29652965
MAP;
29662966

29672967
# dialect: snowflake
2968-
MAP_INSERT(CAST(OBJECT_CONSTRUCT('a', '1') AS MAP(VARCHAR, VARCHAR)), 'b', '2');
2968+
MAP_INSERT(CAST(col AS MAP(VARCHAR, VARCHAR)), 'b', '2');
29692969
MAP;
29702970

29712971
# dialect: snowflake
2972-
MAP_KEYS(CAST(OBJECT_CONSTRUCT('a', '1', 'b', '2') AS MAP(VARCHAR, VARCHAR)));
2972+
MAP_KEYS(CAST(col AS MAP(VARCHAR, VARCHAR)));
29732973
ARRAY;
29742974

29752975
# dialect: snowflake
2976-
MAP_PICK(CAST(OBJECT_CONSTRUCT('a', '1', 'b', '2', 'c', '3') AS MAP(VARCHAR, VARCHAR)), 'a', 'c');
2976+
MAP_PICK(CAST(col AS MAP(VARCHAR, VARCHAR)), 'a', 'c');
29772977
MAP;
29782978

29792979
# dialect: snowflake
2980-
MAP_SIZE(CAST(OBJECT_CONSTRUCT('a', '1', 'b', '2') AS MAP(VARCHAR, VARCHAR)));
2980+
MAP_SIZE(CAST(col AS MAP(VARCHAR, VARCHAR)));
29812981
INT;
29822982

29832983
# dialect: snowflake

0 commit comments

Comments
 (0)