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]

Reply via email to