12 lines
376 B
Plaintext
12 lines
376 B
Plaintext
create or replace function map_merge_patch(a,b) as (
|
|
with keys_t as (
|
|
select (map_keys(a) + map_keys(b)).list_distinct() as keys
|
|
),
|
|
values_t as (
|
|
select list_transform(keys, key -> coalesce(b[key][1],a[key][1])) as values
|
|
from keys_t)
|
|
select MAP(keys, values) from keys_t, values_t
|
|
);
|
|
|
|
select map_merge_patch( MAP([1,2],[1,2]), MAP([1,3],[10,30])) as add;
|