eric-maynard commented on code in PR #2422: URL: https://github.com/apache/polaris/pull/2422#discussion_r2301781205
########## runtime/service/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalog.java: ########## @@ -1083,6 +1093,74 @@ private void validateNoLocationOverlap( } } + /** Checks whether the location of a namespace is valid given its parent */ + private void validateNamespaceLocation( + NamespaceEntity namespace, PolarisResolvedPathWrapper resolvedParent) { + StorageLocation namespaceLocation = + StorageLocation.of( + StorageLocation.ensureTrailingSlash( + resolveNamespaceLocation(namespace.asNamespace(), namespace.getPropertiesAsMap()))); + PolarisEntity parent = resolvedParent.getResolvedLeafEntity().getEntity(); + if (parent.getType().equals(PolarisEntityType.CATALOG)) { + CatalogEntity parentEntity = CatalogEntity.of(parent); + LOGGER.debug( + "Validating namespace {} given parent catalog {}", + namespace.getName(), + parentEntity.getName()); + var storageConfigInfo = parentEntity.getStorageConfigurationInfo(); + if (storageConfigInfo == null) { + throw new IllegalArgumentException( + "Cannot create namespace without a parent storage configuration"); + } + boolean allowed = + parentEntity.getStorageConfigurationInfo().getAllowedLocations().stream() Review Comment: That clause is part of a sentence: > When we create a namespace or alter its location, we must confirm that this location is within the parent location ... in order for our overlap checks and assumptions around credential vending to be valid. and is used in that sentence to articulate why we care that namespaces reside within their parent's location. Indeed, if you remove the clause from that context it could be misleading. If there's another (more important) bugfix, let's submit that in parallel with this existing bugfix. -- 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