@@ -607,10 +607,11 @@ def _build_upsert_from_table(
607
607
matched = True ,
608
608
then = sge .Update (
609
609
expressions = [
610
- sg .column (col , quoted = quoted ).eq (
611
- sg .column (col , source_alias , quoted = quoted )
610
+ sg .column (col , table = target_alias ).eq (
611
+ sg .column (col , table = source_alias )
612
612
)
613
613
for col in columns
614
+ if col != on
614
615
]
615
616
),
616
617
),
@@ -620,7 +621,7 @@ def _build_upsert_from_table(
620
621
this = sge .Tuple (expressions = columns ),
621
622
expression = sge .Tuple (
622
623
expressions = [
623
- sg .column (col , source_alias , quoted = quoted )
624
+ sg .column (col , table = source_alias )
624
625
for col in columns
625
626
]
626
627
),
@@ -629,10 +630,10 @@ def _build_upsert_from_table(
629
630
into = sg .table (target , db = db , catalog = catalog , quoted = quoted ).as_ (
630
631
target_alias
631
632
),
632
- using = f"({ self .compile (source )} ) AS { source_alias } " ,
633
- on = sg .column (on , table = target_alias , quoted = quoted ).eq (
634
- sg .column (on , table = source_alias , quoted = quoted )
635
- ),
633
+ using = f"({ self .compile (source )} ) { source_alias } " ,
634
+ on = sge . Paren ( this = sg .column (on , table = target_alias ).eq (
635
+ sg .column (on , table = source_alias )
636
+ )) ,
636
637
dialect = compiler .dialect ,
637
638
)
638
639
return query
0 commit comments