diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/PaimonExternalTable.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/PaimonExternalTable.java index efd8e6bb7a7a42..d4b66d987bda73 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/PaimonExternalTable.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/PaimonExternalTable.java @@ -61,12 +61,11 @@ public class PaimonExternalTable extends ExternalTable implements MvccTable { private static final Logger LOG = LogManager.getLogger(PaimonExternalTable.class); - private final Table paimonTable; + private Table paimonTable; public PaimonExternalTable(long id, String name, String remoteName, PaimonExternalCatalog catalog, PaimonExternalDatabase db) { super(id, name, remoteName, catalog, db, TableType.PAIMON_EXTERNAL_TABLE); - this.paimonTable = catalog.getPaimonTable(dbName, name); } public String getPaimonCatalogType() { @@ -76,11 +75,13 @@ public String getPaimonCatalogType() { protected synchronized void makeSureInitialized() { super.makeSureInitialized(); if (!objectCreated) { + this.paimonTable = ((PaimonExternalCatalog) catalog).getPaimonTable(dbName, name); objectCreated = true; } } public Table getPaimonTable(Optional snapshot) { + makeSureInitialized(); return paimonTable.copy( Collections.singletonMap(CoreOptions.SCAN_VERSION.key(), String.valueOf(getOrFetchSnapshotCacheValue(snapshot).getSnapshot().getSnapshotId())));