eric-maynard commented on code in PR #1686: URL: https://github.com/apache/polaris/pull/1686#discussion_r2122656994
########## extension/persistence/relational-jdbc/src/test/java/org/apache/polaris/extension/persistence/relational/jdbc/QueryGeneratorTest.java: ########## @@ -222,4 +222,29 @@ void testGenerateWhereClause_emptyMap() { Map<String, Object> whereClause = Collections.emptyMap(); assertEquals("", QueryGenerator.generateWhereClause(whereClause)); } + + @Test + void testGenerateOverlapQuery() { + String realmId = "realmId"; + int parentId = "polaris".hashCode(); + + assertEquals( + "SELECT entity_version, to_purge_timestamp, internal_properties, " + + "catalog_id, purge_timestamp, sub_type_code, create_timestamp, last_update_timestamp, " + + "parent_id, name, location, id, drop_timestamp, properties, grant_records_version, " + + "type_code FROM POLARIS_SCHEMA.ENTITIES WHERE realm_id = 'realmId' AND parent_id = " + + "-398224152 AND (1 = 2 OR location = '/' OR location = '/tmp/' OR location = '/tmp/location/' " + + "OR location LIKE '/tmp/location/%')", + QueryGenerator.generateOverlapQuery(realmId, parentId, "/tmp/location/")); + + assertEquals( + "SELECT entity_version, to_purge_timestamp, internal_properties, catalog_id, " + + "purge_timestamp, sub_type_code, create_timestamp, last_update_timestamp, parent_id, " + + "name, location, id, drop_timestamp, properties, grant_records_version, type_code " + + "FROM POLARIS_SCHEMA.ENTITIES WHERE realm_id = 'realmId' AND parent_id = -398224152 " + + "AND (1 = 2 OR location = 's3:/' OR location = 's3://' OR location = 's3://bucket/' OR " + + "location = 's3://bucket/tmp/' OR location = 's3://bucket/tmp/location/' OR location " Review Comment: > What about case differences in the URI scheme or bucket name? Then there is no overlap. > What is a particular storage technology treats path in a case-insensitive way? The check is case sensitive, to be clear. From what I can see, the current check is also case sensitive ([1](https://github.com/apache/polaris/blob/4528db1020b73814109d19e615e43bddf5ad652c/service/common/src/main/java/org/apache/polaris/service/catalog/iceberg/IcebergCatalog.java#L1162), [2](https://github.com/apache/polaris/blob/4528db1020b73814109d19e615e43bddf5ad652c/polaris-core/src/main/java/org/apache/polaris/core/storage/StorageLocation.java#L93)). > What about special chars in the URI? What about them? -- 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