Commit e3fee4d
authored
feat(snowflake): transpile DuckDB list() and list_distinct() [CLAUDE] (#7551)
Map DuckDB's list(col) to Snowflake's ARRAY_AGG(col) via a rename_func
entry in the Snowflake generator TRANSFORMS.
Parse DuckDB's list_distinct(col) into exp.ArrayDistinct by adding the
missing FUNCTIONS entry in the DuckDB parser. On the Snowflake side, add
an arraydistinct_sql method that accounts for NULL semantics: DuckDB's
LIST_DISTINCT strips NULLs while Snowflake's ARRAY_DISTINCT preserves
them, so the generated SQL wraps with ARRAY_COMPACT when the source
doesn't preserve NULLs (check_null=False).1 parent 63f8dc6 commit e3fee4d
4 files changed
Lines changed: 35 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
511 | 511 | | |
512 | 512 | | |
513 | 513 | | |
| 514 | + | |
514 | 515 | | |
515 | 516 | | |
516 | 517 | | |
| |||
1048 | 1049 | | |
1049 | 1050 | | |
1050 | 1051 | | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
1051 | 1057 | | |
1052 | 1058 | | |
1053 | 1059 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
133 | 133 | | |
134 | 134 | | |
135 | 135 | | |
| 136 | + | |
136 | 137 | | |
137 | 138 | | |
138 | 139 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
690 | 690 | | |
691 | 691 | | |
692 | 692 | | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
693 | 707 | | |
694 | 708 | | |
695 | 709 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
675 | 675 | | |
676 | 676 | | |
677 | 677 | | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
678 | 692 | | |
679 | 693 | | |
680 | 694 | | |
| |||
0 commit comments