Commit 98d280f
authored
sql: render PostgreSQL array literals as ARRAY[...] in unparser (#21513)
## Which issue does this PR close?
- Closes #.
## Rationale for this change
PostgreSQL array literals should be rendered using `ARRAY[...]` syntax
when unparsing SQL. Without this, roundtripped PostgreSQL SQL can lose
the dialect-specific array form and emit a plain bracketed array literal
instead.
## What changes are included in this PR?
- Added a dialect hook to indicate whether array literals should render
as `ARRAY[...]`.
- Enabled that behavior for `PostgreSqlDialect`.
- Updated the SQL unparser to honor the dialect setting when rendering
array expressions.
- Adjusted the PostgreSQL roundtrip test to expect `ARRAY[1, 2, 3, 4,
5]`.
## Are these changes tested?
Yes. The PostgreSQL roundtrip test in plan_to_sql.rs covers the array
literal case and verifies the unparsed SQL now uses `ARRAY[...]`.
## Are there any user-facing changes?
Yes. PostgreSQL SQL generated by DataFusion will now emit array literals
in `ARRAY[...]` form instead of plain bracketed form.1 parent 29c5dd5 commit 98d280f
File tree
3 files changed
+80
-2
lines changed- datafusion/sql
- src/unparser
- tests/cases
3 files changed
+80
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
54 | 59 | | |
55 | 60 | | |
56 | 61 | | |
| |||
327 | 332 | | |
328 | 333 | | |
329 | 334 | | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
330 | 339 | | |
331 | 340 | | |
332 | 341 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
604 | 604 | | |
605 | 605 | | |
606 | 606 | | |
607 | | - | |
| 607 | + | |
608 | 608 | | |
609 | 609 | | |
610 | 610 | | |
| |||
615 | 615 | | |
616 | 616 | | |
617 | 617 | | |
618 | | - | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
619 | 622 | | |
620 | 623 | | |
621 | 624 | | |
| |||
3042 | 3045 | | |
3043 | 3046 | | |
3044 | 3047 | | |
| 3048 | + | |
| 3049 | + | |
| 3050 | + | |
| 3051 | + | |
| 3052 | + | |
| 3053 | + | |
| 3054 | + | |
| 3055 | + | |
| 3056 | + | |
| 3057 | + | |
| 3058 | + | |
| 3059 | + | |
| 3060 | + | |
| 3061 | + | |
| 3062 | + | |
| 3063 | + | |
| 3064 | + | |
| 3065 | + | |
| 3066 | + | |
| 3067 | + | |
| 3068 | + | |
| 3069 | + | |
| 3070 | + | |
| 3071 | + | |
| 3072 | + | |
| 3073 | + | |
| 3074 | + | |
| 3075 | + | |
| 3076 | + | |
| 3077 | + | |
| 3078 | + | |
| 3079 | + | |
| 3080 | + | |
| 3081 | + | |
| 3082 | + | |
| 3083 | + | |
| 3084 | + | |
| 3085 | + | |
| 3086 | + | |
| 3087 | + | |
| 3088 | + | |
| 3089 | + | |
| 3090 | + | |
| 3091 | + | |
| 3092 | + | |
| 3093 | + | |
| 3094 | + | |
| 3095 | + | |
| 3096 | + | |
| 3097 | + | |
| 3098 | + | |
| 3099 | + | |
| 3100 | + | |
| 3101 | + | |
| 3102 | + | |
3045 | 3103 | | |
3046 | 3104 | | |
3047 | 3105 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2750 | 2750 | | |
2751 | 2751 | | |
2752 | 2752 | | |
| 2753 | + | |
| 2754 | + | |
| 2755 | + | |
| 2756 | + | |
| 2757 | + | |
| 2758 | + | |
| 2759 | + | |
| 2760 | + | |
| 2761 | + | |
| 2762 | + | |
| 2763 | + | |
2753 | 2764 | | |
2754 | 2765 | | |
2755 | 2766 | | |
| |||
0 commit comments