This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-4.0 by this push:
new 3f86beca843 branch-4.0: [fix](iceberg) Invalidate related-table cache
on external table refresh #60867 (#60885)
3f86beca843 is described below
commit 3f86beca8435061126b2c2d30db96e12624b6a9e
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Sun Mar 1 11:37:32 2026 +0800
branch-4.0: [fix](iceberg) Invalidate related-table cache on external table
refresh #60867 (#60885)
Cherry-picked from #60867
Co-authored-by: Socrates <[email protected]>
---
.../src/main/java/org/apache/doris/catalog/RefreshManager.java | 6 ++++++
.../org/apache/doris/datasource/iceberg/IcebergMetadataOps.java | 7 -------
2 files changed, 6 insertions(+), 7 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/catalog/RefreshManager.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/RefreshManager.java
index 54237f2d38e..4ee6a2cab07 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/RefreshManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/RefreshManager.java
@@ -29,6 +29,7 @@ import org.apache.doris.datasource.ExternalTable;
import org.apache.doris.datasource.hive.HMSExternalCatalog;
import org.apache.doris.datasource.hive.HMSExternalTable;
import org.apache.doris.datasource.hive.HiveMetaStoreCache;
+import org.apache.doris.datasource.iceberg.IcebergExternalTable;
import org.apache.doris.persist.OperationType;
import com.google.common.base.Strings;
@@ -232,6 +233,11 @@ public class RefreshManager {
public void refreshTableInternal(ExternalDatabase db, ExternalTable table,
long updateTime) {
table.unsetObjectCreated();
+ // Iceberg partition evolution can change partition specs across FEs.
+ // Clear related-table validation cache to avoid stale
partitioned/unpartitioned judgment.
+ if (table instanceof IcebergExternalTable) {
+ ((IcebergExternalTable) table).setIsValidRelatedTableCached(false);
+ }
if (updateTime > 0) {
table.setUpdateTime(updateTime);
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataOps.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataOps.java
index fa764f9d06b..d19308e736a 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataOps.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataOps.java
@@ -848,8 +848,6 @@ public class IcebergMetadataOps implements
ExternalMetadataOps {
+ ", error message is: " +
ExceptionUtils.getRootCauseMessage(e), e);
}
refreshTable(dorisTable, updateTime);
- // Reset cached isValidRelatedTable flag after partition evolution
- ((IcebergExternalTable)
dorisTable).setIsValidRelatedTableCached(false);
}
/**
@@ -877,8 +875,6 @@ public class IcebergMetadataOps implements
ExternalMetadataOps {
+ ", error message is: " +
ExceptionUtils.getRootCauseMessage(e), e);
}
refreshTable(dorisTable, updateTime);
- // Reset cached isValidRelatedTable flag after partition evolution
- ((IcebergExternalTable)
dorisTable).setIsValidRelatedTableCached(false);
}
/**
@@ -920,8 +916,6 @@ public class IcebergMetadataOps implements
ExternalMetadataOps {
+ ", error message is: " +
ExceptionUtils.getRootCauseMessage(e), e);
}
refreshTable(dorisTable, updateTime);
- // Reset cached isValidRelatedTable flag after partition evolution
- ((IcebergExternalTable)
dorisTable).setIsValidRelatedTableCached(false);
}
@Override
@@ -1014,4 +1008,3 @@ public class IcebergMetadataOps implements
ExternalMetadataOps {
}
}
-
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]