Skip to content

GH-404: Clarify dictionary fallback encoding - #609

Open
d33bs wants to merge 1 commit into
apache:masterfrom
d33bs:dict-spec-clarity
Open

GH-404: Clarify dictionary fallback encoding#609
d33bs wants to merge 1 commit into
apache:masterfrom
d33bs:dict-spec-clarity

Conversation

@d33bs

@d33bs d33bs commented Aug 22, 2026

Copy link
Copy Markdown

Rationale for this change

The dictionary encoding docs currently say that writers fall back to PLAIN encoding when a dictionary gets too large.

That is too narrow. Writers can stop using dictionary encoding and write later data pages with another valid encoding. The actual encoding is already stored in each data page header, so readers should use that field instead of assuming that fallback pages are PLAIN.

What changes are included in this PR?

This PR updates Encodings.md to clarify that dictionary fallback encoding is chosen by the writer and recorded in the data page header.

It also clarifies that the documented dictionary data page layout applies only to dictionary-encoded data pages.

Do these changes have PoC implementations?

I feel no PoC implementation is needed, but please let me know if you think otherwise. This is a documentation clarification for behavior that the format already supports.

Closes #404

The dictionary encoding docs currently say that writers fall back to PLAIN encoding when a dictionary gets too large.

That is not always true. A writer can stop using dictionary encoding and write later data pages with another valid encoding. The actual encoding is already stored in each data page header, so readers should use that field instead of assuming the fallback is PLAIN.

Update the wording to describe that behavior, and clarify that the dictionary data page layout only applies to dictionary-encoded pages.
@d33bs
d33bs marked this pull request as ready for review August 22, 2026 19:18
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.

[Format] Encoding spec incorrect for dictionary fallback

1 participant