github-actions[bot] commented on code in PR #69632:
URL: https://github.com/apache/doris/pull/69632#discussion_r4384987406


##########
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:
   [P2] Guard native Iceberg view SQL loads after view detection
   
   This guard returns before the actual native-view read in `getViewText()`. 
Set `meta.cache.iceberg.view.ttl-second=0`, warm `SHOW TABLES` and `SHOW CREATE 
TABLE ctl.db.v`, then drop `v` externally and repeat `SHOW CREATE TABLE`: the 
warm `isView=true` object succeeds here, but `IcebergUtils.showCreateView()` 
calls unguarded `getViewText()` -> `getIcebergView()`, whose [native loader 
reports 
`NoSuchViewException`](https://github.com/apache/iceberg/blob/apache-iceberg-1.11.0/core/src/main/java/org/apache/iceberg/view/BaseMetastoreViewCatalog.java#L53-L64).
 No repair boundary remains active, so `SHOW TABLES` still lists `v`. View 
binding has the same gap because `loadSnapshot()` returns an empty snapshot 
before `BindRelation` reads the view text. Guard the actual view SQL/loader 
read and add a warm-view DDL/binding test. This is distinct from the fixed 
properties/status and schema-display threads: these paths never enter those 
readers.



-- 
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