@@ -148,18 +148,17 @@ SELECT MAKE_MAP([1,2], ['a', 'b'], [3,4], ['b']);
148148{[1, 2]: [a, b], [3, 4]: [b]}
149149
150150query ?
151- SELECT MAKE_MAP('POST', 41, 'HEAD', 'ab' , 'PATCH', 30);
151+ SELECT MAKE_MAP('POST', 41, 'HEAD', 53 , 'PATCH', 30);
152152----
153- {POST: 41, HEAD: ab, PATCH: 30}
153+ {POST: 41, HEAD: 53, PATCH: 30}
154+
155+ query error DataFusion error: Arrow error: Cast error: Cannot cast string 'ab' to value of Int64 type
156+ SELECT MAKE_MAP('POST', 41, 'HEAD', 'ab', 'PATCH', 30);
154157
158+ # Map keys can not be NULL
155159query error
156160SELECT MAKE_MAP('POST', 41, 'HEAD', 33, null, 30);
157161
158- query ?
159- SELECT MAKE_MAP('POST', 41, 'HEAD', 'ab', 'PATCH', 30);
160- ----
161- {POST: 41, HEAD: ab, PATCH: 30}
162-
163162query ?
164163SELECT MAKE_MAP()
165164----
@@ -517,9 +516,12 @@ query error
517516SELECT MAP {'a': MAP {1:'a', 2:'b', 3:'c'}, 'b': MAP {2:'c', 4:'d'} }[NULL];
518517
519518query ?
520- SELECT MAP { 'a': 1, 2 : 3 };
519+ SELECT MAP { 'a': 1, 'b' : 3 };
521520----
522- {a: 1, 2: 3}
521+ {a: 1, b: 3}
522+
523+ query error DataFusion error: Arrow error: Cast error: Cannot cast string 'a' to value of Int64 type
524+ SELECT MAP { 'a': 1, 2: 3 };
523525
524526# TODO(https://github.com/apache/datafusion/issues/11785): fix accessing map with non-string key
525527# query ?
@@ -610,9 +612,12 @@ select map_extract(column1, 1), map_extract(column1, 5), map_extract(column1, 7)
610612# Tests for map_keys
611613
612614query ?
613- SELECT map_keys(MAP { 'a': 1, 2 : 3 });
615+ SELECT map_keys(MAP { 'a': 1, 'b' : 3 });
614616----
615- [a, 2]
617+ [a, b]
618+
619+ query error DataFusion error: Arrow error: Cast error: Cannot cast string 'a' to value of Int64 type
620+ SELECT map_keys(MAP { 'a': 1, 2: 3 });
616621
617622query ?
618623SELECT map_keys(MAP {'a':1, 'b':2, 'c':3 }) FROM t;
@@ -657,8 +662,11 @@ SELECT map_keys(column1) from map_array_table_1;
657662
658663# Tests for map_values
659664
660- query ?
665+ query error DataFusion error: Arrow error: Cast error: Cannot cast string 'a' to value of Int64 type
661666SELECT map_values(MAP { 'a': 1, 2: 3 });
667+
668+ query ?
669+ SELECT map_values(MAP { 'a': 1, 'b': 3 });
662670----
663671[1, 3]
664672
0 commit comments