924060929 commented on code in PR #69632:
URL: https://github.com/apache/doris/pull/69632#discussion_r4384571909


##########
fe/fe-core/src/main/java/org/apache/doris/datasource/metacache/MetaCache.java:
##########
@@ -514,7 +531,11 @@ public Optional<T> getMetaObj(String name, long id) {
                         return null;
                     }
                     metaObjCache.put(name, loaded);
-                    idToName.put(id, name);
+                    if (loaded.isPresent() || retainEmptyIdentity) {
+                        idToName.put(id, name);
+                    } else {
+                        idToName.remove(id, name);

Review Comment:
   Fixed in cbd5769d982. Transient name-enumeration failures now propagate from 
buildTableForInit() rather than returning confirmed absence, so the numeric 
route remains recoverable. The test evicts the object, fails enumeration during 
an ID lookup, refreshes names after recovery, and verifies the ID lookup loads 
successfully without a named object lookup.



##########
fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalTable.java:
##########
@@ -368,8 +381,10 @@ public Map<String, SysTable> getSupportedSysTables() {
 
     @Override
     public boolean isView() {
-        makeSureInitialized();
-        return isView;
+        return withMissingTableRepair(() -> {

Review Comment:
   Fixed in cbd5769d982. The complete properties() read now enters guarded 
repair, so getComment()/status enumeration repairs before its caller can log or 
swallow the failure. The getComment() unit test raises NoSuchTableException 
during the later withIcebergTable() call and verifies lookup repair.



##########
fe/fe-core/src/main/java/org/apache/doris/datasource/paimon/PaimonExternalTable.java:
##########
@@ -479,15 +486,21 @@ public boolean supportsLatestSnapshotPreload() {
 
     @Override
     public List<Column> getFullSchema() {
-        // Descriptor serialization is table-only and may follow multiple 
OPTIONS aliases. Keep it
-        // on a validated statement projection rather than falling back to the 
neutral cache.
-        return getPaimonSchemaCacheValue(
-                
MvccUtil.getSnapshotForTableMetadataFromContext(this)).getSchema();
+        return withMissingTableRepair(() -> {

Review Comment:
   Fixed in cbd5769d982. getFullSchema(TableScanParams) now guards its complete 
OPTIONS table/schema read. The unit test first completes StatementContext 
snapshot acquisition, then makes the later base-table reopen fail, and verifies 
repair occurs in this schema overload rather than during the successful fence 
stage.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to