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]
