Plan the next two work streams - #119
Merged
Merged
Conversation
…ding Written before any code, per the plan-before-code discipline. PARQUET_FOLLOWONS_PLAN.md sequences the three remaining Parquet roadmap items smallest first: INT32/INT64-backed DECIMAL reads, a recursive directory walk, and Hive-style partition pruning, which depends on the walk. Two decisions are made explicitly rather than by default. The walk will not descend into symlinked directories, because a visited-inode set is more machinery than the rule is worth and "we do not follow directory symlinks" is something a user can reason about. Partition columns will be declared as a table option rather than inferred from the tree, for the same reason the column definition list is required rather than inferred: a wrong guess silently changes which rows a query returns. CASCADE_ENCODING_PLAN.md disagrees with the roadmap's "low to medium effort" and says why. The roadmap item bundles two independent ideas. Cascading (encode one scheme's output with another) is where the size win is, and it changes the on-disk format: a chunk header has to express a chain, which means new codes or a chain descriptor, a corrupt-file guard on the chain length, and a decision about old builds reading new files. Sampling is a write-throughput optimization whose value depends on what selection costs today, which has never been measured. So step 1 is to measure it on the 6M-row bench and let the number decide whether the sampling half gets built at all. Finding out it is not worth it is a legitimate and much cheaper outcome than building it first. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Jul 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plans written before any code, for the two streams remaining after Phase G.
PARQUET_FOLLOWONS_PLAN.mdsequences the three remaining Parquet roadmap items smallest first: INT32/INT64-backed DECIMAL reads, a recursive directory walk, then Hive-style partition pruning which depends on the walk. Two decisions are made explicitly rather than by default:CASCADE_ENCODING_PLAN.mddisagrees with the roadmap's "low to medium effort" and says why. The item bundles two independent ideas:ColumnarEncodeChunkcurrently runs every applicable encoder in full and keeps the smallest.So step 1 is to measure selection cost on the 6M-row bench and let the number decide whether the sampling half is built at all. Finding out it is not worth it is a legitimate outcome, and much cheaper to reach now than after building it.
Design docs only, no code, so no gate.
🤖 Generated with Claude Code