Repository navigation
Commit b154603
authored
fix(transform): correct decimal and binary truncate literals (#3243)
* fix(transform): correct decimal and binary truncate literals
The Arrow array path already preserves decimal precision and scale and
supports binary truncation. The literal path instead reset decimal scale
to zero and rejected binary values. For example, truncate[50](10.65)
returned 1050 instead of 10.50.
Align literal truncation with the Arrow array path: preserve the source
decimal precision and scale, and return the first W bytes of binary
values, or the entire value when shorter. Decimal projection boundary
adjustments must also preserve precision and scale to keep their values
correct before truncation.
* fix(transform): address truncate literal review feedback1 parent b55cda1 commit b154603
4 files changed
Lines changed: 251 additions & 43 deletions
File tree
- crates/iceberg/src
- expr/visitors
- spec
- values
- transform
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2761 | 2761 | | |
2762 | 2762 | | |
2763 | 2763 | | |
2764 | | - | |
| 2764 | + | |
2765 | 2765 | | |
2766 | 2766 | | |
2767 | 2767 | | |
| |||
2780 | 2780 | | |
2781 | 2781 | | |
2782 | 2782 | | |
2783 | | - | |
| 2783 | + | |
2784 | 2784 | | |
2785 | 2785 | | |
2786 | 2786 | | |
| |||
2799 | 2799 | | |
2800 | 2800 | | |
2801 | 2801 | | |
2802 | | - | |
| 2802 | + | |
2803 | 2803 | | |
2804 | 2804 | | |
2805 | 2805 | | |
| |||
2818 | 2818 | | |
2819 | 2819 | | |
2820 | 2820 | | |
2821 | | - | |
| 2821 | + | |
2822 | 2822 | | |
2823 | 2823 | | |
2824 | 2824 | | |
| |||
2837 | 2837 | | |
2838 | 2838 | | |
2839 | 2839 | | |
2840 | | - | |
| 2840 | + | |
2841 | 2841 | | |
2842 | 2842 | | |
2843 | 2843 | | |
| |||
2880 | 2880 | | |
2881 | 2881 | | |
2882 | 2882 | | |
2883 | | - | |
| 2883 | + | |
2884 | 2884 | | |
2885 | 2885 | | |
2886 | 2886 | | |
| |||
2984 | 2984 | | |
2985 | 2985 | | |
2986 | 2986 | | |
2987 | | - | |
| 2987 | + | |
2988 | 2988 | | |
2989 | 2989 | | |
2990 | 2990 | | |
| |||
3003 | 3003 | | |
3004 | 3004 | | |
3005 | 3005 | | |
3006 | | - | |
| 3006 | + | |
3007 | 3007 | | |
3008 | 3008 | | |
3009 | 3009 | | |
| |||
3022 | 3022 | | |
3023 | 3023 | | |
3024 | 3024 | | |
3025 | | - | |
| 3025 | + | |
3026 | 3026 | | |
3027 | 3027 | | |
3028 | 3028 | | |
| |||
3041 | 3041 | | |
3042 | 3042 | | |
3043 | 3043 | | |
3044 | | - | |
| 3044 | + | |
3045 | 3045 | | |
3046 | 3046 | | |
3047 | 3047 | | |
| |||
3060 | 3060 | | |
3061 | 3061 | | |
3062 | 3062 | | |
3063 | | - | |
| 3063 | + | |
3064 | 3064 | | |
3065 | 3065 | | |
3066 | 3066 | | |
| |||
3103 | 3103 | | |
3104 | 3104 | | |
3105 | 3105 | | |
3106 | | - | |
| 3106 | + | |
3107 | 3107 | | |
3108 | 3108 | | |
3109 | 3109 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
29 | 28 | | |
30 | 29 | | |
31 | 30 | | |
| |||
762 | 761 | | |
763 | 762 | | |
764 | 763 | | |
765 | | - | |
766 | | - | |
| 764 | + | |
| 765 | + | |
767 | 766 | | |
768 | 767 | | |
769 | 768 | | |
| |||
783 | 782 | | |
784 | 783 | | |
785 | 784 | | |
786 | | - | |
787 | | - | |
| 785 | + | |
| 786 | + | |
788 | 787 | | |
789 | 788 | | |
790 | 789 | | |
| |||
934 | 933 | | |
935 | 934 | | |
936 | 935 | | |
937 | | - | |
| 936 | + | |
938 | 937 | | |
939 | 938 | | |
940 | 939 | | |
| |||
972 | 971 | | |
973 | 972 | | |
974 | 973 | | |
975 | | - | |
| 974 | + | |
976 | 975 | | |
977 | 976 | | |
978 | 977 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1099 | 1099 | | |
1100 | 1100 | | |
1101 | 1101 | | |
| 1102 | + | |
| 1103 | + | |
| 1104 | + | |
| 1105 | + | |
| 1106 | + | |
| 1107 | + | |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
| 1113 | + | |
| 1114 | + | |
| 1115 | + | |
| 1116 | + | |
| 1117 | + | |
1102 | 1118 | | |
1103 | 1119 | | |
1104 | 1120 | | |
| |||
0 commit comments