Repository navigation
Aggregate nested columns under nullable parents with a demand mask - #10961
robert3005 wants to merge 1 commit into
Conversation
113bdd2 to
47befaf
Compare
Merging this PR will degrade performance by 10.27%2 warnings
Warning Please fix the performance issues or acknowledge them on CodSpeed. Performance Changes
Tip Investigate this regression by commenting Comparing Footnotes
|
a47de79 to
8141ef0
Compare
Struct fields are stored unmasked, so aggregates over them saw values under null struct rows. Each chunk of a sequential write stream now carries a demand mask, false in the rows an ancestor nulls out, and DynAccumulator gains accumulate_demanded to aggregate the logical column without masking first. The struct writer intersects the demand with its validity for each field, the list writer drops the elements of null and undemanded lists so every element written is demanded, and re-chunking writers carry the mask with the rows. Zone maps and file statistics are now written for children of nullable structs, and the fuzzer generates nullable structs. Signed-off-by: Claude <noreply@anthropic.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X1HnweRGxeDWgQwXXM6f5s
8141ef0 to
55180f2
Compare
Struct fields are stored unmasked, so aggregates over them saw values under null struct rows. Each chunk of a sequential write stream now carries a demand mask, false in the rows an ancestor nulls out, and DynAccumulator gains accumulate_demanded to aggregate the logical column without masking first.
The struct writer intersects the demand with its validity for each field, the list writer drops the elements of null and undemanded lists so every element written is demanded, and re-chunking writers carry the mask with the rows. Zone maps and file statistics are now written for children of nullable structs, and the fuzzer generates nullable structs.
fixes #9205