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
