Hi Dmitri, Making ALLOW_EXTERNAL_METADATA_FILE_LOCATION overridable at the catalog level doesn't seem a bad idea. However, it is a behavior change. And AFAIK, there is no use case requesting it. My understanding is that the main motivation for PR 4966 was to resolve the inconsistency between ALLOW_EXTERNAL_METADATA_FILE_LOCATION and ALLOW_EXTERNAL_TABLE_LOCATION. If we deprecate ALLOW_EXTERNAL_TABLE_LOCATION and keep it as a backward compatible alias, that inconsistency goes away.
In that case, do we still need the change in PR 4966? Yufei On Wed, Jul 8, 2026 at 10:51 AM Yufei Gu <[email protected]> wrote: > Here is a PR to fix the doc mismatch, > https://github.com/apache/polaris/pull/5010 > > Yufei > > > On Wed, Jul 8, 2026 at 12:50 AM Jean-Baptiste Onofré <[email protected]> > wrote: > >> Hi >> >> It looks good to me. >> >> Thanks, >> Regards >> JB >> >> On Wed, Jul 8, 2026 at 1:45 AM 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 >> > >> >
