Skip to content

feat: Wire V3 snapshot producer to row-lineage state#728

Open
laskoviymishka wants to merge 8 commits intoapache:mainfrom
laskoviymishka:v3-row-lineage
Open

feat: Wire V3 snapshot producer to row-lineage state#728
laskoviymishka wants to merge 8 commits intoapache:mainfrom
laskoviymishka:v3-row-lineage

Conversation

@laskoviymishka
Copy link
Contributor

@laskoviymishka laskoviymishka commented Feb 15, 2026

this PR closes the missing v3 commit-path wiring for row lineage in iceberg-go (part of #727):
snapshot lineage fields were validated downstream but not fully populated in snapshot producer commit flow.

What changed

v3 snapshot producer now:

  • sets snapshot first-row-id from table next-row-id,
  • computes snapshot added-rows from manifest-list writer assigned row-id delta (writer.nextRowID - firstRowID),
  • keeps v1/v2 flow unchanged.

Added tests for:

  • v3 single-commit lineage
  • two sequential commits (monotonic, gap-free lineage)
  • merge path where assigned delta includes existing rows
  • manifest-list writer delta behavior including non-data manifest exclusion

Correctness notes

This aligns with strict lineage advancement in metadata builder (next-row-id += snapshot.added-rows).

Behavior is aligned with Iceberg reference implementations’ commit-time row-lineage model (especially Java writer-delta semantics).

@laskoviymishka laskoviymishka marked this pull request as draft February 15, 2026 22:35
@laskoviymishka laskoviymishka marked this pull request as ready for review February 15, 2026 23:28
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.

1 participant