You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by ga...@apache.org on 2026/07/02 09:29:34 UTC

(iceberg) branch codex/fix-row-lineage-sequence created (now 78e103a080)

This is an automated email from the ASF dual-hosted git repository.

wgtmac pushed a change to branch codex/fix-row-lineage-sequence
in repository https://gitbox.apache.org/repos/asf/iceberg.git


      at 78e103a080 Spec: Fix row lineage sequence number inheritance

This branch includes the following new commits:

     new 78e103a080 Spec: Fix row lineage sequence number inheritance

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(iceberg) 01/01: Spec: Fix row lineage sequence number inheritance

Posted by ga...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

wgtmac pushed a commit to branch codex/fix-row-lineage-sequence
in repository https://gitbox.apache.org/repos/asf/iceberg.git

commit 78e103a0807b9d63470bcde2a45d2cc908467d84
Author: Gang Wu <us...@gmail.com>
AuthorDate: Thu Jul 2 17:29:14 2026 +0800

    Spec: Fix row lineage sequence number inheritance
    
    Update the row lineage spec to say that inherited _last_updated_sequence_number values come from a data file's file_sequence_number, not its data_sequence_number.
    
    This matches the Java scan constant implementation and the field's meaning as the sequence number of the commit that last updated the row. Using data_sequence_number would diverge for rewrites where the data sequence can differ from the snapshot that added the file.
    
    Generated-by: OpenAI Codex
---
 format/spec.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/format/spec.md b/format/spec.md
index be28a6c5f0..b46b3075e0 100644
--- a/format/spec.md
+++ b/format/spec.md
@@ -472,7 +472,7 @@ When a row is added or modified, the `_last_updated_sequence_number` field is se
 
 A data file with only new rows for the table may omit the `_last_updated_sequence_number` and `_row_id`. If the columns are missing, readers should treat both columns as if they exist and are set to null for all rows.
 
-On read, if `_last_updated_sequence_number` is `null` it is assigned the `sequence_number` of the data file's manifest entry. The data sequence number of a data file is documented in [Sequence Number Inheritance](#sequence-number-inheritance).
+On read, if `_last_updated_sequence_number` is `null` it is assigned the `file_sequence_number` of the data file's manifest entry. The file sequence number of a data file is documented in [Sequence Number Inheritance](#sequence-number-inheritance).
 
 When `null`, a row's `_row_id` field is assigned to the `first_row_id` from its containing data file plus the row position in that data file (`_pos`). A data file's `first_row_id` field is assigned using inheritance and is documented in [First Row ID Inheritance](#first-row-id-inheritance). A manifest's `first_row_id` is assigned when writing the manifest list for a snapshot and is documented in [First Row ID Assignment](#first-row-id-assignment). A snapshot's `first-row-id` is set to th [...]
 
@@ -1954,7 +1954,7 @@ Row lineage changes:
 * When writing an existing data file into a new manifest, its `first_row_id` must be written into the manifest
 * When a data file has a non-null `first_row_id`, readers must:
     * Replace any null or missing `_row_id` with the data file's `first_row_id` plus the row's `_pos`
-    * Replace any null or missing `_last_updated_sequence_number` to the data file's `data_sequence_number`
+    * Replace any null or missing `_last_updated_sequence_number` with the data file's `file_sequence_number`
     * Read any non-null `_row_id` or `_last_updated_sequence_number` without modification
 * When a data file has a null `first_row_id`, readers must produce null for `_row_id` and `_last_updated_sequence_number`
 * When writing an existing row into a new data file, writers must write `_row_id` and `_last_updated_sequence_number` if they are non-null