Uh oh!
There was an error while loading. Please reload this page.
[core] Add an optional positional long[] of per-column maximum sequence numbers to DataFileMeta - #9313
Merged
JingsongLi merged 4 commits intoAug 20, 2026
Conversation
leaves12138
marked this pull request as ready for review
August 20, 2026 07:09
leaves12138
marked this pull request as draft
August 20, 2026 07:21
leaves12138force-pushed
the
codex/data-file-column-sequences
branch
from
August 20, 2026 08:05
65a2d9d to
93a4ae7Compareleaves12138force-pushed
the
codex/data-file-column-sequences
branch
from
August 20, 2026 08:29
93a4ae7 to
91c674bCompareleaves12138
marked this pull request as ready for review
August 20, 2026 08:37
| String EXTERNAL_PATH = "_EXTERNAL_PATH"; | ||
| String FIRST_ROW_ID = "_FIRST_ROW_ID"; | ||
| String WRITE_COLS = "_WRITE_COLS"; | ||
| String COLUMN_MAX_SEQUENCE_NUMBERS = "_COLUMN_MAX_SEQUENCE_NUMBERS"; |
Uh oh!
There was an error while loading. Please reload this page.
| private static final long serialVersionUID = 7L; | ||
| private static final long MAGIC = -2394839472490812314L; | ||
| private static final int VERSION = 8; | ||
| private static final int VERSION = 9; |
Contributor
There was a problem hiding this comment.
@JingsongLi@leaves12138 can you explain why we need this version number ? Can we remove this version number and the following version checks? It's a runtime query task's object ser/de-ser . Maybe we could use protobuf to do this work and keep schema evolution compatiable. It's urgly to see this version change.
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 freeto 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.
What
long[]of per-column maximum sequence numbers toDataFileMeta.writeColsto resolve array positions; full-column files use the file schema field order and row-tracking system fields are excluded.global-index.column-update-action=IGNORE, and storenullwhen every column already equals the file-level maximum.Why
Data-evolution compaction rewrites a full normal data file, so the file-level
maxSequenceNumbercannot identify which physical columns changed. Snapshot history is not a reliable source for this information because snapshots may expire.Persisting column-level sequence watermarks in
DataFileMetaprovides durable metadata for consumers which need to distinguish column updates across repeated compactions.When all physical columns equal the file-level maximum,
nullis semantically equivalent because readers fall back to that maximum. Tables not configured with update actionIGNOREdo not persist the array.Compatibility
DataFileMetaand nestedManifestEntrylayouts.CommitMessage,DataSplit,IncrementalSplit, andChainSplit.SplitSerializerremains at v1; its existing v1 golden files are refreshed for the current embeddedDataFileMetalayout.IncrementalSplitv1 andChainSplitv2 state.sys.copyclears the positional array when assigning a different schema id.Scope
This PR only introduces and propagates the durable
DataFileMetametadata. It does not change global-index refresh planning or scanner decisions. Those changes remain in follow-up PR #9069.This was split from #9069 following review feedback.
Tests
IGNOREbehavior.CopyFilesUtilTest.