Commit 69af7ae
committed
Fix null list of structs being read and written as an empty list
from_arrays() takes the offsets buffer alone, which cannot express a null
list, so rebuilding the array without a mask collapsed every null
list<struct<...>> into an empty one. On write that is unrecoverable: the
Parquet file itself then holds the empty list.
The rebuild still works around apache/arrow#38809 and stays; only the mask
is added. That restores the assertion test_null_list_and_map has carried
commented out since #252.
Closes #38331 parent 7539661 commit 69af7ae
3 files changed
Lines changed: 42 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2075 | 2075 | | |
2076 | 2076 | | |
2077 | 2077 | | |
2078 | | - | |
| 2078 | + | |
| 2079 | + | |
| 2080 | + | |
| 2081 | + | |
2079 | 2082 | | |
2080 | 2083 | | |
2081 | 2084 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
994 | 994 | | |
995 | 995 | | |
996 | 996 | | |
997 | | - | |
998 | | - | |
999 | | - | |
1000 | | - | |
| 997 | + | |
1001 | 998 | | |
1002 | 999 | | |
1003 | 1000 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3210 | 3210 | | |
3211 | 3211 | | |
3212 | 3212 | | |
| 3213 | + | |
| 3214 | + | |
| 3215 | + | |
| 3216 | + | |
| 3217 | + | |
| 3218 | + | |
| 3219 | + | |
| 3220 | + | |
| 3221 | + | |
| 3222 | + | |
| 3223 | + | |
| 3224 | + | |
| 3225 | + | |
| 3226 | + | |
| 3227 | + | |
| 3228 | + | |
| 3229 | + | |
| 3230 | + | |
| 3231 | + | |
| 3232 | + | |
| 3233 | + | |
| 3234 | + | |
| 3235 | + | |
| 3236 | + | |
| 3237 | + | |
| 3238 | + | |
| 3239 | + | |
| 3240 | + | |
| 3241 | + | |
| 3242 | + | |
| 3243 | + | |
| 3244 | + | |
| 3245 | + | |
| 3246 | + | |
| 3247 | + | |
| 3248 | + | |
| 3249 | + | |
3213 | 3250 | | |
3214 | 3251 | | |
3215 | 3252 | | |
| |||
0 commit comments