adutra commented on PR #1772:
URL: https://github.com/apache/polaris/pull/1772#issuecomment-2936494778

   So here is my analyzis:
   
   1. `tableExists(ns1.history)` is called
   2. `loadTable(ns1.history)` is called
   3. Following the 
[logic](https://github.com/apache/iceberg/blob/76d7cefc63545c6686eef97859540b15fd35ef66/core/src/main/java/org/apache/iceberg/BaseMetastoreCatalog.java#L48)
 in `BaseMetastoreCatalog` a first `TableOperations` is created for the 
identifier `ns1.history`.
   4. `IcebergCatalog.doRefresh()` is called for `ns1.history`, which 
[calls](https://github.com/apache/polaris/blob/5fe9fd9e5b7e7db5604011cf2de4197430882cef/service/common/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalog.java#L1301)
 `PolarisResolutionManifest.getPassthroughResolvedPath(ns1.history)`.
   5. `PolarisResolutionManifest.passthroughPaths` contains the key 
`ns1.history`, so that call doesn't throw, and `IcebergCatalog.doRefresh()` 
returns null => the table doesn't exist
   7. Still in `BaseMetastoreCatalog`, another  `TableOperations` [is 
created](https://github.com/apache/iceberg/blob/76d7cefc63545c6686eef97859540b15fd35ef66/core/src/main/java/org/apache/iceberg/BaseMetastoreCatalog.java#L104)
 for identifier `ns1` (trying to figure out if this is the base table of a 
hypothetical metadata table).
   8. `IcebergCatalog.doRefresh()` is called again, but this time for `ns1`. 
   9. `PolarisResolutionManifest.getPassthroughResolvedPath(ns1)` is called, 
and that call throws, because `ns1` is not a key in 
`PolarisResolutionManifest.passthroughPaths`.
   
   I still don't know if we should fix something in the `Resolver` or change 
how `tableExists` is implemented as @fivetran-kostaszoumpatianos suggested. 
IMHO `getPassthroughResolvedPath` should be resilient to "unresolved" paths, or 
at least be prepared to receive the parent of a resolved path.
   
   @dennishuo @collado-mike WDYT?


-- 
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: issues-unsubscr...@polaris.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to