Commit 930ff33
authored
fix(snowflake): transpile DuckDB JSON_ARRAY to ARRAY_CONSTRUCT [CLAUDE] (#7497)
* fix(snowflake): transpile DuckDB JSON_ARRAY to ARRAY_CONSTRUCT [CLAUDE]
DuckDB's JSON_ARRAY function has no Snowflake equivalent — Snowflake
uses ARRAY_CONSTRUCT instead (JSON_ARRAY is not a recognized function).
- Add JSON_ARRAY → exp.JSONArray mapping in DuckDB parser FUNCTIONS
- Add exp.JSONArray → ARRAY_CONSTRUCT transform in Snowflake generator
Ref: https://docs.snowflake.com/en/sql-reference/functions/array_construct
* fix(snowflake): wrap JSON_ARRAY transpilation with TO_JSON for correct return type [CLAUDE]
DuckDB JSON_ARRAY returns a JSON string, not a native array. ARRAY_CONSTRUCT
alone returns a native array which breaks downstream JSON access operators.
* fix(snowflake): use TO_VARIANT instead of TO_JSON when transpiling JSON_ARRAY [CLAUDE]
DuckDB JSON_ARRAY returns type JSON, which we map to Snowflake VARIANT
(see #7496). TO_JSON returns VARCHAR, breaking downstream JSON access
operators like JSON_EXTRACT_PATH_TEXT. TO_VARIANT preserves the
semi-structured semantics.1 parent c1f929f commit 930ff33
3 files changed
Lines changed: 32 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
497 | 497 | | |
498 | 498 | | |
499 | 499 | | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
500 | 503 | | |
501 | 504 | | |
502 | 505 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
| 133 | + | |
133 | 134 | | |
134 | 135 | | |
135 | 136 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
549 | 549 | | |
550 | 550 | | |
551 | 551 | | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
552 | 580 | | |
553 | 581 | | |
554 | 582 | | |
| |||
0 commit comments