Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -1724,8 +1724,11 @@ public void planMergePreservesExplicitlyEmptyReadAcrossConcurrentFirstAppend() {
providerFor(ops.table, ctx).planWrite(new WriteSession(txn),
new WriteHandle(emptyPinnedHandle).writeOperation(WriteOperation.MERGE));

Assertions.assertNull(txn.getBaseSnapshotId(),
"an explicitly empty read must leave RowDelta validation unbounded across the first append");
// #66348: an explicitly pinned -1 (the empty-table generation) stays on baseSnapshotId as an
// OCC fence — the RowDelta commit validates from the pinned generation, so a concurrent first
// append in the read->begin-write window is detected at commit instead of being silently allowed.
Assertions.assertEquals(Long.valueOf(-1L), txn.getBaseSnapshotId(),
"an explicitly empty read must stay an OCC fence across a concurrent first append");
}

// ───────────────────────────── MERGE sink (TIcebergMergeSink) ─────────────────────────────
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,12 @@ public void testAnalyzePartitionInvertedIndexFileStorageFormat() throws Analysis
properties.put(PropertyAnalyzer.PROPERTIES_PARTITION_INVERTED_INDEX_STORAGE_FORMAT, "V1");
AnalysisException v1Exception = Assertions.assertThrows(AnalysisException.class,
() -> PropertyAnalyzer.analyzePartitionInvertedIndexFileStorageFormat(properties));
Assertions.assertTrue(v1Exception.getMessage().contains("only supports V2, V3 and SNII"));
// #64522 blocks V1 inside analyzeInvertedIndexFileStorageFormat ("deprecated ... use V2") before
// the partition-level check ("only supports V2, V3 and SNII") can run; either message rejects V1.
Assertions.assertTrue(v1Exception.getMessage().contains("only supports V2, V3 and SNII")
|| v1Exception.getMessage().contains(
"Inverted index V1 is deprecated and no longer allowed"),
"V1 must be rejected, got: " + v1Exception.getMessage());

properties.put(PropertyAnalyzer.PROPERTIES_PARTITION_INVERTED_INDEX_STORAGE_FORMAT, "SNII");
Config.enable_partition_inverted_index_storage_format_rollout = false;
Expand Down