This is an automated email from the ASF dual-hosted git repository. lzljs3620320 pushed a commit to branch release-1.1 in repository https://gitbox.apache.org/repos/asf/paimon.git
commit e2383e0fb70c94ad67825fa45b0f0f0dadd76a9b Author: JingsongLi <[email protected]> AuthorDate: Tue May 13 12:03:23 2025 +0800 [hotfix] Fix FallbackReadScan in ReadOptimizedTable --- .../apache/paimon/table/system/ReadOptimizedTable.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/paimon-core/src/main/java/org/apache/paimon/table/system/ReadOptimizedTable.java b/paimon-core/src/main/java/org/apache/paimon/table/system/ReadOptimizedTable.java index 59c2c7b988..8625de6b2f 100644 --- a/paimon-core/src/main/java/org/apache/paimon/table/system/ReadOptimizedTable.java +++ b/paimon-core/src/main/java/org/apache/paimon/table/system/ReadOptimizedTable.java @@ -30,6 +30,7 @@ import org.apache.paimon.operation.DefaultValueAssigner; import org.apache.paimon.schema.SchemaManager; import org.apache.paimon.table.DataTable; import org.apache.paimon.table.FallbackReadFileStoreTable; +import org.apache.paimon.table.FallbackReadFileStoreTable.FallbackReadScan; import org.apache.paimon.table.FileStoreTable; import org.apache.paimon.table.ReadonlyTable; import org.apache.paimon.table.Table; @@ -123,6 +124,10 @@ public class ReadOptimizedTable implements DataTable, ReadonlyTable { @Override public SnapshotReader newSnapshotReader() { + return newSnapshotReader(wrapped); + } + + private SnapshotReader newSnapshotReader(FileStoreTable wrapped) { if (!wrapped.schema().primaryKeys().isEmpty()) { return wrapped.newSnapshotReader() .withLevel(coreOptions().numLevels() - 1) @@ -136,13 +141,15 @@ public class ReadOptimizedTable implements DataTable, ReadonlyTable { public DataTableScan newScan() { if (wrapped instanceof FallbackReadFileStoreTable) { FallbackReadFileStoreTable table = (FallbackReadFileStoreTable) wrapped; - return (new FallbackReadFileStoreTable.FallbackReadScan( - table.wrapped().newScan(), table.fallback().newScan())) - .withLevelFilter(l -> l == coreOptions().numLevels() - 1); + return new FallbackReadScan(newScan(table.wrapped()), newScan(table.fallback())); } + return newScan(wrapped); + } + + private DataTableScan newScan(FileStoreTable wrapped) { return new DataTableBatchScan( !wrapped.schema().primaryKeys().isEmpty(), - coreOptions(), + wrapped.coreOptions(), newSnapshotReader(), DefaultValueAssigner.create(wrapped.schema())); }
