Skip to content

[branch-56] feat: support ALP parquet encoding in writer options (backport #27036) - #27093

Merged
alamb merged 1 commit into
apache:branch-56from
alamb:backport-27036-branch-56
Nov 6, 2026
Merged

alamb merged 1 commit into
apache:branch-56from
alamb:backport-27036-branch-56

Conversation

@alamb

@alamb alamb commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Add ALP to DataFusion's parquet encoding configuration, conversion,
documentation, protobuf round-trip tests, and SQL writer coverage.

> [!IMPORTANT]
>
> **Fork CI setup:** For pull requests from a fork to `main`, enable
workflows in your fork's **Actions** tab before you push.
> See the [fork CI setup
guide](https://datafusion.apache.org/contributor-guide/#pull-requests-from-forks).

## Which issue does this PR close?

<!--
We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax. For example
`Closes apache#123` indicates that this PR will close issue apache#123.
-->

- Closes apache#26936

## Rationale for this change
DataFusion could read ALP-encoded Parquet files but did not allow users
to select ALP when writing files.

## What changes are included in this PR?

- Add `alp` to `DFParquetEncoding`
- Support ALP through `SET datafusion.execution.parquet.encoding`
- Support ALP through `format.encoding`
- Update configuration and SQL documentation
- Add parser, conversion, protobuf, and SQLLogicTest coverage
- Verify writing and reading ALP-encoded `DOUBLE` columns

## What is the testing strategy for this PR?

<!--
We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

Briefly describe how this PR is tested, and point to the specific tests
you added. For example: 'This new feature is covered by the
`sqllogictest` cases added in `foo.slt`'.

If this PR does not add tests, explain why. For example, if the change
is already covered by existing tests, please mention it.

You should also check the `codecov` bot reply on this PR to confirm the
changed code is exercised.
-->

## Are there any user-facing changes?

<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.

If there are any breaking changes to public APIs, please add the `api
change` label.
-->

(cherry picked from commit 2f4d087)
@github-actions github-actions Bot added documentation Improvements or additions to documentation sqllogictest SQL Logic Tests (.slt) common Related to common crate proto Related to proto crate labels Nov 4, 2026
@alamb alamb mentioned this pull request Nov 4, 2026
28 of 53 tasks
@alamb

alamb commented Nov 4, 2026

Copy link
Copy Markdown
Contributor Author

I would like to include this plumbing so we can support the new ALP encoding in DataFusion

@alamb
alamb marked this pull request as ready for review November 4, 2026 13:40
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.25%. Comparing base (1635ed9) to head (9b7d607).

Flag Coverage Δ
all-tests 83.25% <100.00%> (-0.01%) ⬇️
sqllogictests 60.68% <100.00%> (-0.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

@@              Coverage Diff              @@
##           branch-56   #27093      +/-   ##
=============================================
- Coverage      83.25%   83.25%   -0.01%     
=============================================
  Files           1169     1169              
  Lines         474294   474302       +8     
  Branches      474294   474302       +8     
=============================================
  Hits          394887   394887              
- Misses         55485    55491       +6     
- Partials       23922    23924       +2     
Files with missing lines Coverage Δ
datafusion/common/src/config.rs 85.05% <ø> (ø)
datafusion/common/src/parquet_config.rs 93.65% <100.00%> (+0.05%) ⬆️
datafusion/proto-common/src/from_proto/mod.rs 77.79% <100.00%> (+0.06%) ⬆️

... and 8 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@alamb

alamb commented Nov 6, 2026

Copy link
Copy Markdown
Contributor Author

Thank you @xudong963

@alamb
alamb merged commit cc631dc into apache:branch-56 Nov 6, 2026
41 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

common Related to common crate documentation Improvements or additions to documentation proto Related to proto crate sqllogictest SQL Logic Tests (.slt)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants