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]