[
https://issues.apache.org/jira/browse/FLINK-32261?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17741199#comment-17741199
]
Sergey Nuyanzin commented on FLINK-32261:
-----------------------------------------
Thanks for the question.
Let's not look at spark only
Based on some research and besides Spark
there is {{map_union}} supporting arbitrary number of args for MaxCompute[1]
{{map_concat}} supporting arbitrary number of args for Trino [2], Presto[3]
{{map_union}} only for 2 args is supported by ksqlDB[4]
Based on this yep, probably it would make sense to support varargs since there
are several vendors already supporting it.
WDYT [~hanyuzheng]?
[1] https://www.alibabacloud.com/help/en/maxcompute/user-guide/map-union
[2] https://trino.io/docs/current/functions/map.html
[3] https://prestodb.io/docs/current/functions/aggregate.html
[4]
https://docs.ksqldb.io/en/latest/developer-guide/ksqldb-reference/scalar-functions/#map_union
> Add MAP_UNION support in SQL & Table API
> ----------------------------------------
>
> Key: FLINK-32261
> URL: https://issues.apache.org/jira/browse/FLINK-32261
> Project: Flink
> Issue Type: Improvement
> Components: Table SQL / Planner
> Affects Versions: 1.18.0
> Reporter: Bonnie Varghese
> Assignee: Hanyu Zheng
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.18.0
>
>
> Description:
> This is an implementation of MAP_UNION
> Returns a map created by merging two maps, 'map1' and 'map2'. This two maps
> should have same data structure. If there are overlapping keys, the value
> from 'map2' will overwrite the value from 'map1'. If any of maps are null,
> return null.
> Syntax:
> {code:java}
> MAP_UNION(map1, map2){code}
> Arguments:
> * map1:The first map to be merged.
> * map2:The second map to be merged.
> Returns: A new map that contains the combined key-value pairs from {{map1}}
> and map{{{}2{}}}. If there are any overlapping keys, the value from {{map2}}
> will overwrite the value from {{{}map1{}}}.
> Examples:
> Merging maps with unique keys:
>
> {code:java}
> map1 = ['a': 1, 'b': 2] map2 = ['c': 3, 'd': 4]
> map_union[map1, map2]
> Output: ['a': 1, 'b': 2, 'c': 3, 'd': 4]{code}
> Merging maps with overlapping keys:
>
>
> {code:java}
> map1 = ['a': 1, 'b': 2] map2 = ['b': 3, 'c': 4]
> map_union[map1, map2]
> Output: ['a': 1, 'b': 3, 'c': 4]{code}
> See also:
> prestodb: [https://prestodb.io/docs/current/functions/aggregate.html]
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)