Skip to content

[PROTOCOL] Add delta.parquet.format.version property - #6539

Merged
scottsand-db merged 1 commit into
delta-io:masterfrom
sanujbasu:protocol-parquet-format-version
Apr 10, 2026
Merged

[PROTOCOL] Add delta.parquet.format.version property#6539
scottsand-db merged 1 commit into
delta-io:masterfrom
sanujbasu:protocol-parquet-format-version

Conversation

@sanujbasu

@sanujbasu sanujbasu commented Apr 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

1/ Adds delta.parquet.format.version to the Table Properties section of the protocol spec
2/ Documents valid values (1.0.0 for DataPageV1, 2.x.x for DataPageV2), writer validation behavior, reader expectations, and cross-engine interop guidance

Details

1/ Writers: use this property to select the Parquet data page format. Valid values are 1.0.0 (DataPageV1) and any 2.x.x (DataPageV2). Recommended values are 1.0.0 and 2.12.0. Writers SHOULD default to 1.0.0 when absent.
2/ Readers: do not need to consult this property. Parquet pages are self-describing via the PageType field in each page header. Readers SHOULD support both DataPageV1 and DataPageV2.
3/ Interop: tables accessed by engines beyond the Delta Lake connectors SHOULD use 1.0.0, as DataPageV2 support varies across the broader Parquet ecosystem.

Test plan

  • Protocol-only change — no code changes, no tests needed
  • Verify markdown table renders correctly

@sanujbasu
sanujbasu requested a review from tdas as a code owner April 10, 2026 08:30
Comment thread PROTOCOL.md
@sanujbasu
sanujbasu force-pushed the protocol-parquet-format-version branch from 8fd0797 to a07722f Compare April 10, 2026 15:35
1/ Add the description of a property to the protocol.
2/ Add Table Properties entry to table of contents
@sanujbasu
sanujbasu force-pushed the protocol-parquet-format-version branch from 0350416 to e4c1fa4 Compare April 10, 2026 15:51
@scottsand-db
scottsand-db merged commit b8e8de4 into delta-io:master Apr 10, 2026
1 check passed
sanujbasu added a commit to sanujbasu/delta-kernel-rs that referenced this pull request Apr 10, 2026
Add support for the delta.parquet.format.version table property so
connectors can read it from TableProperties to configure their Parquet
writers.

Changes:
- Add PARQUET_FORMAT_VERSION constant and parquet_format_version field
  to TableProperties with parsing in deserialize.rs
- Add to ALLOWED_DELTA_PROPERTIES for CREATE TABLE support
- Add tests for property parsing and CREATE TABLE validation

Protocol spec: delta-io/delta#6539
github-merge-queue Bot pushed a commit to delta-io/delta-kernel-rs that referenced this pull request Apr 13, 2026
## What changes are proposed in this pull request?

Add support for the delta.parquet.format.version table property so
connectors can read it from TableProperties to configure their Parquet
writers.

1. Add PARQUET_FORMAT_VERSION constant and parquet_format_version:
Option<String> field to TableProperties with parsing in deserialize.rs
2. Add to ALLOWED_DELTA_PROPERTIES for CREATE TABLE support
3. Add tests for property parsing and CREATE TABLE validation

Protocol spec: delta-io/delta#6539

## How was this change tested?

1. test_property_key_constants -- verifies the constant string value
2. test_parse_table_properties -- verifies parsing into
TableProperties.parquet_format_version
3. test_parquet_format_version_accepted -- verifies the property passes
CREATE TABLE validation and is preserved without triggering any feature
flags
4. cargo clippy -p delta_kernel --all-features -- -D warnings passes
clean

Co-authored-by: Sanuj Basu <sanujbasu@users.noreply.github.com>
huashi-st pushed a commit to huashi-st/delta that referenced this pull request Apr 24, 2026
## Summary
1/ Adds delta.parquet.format.version to the Table Properties section of
the protocol spec
2/ Documents valid values (`1.0.0` for DataPageV1, `2.x.x` for
DataPageV2), writer validation behavior, reader expectations, and
cross-engine interop guidance

## Details
1/ Writers: use this property to select the Parquet data page format.
Valid values are `1.0.0` (DataPageV1) and any `2.x.x` (DataPageV2).
Recommended values are `1.0.0` and `2.12.0`. Writers SHOULD default to
`1.0.0` when absent.
2/ Readers: do not need to consult this property. Parquet pages are
self-describing via the `PageType` field in each page header. Readers
SHOULD support both DataPageV1 and DataPageV2.
3/ Interop: tables accessed by engines beyond the Delta Lake connectors
SHOULD use `1.0.0`, as DataPageV2 support varies across the broader
Parquet ecosystem.

## Test plan
- [x] Protocol-only change — no code changes, no tests needed
- [x] Verify markdown table renders correctly

Co-authored-by: Sanuj Basu <sanuj.basu@your.hostname.com>
@felipepessoto

Copy link
Copy Markdown
Contributor

@sanujbasu, @scottsand-db, @tdas, @emkornfield

I noticed that in the version property description we explicitly say new data files while for the codec it says Parquet data and checkpoint files

For the checkpoint, are we intentionally ignoring the version property? Or we need to update the spec and say checkpoints should also respect the version property?

@scottsand-db

Copy link
Copy Markdown
Collaborator

Or we need to update the spec and say checkpoints should also respect the version property?

This

@felipepessoto

felipepessoto commented May 15, 2026

Copy link
Copy Markdown
Contributor

Here is the PR to update protocol: #6797

After that I'll check the required code changes

tdas pushed a commit that referenced this pull request May 22, 2026
…e checkpoint files (#6797)

#### Which Delta project/connector is this regarding?
- [ ] Spark
- [ ] Standalone
- [ ] Flink
- [ ] Kernel
- [X] Other (Protocol)

## Description
Fix this comment:
#6539 (comment)

## How was this patch tested?
N/A

## Does this PR introduce _any_ user-facing changes?
Yes, protocol clarity

Signed-off-by: Felipe Fujiy Pessoto <fepessot@microsoft.com>
Co-authored-by: Scott Haines <newfrontcreative@gmail.com>
Co-authored-by: Timothy Wang <timothy.art@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants