hcrosse opened a new pull request, #1539:
URL: https://github.com/apache/arrow-go/pull/1539

   ### Rationale for this change
   
   Writing boolean columns with `RLE` repeats earlier values on later pages and 
inflates page counts.
   
   ### What changes are included in this PR?
   
   `RleBooleanEncoder.FlushValues` clears `bufferedValues` after finishing the 
page buffer, matching Arrow C++. Reslicing retains the backing array for reuse 
and resets the size estimate for the next page.
   
   `flushBooleanEncoder` drops its manual reset, which is now redundant and 
would hide a regression in the benchmark.
   
   ### Are these changes tested?
   
   `TestRleBooleanEncoderFlushStartsNewPage` flushes two pages and checks that 
the second decodes to `[false true]`. It fails on main with `[true true]` and 
passes with this change. The issue's reproduction reads back the original 
values with this change, including through pyarrow.
   
   With Go 1.26.10, vet, the encoding package race tests, full `./parquet/...` 
tests with pinned `arrow-testing` and `parquet-testing` checked out, 
`golangci-lint` on the `parquet` module and the Release Audit Tool passed.
   
   ### Are there any user-facing changes?
   
   Yes. Boolean columns written with `RLE` retain the correct values across 
pages. Files written before this change still contain the repeated values. 
There is no API change.
   
   Closes https://github.com/apache/arrow-go/issues/1534.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to