This is an automated email from the ASF dual-hosted git repository.
amogh-jahagirdar pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg.git
The following commit(s) were added to refs/heads/main by this push:
new d82bcd5811 Core: Rename v4 tracking dv_snapshot_id to
modified_snapshot_id (#18417)
d82bcd5811 is described below
commit d82bcd581145151e27e383205f9061a5f8b3bf5a
Author: Anoop Johnson <[email protected]>
AuthorDate: Thu Oct 8 07:24:38 2026 -0700
Core: Rename v4 tracking dv_snapshot_id to modified_snapshot_id (#18417)
Rename the v4 Tracking field (ID 5) from dv_snapshot_id to
modified_snapshot_id, matching the spec. The field records the snapshot in
which the file was last modified rather than only a DV addition. The field ID
is unchanged.
---
.../src/main/java/org/apache/iceberg/Tracking.java | 12 +++++------
.../java/org/apache/iceberg/TrackingBuilder.java | 16 +++++++--------
.../java/org/apache/iceberg/TrackingStruct.java | 20 +++++++++----------
.../apache/iceberg/TestTrackedFileAdapters.java | 2 +-
.../org/apache/iceberg/TestTrackingBuilder.java | 23 +++++++++++-----------
.../org/apache/iceberg/TestTrackingStruct.java | 14 ++++++-------
.../org/apache/iceberg/TestV4ManifestReader.java | 10 ++++++----
.../java/org/apache/iceberg/V4TestComparators.java | 2 +-
8 files changed, 51 insertions(+), 48 deletions(-)
diff --git a/core/src/main/java/org/apache/iceberg/Tracking.java
b/core/src/main/java/org/apache/iceberg/Tracking.java
index fcdc4e50b2..ff02bffc3b 100644
--- a/core/src/main/java/org/apache/iceberg/Tracking.java
+++ b/core/src/main/java/org/apache/iceberg/Tracking.java
@@ -44,12 +44,12 @@ interface Tracking {
"file_sequence_number",
Types.LongType.get(),
"File sequence number indicating when the file was added");
- Types.NestedField DV_SNAPSHOT_ID =
+ Types.NestedField MODIFIED_SNAPSHOT_ID =
Types.NestedField.optional(
5,
- "dv_snapshot_id",
+ "modified_snapshot_id",
Types.LongType.get(),
- "Snapshot ID where the DV was added; null if there is no DV");
+ "Snapshot ID where the file was last modified");
Types.NestedField FIRST_ROW_ID =
Types.NestedField.optional(
142, "first_row_id", Types.LongType.get(), "ID of the first row in
the data file");
@@ -72,7 +72,7 @@ interface Tracking {
SNAPSHOT_ID,
SEQUENCE_NUMBER,
FILE_SEQUENCE_NUMBER,
- DV_SNAPSHOT_ID,
+ MODIFIED_SNAPSHOT_ID,
FIRST_ROW_ID,
DELETED_POSITIONS,
REPLACED_POSITIONS);
@@ -95,8 +95,8 @@ interface Tracking {
/** Returns the file sequence number indicating when the file was added. */
Long fileSequenceNumber();
- /** Returns the snapshot ID where the DV was added; null if there is no DV.
*/
- Long dvSnapshotId();
+ /** Returns the snapshot ID where the file was last modified. */
+ Long modifiedSnapshotId();
/** Returns the ID of the first row in the data file. */
Long firstRowId();
diff --git a/core/src/main/java/org/apache/iceberg/TrackingBuilder.java
b/core/src/main/java/org/apache/iceberg/TrackingBuilder.java
index 3c733825e2..c076531fcb 100644
--- a/core/src/main/java/org/apache/iceberg/TrackingBuilder.java
+++ b/core/src/main/java/org/apache/iceberg/TrackingBuilder.java
@@ -29,7 +29,7 @@ class TrackingBuilder {
private final Long fileSequenceNumber;
private final Long firstRowId;
private EntryStatus status;
- private Long dvSnapshotId;
+ private Long modifiedSnapshotId;
private byte[] deletedPositions;
private byte[] replacedPositions;
@@ -83,7 +83,7 @@ class TrackingBuilder {
this.dataSequenceNumber = null;
this.fileSequenceNumber = null;
this.firstRowId = null;
- this.dvSnapshotId = null;
+ this.modifiedSnapshotId = null;
this.deletedPositions = null;
this.replacedPositions = null;
}
@@ -97,7 +97,7 @@ class TrackingBuilder {
this.dataSequenceNumber = source.dataSequenceNumber();
this.fileSequenceNumber = source.fileSequenceNumber();
this.firstRowId = source.firstRowId();
- this.dvSnapshotId = source.dvSnapshotId();
+ this.modifiedSnapshotId = source.modifiedSnapshotId();
this.deletedPositions = null;
this.replacedPositions = null;
}
@@ -107,7 +107,7 @@ class TrackingBuilder {
Preconditions.checkState(
deletedPositions == null && replacedPositions == null,
"Cannot mark DV updated on a manifest entry (deleted/replaced
positions are set)");
- this.dvSnapshotId = newSnapshotId;
+ this.modifiedSnapshotId = newSnapshotId;
if (status == EntryStatus.EXISTING) {
this.status = EntryStatus.MODIFIED;
}
@@ -120,7 +120,7 @@ class TrackingBuilder {
Preconditions.checkState(
status != EntryStatus.ADDED, "Cannot set deleted positions on ADDED
entry");
this.deletedPositions = ByteBuffers.toByteArray(positions);
- this.dvSnapshotId = newSnapshotId;
+ this.modifiedSnapshotId = newSnapshotId;
this.status = EntryStatus.MODIFIED;
return this;
}
@@ -130,7 +130,7 @@ class TrackingBuilder {
Preconditions.checkState(
status != EntryStatus.ADDED, "Cannot set replaced positions on ADDED
entry");
this.replacedPositions = ByteBuffers.toByteArray(positions);
- this.dvSnapshotId = newSnapshotId;
+ this.modifiedSnapshotId = newSnapshotId;
this.status = EntryStatus.MODIFIED;
return this;
}
@@ -141,7 +141,7 @@ class TrackingBuilder {
snapshotId,
dataSequenceNumber,
fileSequenceNumber,
- dvSnapshotId,
+ modifiedSnapshotId,
firstRowId,
deletedPositions,
replacedPositions);
@@ -155,7 +155,7 @@ class TrackingBuilder {
newSnapshotId,
source.dataSequenceNumber(),
source.fileSequenceNumber(),
- source.dvSnapshotId(),
+ source.modifiedSnapshotId(),
source.firstRowId(),
null,
null);
diff --git a/core/src/main/java/org/apache/iceberg/TrackingStruct.java
b/core/src/main/java/org/apache/iceberg/TrackingStruct.java
index e5b3517111..c804497d82 100644
--- a/core/src/main/java/org/apache/iceberg/TrackingStruct.java
+++ b/core/src/main/java/org/apache/iceberg/TrackingStruct.java
@@ -35,7 +35,7 @@ class TrackingStruct extends SupportsIndexProjection
implements Tracking, Serial
Tracking.SNAPSHOT_ID,
Tracking.SEQUENCE_NUMBER,
Tracking.FILE_SEQUENCE_NUMBER,
- Tracking.DV_SNAPSHOT_ID,
+ Tracking.MODIFIED_SNAPSHOT_ID,
Tracking.FIRST_ROW_ID,
Tracking.DELETED_POSITIONS,
Tracking.REPLACED_POSITIONS,
@@ -58,7 +58,7 @@ class TrackingStruct extends SupportsIndexProjection
implements Tracking, Serial
private Long snapshotId = null;
private Long dataSequenceNumber = null;
private Long fileSequenceNumber = null;
- private Long dvSnapshotId = null;
+ private Long modifiedSnapshotId = null;
private Long firstRowId = null;
private byte[] deletedPositions = null;
private byte[] replacedPositions = null;
@@ -82,7 +82,7 @@ class TrackingStruct extends SupportsIndexProjection
implements Tracking, Serial
this.snapshotId = toCopy.snapshotId;
this.dataSequenceNumber = toCopy.dataSequenceNumber;
this.fileSequenceNumber = toCopy.fileSequenceNumber;
- this.dvSnapshotId = toCopy.dvSnapshotId;
+ this.modifiedSnapshotId = toCopy.modifiedSnapshotId;
this.firstRowId = toCopy.firstRowId;
this.deletedPositions =
toCopy.deletedPositions != null
@@ -101,7 +101,7 @@ class TrackingStruct extends SupportsIndexProjection
implements Tracking, Serial
Long snapshotId,
Long dataSequenceNumber,
Long fileSequenceNumber,
- Long dvSnapshotId,
+ Long modifiedSnapshotId,
Long firstRowId,
byte[] deletedPositions,
byte[] replacedPositions) {
@@ -110,7 +110,7 @@ class TrackingStruct extends SupportsIndexProjection
implements Tracking, Serial
this.snapshotId = snapshotId;
this.dataSequenceNumber = dataSequenceNumber;
this.fileSequenceNumber = fileSequenceNumber;
- this.dvSnapshotId = dvSnapshotId;
+ this.modifiedSnapshotId = modifiedSnapshotId;
this.firstRowId = firstRowId;
this.deletedPositions = deletedPositions;
this.replacedPositions = replacedPositions;
@@ -200,8 +200,8 @@ class TrackingStruct extends SupportsIndexProjection
implements Tracking, Serial
}
@Override
- public Long dvSnapshotId() {
- return dvSnapshotId;
+ public Long modifiedSnapshotId() {
+ return modifiedSnapshotId;
}
@Override
@@ -250,7 +250,7 @@ class TrackingStruct extends SupportsIndexProjection
implements Tracking, Serial
case 3:
return fileSequenceNumber();
case 4:
- return dvSnapshotId;
+ return modifiedSnapshotId;
case 5:
return firstRowId;
case 6:
@@ -282,7 +282,7 @@ class TrackingStruct extends SupportsIndexProjection
implements Tracking, Serial
this.fileSequenceNumber = (Long) value;
break;
case 4:
- this.dvSnapshotId = (Long) value;
+ this.modifiedSnapshotId = (Long) value;
break;
case 5:
this.firstRowId = (Long) value;
@@ -311,7 +311,7 @@ class TrackingStruct extends SupportsIndexProjection
implements Tracking, Serial
.add("snapshot_id", snapshotId)
.add("data_sequence_number", dataSequenceNumber)
.add("file_sequence_number", fileSequenceNumber)
- .add("dv_snapshot_id", dvSnapshotId)
+ .add("modified_snapshot_id", modifiedSnapshotId)
.add("first_row_id", firstRowId)
.add("deleted_positions", deletedPositions == null ? "null" :
"(binary)")
.add("replaced_positions", replacedPositions == null ? "null" :
"(binary)")
diff --git a/core/src/test/java/org/apache/iceberg/TestTrackedFileAdapters.java
b/core/src/test/java/org/apache/iceberg/TestTrackedFileAdapters.java
index a7bfe777c1..d3af965ec1 100644
--- a/core/src/test/java/org/apache/iceberg/TestTrackedFileAdapters.java
+++ b/core/src/test/java/org/apache/iceberg/TestTrackedFileAdapters.java
@@ -102,7 +102,7 @@ class TestTrackedFileAdapters {
SNAPSHOT_ID,
DATA_SEQUENCE_NUMBER,
FILE_SEQUENCE_NUMBER,
- null, // dvSnapshotId
+ null, // modifiedSnapshotId
FIRST_ROW_ID,
null, // deletedPositions
null); // replacedPositions
diff --git a/core/src/test/java/org/apache/iceberg/TestTrackingBuilder.java
b/core/src/test/java/org/apache/iceberg/TestTrackingBuilder.java
index f7e62271c7..6fac40ecc9 100644
--- a/core/src/test/java/org/apache/iceberg/TestTrackingBuilder.java
+++ b/core/src/test/java/org/apache/iceberg/TestTrackingBuilder.java
@@ -45,7 +45,7 @@ class TestTrackingBuilder {
assertThat(tracking.status()).isEqualTo(EntryStatus.ADDED);
assertThat(tracking.snapshotId()).isEqualTo(42L);
- assertThat(tracking.dvSnapshotId()).isEqualTo(42L);
+ assertThat(tracking.modifiedSnapshotId()).isEqualTo(42L);
assertThat(tracking.deletedPositions()).isNull();
assertThat(tracking.replacedPositions()).isNull();
// sequence numbers and firstRowId remain null; populated by inheritance
@@ -62,7 +62,7 @@ class TestTrackingBuilder {
assertThat(existing.snapshotId()).isEqualTo(SOURCE_TRACKING_ADDED.snapshotId());
assertThat(existing.dataSequenceNumber()).isEqualTo(SOURCE_TRACKING_ADDED.dataSequenceNumber());
assertThat(existing.fileSequenceNumber()).isEqualTo(SOURCE_TRACKING_ADDED.fileSequenceNumber());
-
assertThat(existing.dvSnapshotId()).isEqualTo(SOURCE_TRACKING_ADDED.dvSnapshotId());
+
assertThat(existing.modifiedSnapshotId()).isEqualTo(SOURCE_TRACKING_ADDED.modifiedSnapshotId());
assertThat(existing.firstRowId()).isEqualTo(SOURCE_TRACKING_ADDED.firstRowId());
}
@@ -74,7 +74,7 @@ class TestTrackingBuilder {
assertThat(deleted.snapshotId()).isEqualTo(999L);
assertThat(deleted.dataSequenceNumber()).isEqualTo(SOURCE_TRACKING_ADDED.dataSequenceNumber());
assertThat(deleted.fileSequenceNumber()).isEqualTo(SOURCE_TRACKING_ADDED.fileSequenceNumber());
-
assertThat(deleted.dvSnapshotId()).isEqualTo(SOURCE_TRACKING_ADDED.dvSnapshotId());
+
assertThat(deleted.modifiedSnapshotId()).isEqualTo(SOURCE_TRACKING_ADDED.modifiedSnapshotId());
assertThat(deleted.firstRowId()).isEqualTo(SOURCE_TRACKING_ADDED.firstRowId());
}
@@ -86,7 +86,7 @@ class TestTrackingBuilder {
assertThat(replaced.snapshotId()).isEqualTo(999L);
assertThat(replaced.dataSequenceNumber()).isEqualTo(SOURCE_TRACKING_ADDED.dataSequenceNumber());
assertThat(replaced.fileSequenceNumber()).isEqualTo(SOURCE_TRACKING_ADDED.fileSequenceNumber());
-
assertThat(replaced.dvSnapshotId()).isEqualTo(SOURCE_TRACKING_ADDED.dvSnapshotId());
+
assertThat(replaced.modifiedSnapshotId()).isEqualTo(SOURCE_TRACKING_ADDED.modifiedSnapshotId());
assertThat(replaced.firstRowId()).isEqualTo(SOURCE_TRACKING_ADDED.firstRowId());
}
@@ -110,7 +110,7 @@ class TestTrackingBuilder {
}
@Test
- void dvUpdatedProducesModifiedAndAdvancesDvSnapshotId() {
+ void dvUpdatedProducesModifiedAndAdvancesModifiedSnapshotId() {
Tracking modified = TrackingBuilder.from(SOURCE_TRACKING_ADDED,
999L).dvUpdated().build();
assertThat(modified.status()).isEqualTo(EntryStatus.MODIFIED);
@@ -118,8 +118,8 @@ class TestTrackingBuilder {
assertThat(modified.snapshotId())
.isEqualTo(SOURCE_TRACKING_ADDED.snapshotId())
.isNotEqualTo(999L);
- // only the DV snapshot id advances to the commit snapshot
- assertThat(modified.dvSnapshotId()).isEqualTo(999L);
+ // only the modified snapshot id advances to the commit snapshot
+ assertThat(modified.modifiedSnapshotId()).isEqualTo(999L);
}
@Test
@@ -255,8 +255,8 @@ class TestTrackingBuilder {
assertThat(carried.snapshotId())
.isEqualTo(SOURCE_TRACKING_MODIFIED.snapshotId())
.isNotEqualTo(999L);
- assertThat(carried.dvSnapshotId())
- .isEqualTo(SOURCE_TRACKING_MODIFIED.dvSnapshotId())
+ assertThat(carried.modifiedSnapshotId())
+ .isEqualTo(SOURCE_TRACKING_MODIFIED.modifiedSnapshotId())
.isNotEqualTo(999L);
assertThat(carried.dataSequenceNumber())
.isEqualTo(SOURCE_TRACKING_MODIFIED.dataSequenceNumber());
@@ -272,11 +272,12 @@ class TestTrackingBuilder {
Tracking modified =
TrackingBuilder.from(SOURCE_TRACKING_ADDED,
999L).deletedPositions(deletedBytes).build();
assertThat(modified.status()).isEqualTo(EntryStatus.MODIFIED);
- // the entry snapshot id is preserved; only the DV snapshot id advances to
the commit snapshot
+ // the entry snapshot id is preserved; only the modified snapshot id
advances to the commit
+ // snapshot
assertThat(modified.snapshotId())
.isEqualTo(SOURCE_TRACKING_ADDED.snapshotId())
.isNotEqualTo(999L);
- assertThat(modified.dvSnapshotId()).isEqualTo(999L);
+ assertThat(modified.modifiedSnapshotId()).isEqualTo(999L);
assertThat(modified.deletedPositions()).isEqualTo(deletedBytes);
}
}
diff --git a/core/src/test/java/org/apache/iceberg/TestTrackingStruct.java
b/core/src/test/java/org/apache/iceberg/TestTrackingStruct.java
index 253384a683..3975706e5c 100644
--- a/core/src/test/java/org/apache/iceberg/TestTrackingStruct.java
+++ b/core/src/test/java/org/apache/iceberg/TestTrackingStruct.java
@@ -49,7 +49,7 @@ class TestTrackingStruct {
assertThat(tracking.snapshotId()).isEqualTo(42L);
assertThat(tracking.dataSequenceNumber()).isEqualTo(10L);
assertThat(tracking.fileSequenceNumber()).isEqualTo(11L);
- assertThat(tracking.dvSnapshotId()).isEqualTo(43L);
+ assertThat(tracking.modifiedSnapshotId()).isEqualTo(43L);
assertThat(tracking.firstRowId()).isEqualTo(1000L);
assertThat(tracking.deletedPositions()).isEqualTo(ByteBuffer.wrap(DELETED_POSITIONS));
assertThat(tracking.replacedPositions()).isEqualTo(ByteBuffer.wrap(REPLACED_POSITIONS));
@@ -65,7 +65,7 @@ class TestTrackingStruct {
tracking.set(pos("snapshot_id"), 42L);
tracking.set(pos("sequence_number"), 10L);
tracking.set(pos("file_sequence_number"), 11L);
- tracking.set(pos("dv_snapshot_id"), 43L);
+ tracking.set(pos("modified_snapshot_id"), 43L);
tracking.set(pos("first_row_id"), 1000L);
tracking.set(pos("deleted_positions"), ByteBuffer.wrap(DELETED_POSITIONS));
tracking.set(pos("replaced_positions"),
ByteBuffer.wrap(REPLACED_POSITIONS));
@@ -76,7 +76,7 @@ class TestTrackingStruct {
assertThat(tracking.snapshotId()).isEqualTo(42L);
assertThat(tracking.dataSequenceNumber()).isEqualTo(10L);
assertThat(tracking.fileSequenceNumber()).isEqualTo(11L);
- assertThat(tracking.dvSnapshotId()).isEqualTo(43L);
+ assertThat(tracking.modifiedSnapshotId()).isEqualTo(43L);
assertThat(tracking.firstRowId()).isEqualTo(1000L);
assertThat(tracking.deletedPositions()).isEqualTo(ByteBuffer.wrap(DELETED_POSITIONS));
assertThat(tracking.replacedPositions()).isEqualTo(ByteBuffer.wrap(REPLACED_POSITIONS));
@@ -96,7 +96,7 @@ class TestTrackingStruct {
assertThat(tracking.get(pos("snapshot_id"), Long.class)).isEqualTo(42L);
assertThat(tracking.get(pos("sequence_number"),
Long.class)).isEqualTo(10L);
assertThat(tracking.get(pos("file_sequence_number"),
Long.class)).isEqualTo(11L);
- assertThat(tracking.get(pos("dv_snapshot_id"), Long.class)).isEqualTo(43L);
+ assertThat(tracking.get(pos("modified_snapshot_id"),
Long.class)).isEqualTo(43L);
assertThat(tracking.get(pos("first_row_id"), Long.class)).isEqualTo(1000L);
assertThat(tracking.get(pos("deleted_positions"), ByteBuffer.class))
.isEqualTo(ByteBuffer.wrap(DELETED_POSITIONS));
@@ -121,7 +121,7 @@ class TestTrackingStruct {
assertThat(copy.snapshotId()).isEqualTo(tracking.snapshotId());
assertThat(copy.dataSequenceNumber()).isEqualTo(tracking.dataSequenceNumber());
assertThat(copy.fileSequenceNumber()).isEqualTo(tracking.fileSequenceNumber());
- assertThat(copy.dvSnapshotId()).isEqualTo(tracking.dvSnapshotId());
+
assertThat(copy.modifiedSnapshotId()).isEqualTo(tracking.modifiedSnapshotId());
assertThat(copy.firstRowId()).isEqualTo(tracking.firstRowId());
assertThat(copy.deletedPositions()).isEqualTo(tracking.deletedPositions());
assertThat(copy.replacedPositions()).isEqualTo(tracking.replacedPositions());
@@ -280,7 +280,7 @@ class TestTrackingStruct {
assertThat(tracking.snapshotId()).isEqualTo(42L);
assertThat(tracking.dataSequenceNumber()).isEqualTo(10L);
assertThat(tracking.fileSequenceNumber()).isEqualTo(11L);
- assertThat(tracking.dvSnapshotId()).isEqualTo(43L);
+ assertThat(tracking.modifiedSnapshotId()).isEqualTo(43L);
assertThat(tracking.firstRowId()).isEqualTo(1000L);
assertThat(tracking.deletedPositions()).isEqualTo(ByteBuffer.wrap(DELETED_POSITIONS));
assertThat(tracking.replacedPositions()).isEqualTo(ByteBuffer.wrap(REPLACED_POSITIONS));
@@ -321,7 +321,7 @@ class TestTrackingStruct {
assertThat(deserialized.snapshotId()).isEqualTo(42L);
assertThat(deserialized.dataSequenceNumber()).isEqualTo(10L);
assertThat(deserialized.fileSequenceNumber()).isEqualTo(11L);
- assertThat(deserialized.dvSnapshotId()).isEqualTo(43L);
+ assertThat(deserialized.modifiedSnapshotId()).isEqualTo(43L);
assertThat(deserialized.firstRowId()).isEqualTo(1000L);
assertThat(deserialized.deletedPositions()).isEqualTo(ByteBuffer.wrap(DELETED_POSITIONS));
assertThat(deserialized.replacedPositions()).isEqualTo(ByteBuffer.wrap(REPLACED_POSITIONS));
diff --git a/core/src/test/java/org/apache/iceberg/TestV4ManifestReader.java
b/core/src/test/java/org/apache/iceberg/TestV4ManifestReader.java
index 9d1d81d3c6..9d990009c8 100644
--- a/core/src/test/java/org/apache/iceberg/TestV4ManifestReader.java
+++ b/core/src/test/java/org/apache/iceberg/TestV4ManifestReader.java
@@ -517,20 +517,22 @@ class TestV4ManifestReader {
@ParameterizedTest
@FieldSource("MANIFEST_FORMATS")
- public void inheritanceDVSnapshotIdNotInherited(FileFormat format) throws
IOException {
- TrackedFile withDVSnapshotId =
+ public void inheritanceModifiedSnapshotIdNotInherited(FileFormat format)
throws IOException {
+ TrackedFile withModifiedSnapshotId =
unpartitionedDataFile(
new TrackingStruct(
EntryStatus.ADDED, SNAPSHOT_ID, 5L, 5L, 1234567L, 5_000L,
null, null),
"s3://bucket/table/file-b.parquet");
- TrackedFile withoutDVSnapshotId =
+ TrackedFile withoutModifiedSnapshotId =
unpartitionedDataFile(
new TrackingStruct(EntryStatus.ADDED, SNAPSHOT_ID, 5L, 5L, null,
5_100L, null, null),
"s3://bucket/table/file-a.parquet");
ManifestFile manifest =
writeManifest(
- format, UNPARTITIONED_TYPE, ImmutableList.of(withDVSnapshotId,
withoutDVSnapshotId));
+ format,
+ UNPARTITIONED_TYPE,
+ ImmutableList.of(withModifiedSnapshotId,
withoutModifiedSnapshotId));
when(manifest.firstRowId()).thenReturn(10_000L);
when(manifest.snapshotId()).thenReturn(34L);
diff --git a/core/src/test/java/org/apache/iceberg/V4TestComparators.java
b/core/src/test/java/org/apache/iceberg/V4TestComparators.java
index 9c3227afd7..08ea44ed35 100644
--- a/core/src/test/java/org/apache/iceberg/V4TestComparators.java
+++ b/core/src/test/java/org/apache/iceberg/V4TestComparators.java
@@ -91,7 +91,7 @@ class V4TestComparators {
.thenComparing(Tracking::snapshotId, natural())
.thenComparing(Tracking::dataSequenceNumber, natural())
.thenComparing(Tracking::fileSequenceNumber, natural())
- .thenComparing(Tracking::dvSnapshotId, natural())
+ .thenComparing(Tracking::modifiedSnapshotId, natural())
.thenComparing(Tracking::firstRowId, natural())
.thenComparing(Tracking::deletedPositions, BYTES)
.thenComparing(Tracking::replacedPositions, BYTES));