eric-maynard commented on code in PR #1686:
URL: https://github.com/apache/polaris/pull/1686#discussion_r2150995692


##########
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:
   > In that regard, the presence of any entity with a location, but without an 
indexed location, should probably invalidate the optimized lookup result.
   
   Re-reading this comment, is this saying that if we find an entity with a 
location in the properties but without a `location_without_scheme` value (i.e. 
it was written with persistence schema v1) we should invalidate the optimized 
check? How can we do that in a performant way?



-- 
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

Reply via email to