You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ON "__MERGE_TARGET__"."ID" = "__MERGE_SOURCE__"."ID"
1038
+
WHEN MATCHED AND "__MERGE_SOURCE__"."ID" = 1 THEN UPDATE SET "__MERGE_TARGET__"."val" = "__MERGE_SOURCE__"."val", "__MERGE_TARGET__"."ts" = COALESCE("__MERGE_SOURCE__"."ts", "__MERGE_TARGET__"."ts"),
1039
+
WHEN MATCHED THEN UPDATE SET "__MERGE_TARGET__"."val" = "__MERGE_SOURCE__"."val", "__MERGE_TARGET__"."ts" = COALESCE("__MERGE_SOURCE__"."ts", "__MERGE_TARGET__"."ts")
when_matched WHEN MATCHED THEN UPDATE SET __MERGE_TARGET__.b = COALESCE(__MERGE_SOURCE__.b, __MERGE_TARGET__.b),
5475
+
when_matched ARRAY(WHEN MATCHED THEN UPDATE SET __MERGE_TARGET__.b = COALESCE(__MERGE_SOURCE__.b, __MERGE_TARGET__.b)),
5476
+
batch_concurrency 1,
5477
+
forward_only FALSE,
5478
+
disable_restatement FALSE,
5479
+
on_destructive_change 'ERROR'
5480
+
)"""
5481
+
)
5482
+
5483
+
assert (
5484
+
load_sql_based_model(
5485
+
d.parse(
5486
+
"""
5487
+
MODEL (
5488
+
name db.table,
5489
+
kind INCREMENTAL_BY_UNIQUE_KEY(
5490
+
unique_key a,
5491
+
when_matched WHEN MATCHED AND source.x = 1 THEN UPDATE SET target.b = COALESCE(source.b, target.b),
5492
+
WHEN MATCHED THEN UPDATE SET target.b = COALESCE(source.b, target.b)
5493
+
),
5494
+
);
5495
+
SELECT a, b
5496
+
"""
5497
+
)
5498
+
)
5499
+
.kind.to_expression()
5500
+
.sql()
5501
+
=="""INCREMENTAL_BY_UNIQUE_KEY (
5502
+
unique_key ("a"),
5503
+
when_matched ARRAY(WHEN MATCHED AND __MERGE_SOURCE__.x = 1 THEN UPDATE SET __MERGE_TARGET__.b = COALESCE(__MERGE_SOURCE__.b, __MERGE_TARGET__.b), WHEN MATCHED THEN UPDATE SET __MERGE_TARGET__.b = COALESCE(__MERGE_SOURCE__.b, __MERGE_TARGET__.b)),
0 commit comments