Hi Yufei, Your proposal sounds good to me.
As for PR 4966, I think it is still good to merge as it deals with ALLOW_EXTERNAL_METADATA_FILE_LOCATION, right? Cheers, Dmitri. On Tue, Jul 7, 2026 at 7:45 PM Yufei Gu <[email protected]> wrote: > Hi folks, > > While reviewing the PR https://github.com/apache/polaris/pull/4966, I'm > thinking maybe we could simplify the location-related flags a bit. > > Today we have both ALLOW_EXTERNAL_TABLE_LOCATION and > ALLOW_EXTERNAL_METADATA_FILE_LOCATION. Their descriptions are similar but > serve different purposes. From reading the code, > ALLOW_EXTERNAL_TABLE_LOCATION mostly acts like a metadata-location escape > hatch: it relaxes the check that metadata files must live under the table > location. That overlaps heavily with ALLOW_EXTERNAL_METADATA_FILE_LOCATION, > and the name is easy to confuse with ALLOW_UNSTRUCTURED_TABLE_LOCATION. > > I think the clearer model is: > > - ALLOW_UNSTRUCTURED_TABLE_LOCATION: table/view locations may be outside > the structured namespace layout. > - ALLOW_EXTERNAL_METADATA_FILE_LOCATION: metadata files may be outside > the table location. > > Proposal: deprecate ALLOW_EXTERNAL_TABLE_LOCATION, keep it as a > backward-compatible alias for the metadata-location behavior, and update > docs/tests accordingly. > > There’s also one related doc mismatch: > DEFAULT_LOCATION_OBJECT_STORAGE_PREFIX_ENABLED says it requires > ALLOW_EXTERNAL_TABLE_LOCATION, but the implementation checks > ALLOW_UNSTRUCTURED_TABLE_LOCATION. [1] > > Thoughts? > > 1. > > https://github.com/apache/polaris/blob/1ef1d722521e460381d9cc8e8461619727df4c18/runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/LocalIcebergCatalog.java#L1148 > > > Yufei >
