@@ -16,26 +16,37 @@ namespace duckdb {
1616
1717// All of these imply bounding box intersection
1818static const case_insensitive_set_t spatial_predicate_map = {
19- " &&" , " ST_IntersectsExtent" , " ST_Equals" , " ST_Intersects" , " ST_Touches" ,
20- " ST_Crosses" , " ST_Within" , " ST_Contains" , " ST_Overlaps" , " ST_Covers" ,
21- " ST_CoveredBy" , " ST_ContainsProperly" , " ST_WithinProperly" , " ST_DWithin" ,
19+ " &&" ,
20+ " ST_Intersects_Extent" ,
21+ " ST_Equals" ,
22+ " ST_Intersects" ,
23+ " ST_Touches" ,
24+ " ST_Crosses" ,
25+ " ST_Within" ,
26+ " ST_Contains" ,
27+ " ST_Overlaps" ,
28+ " ST_Covers" ,
29+ " ST_CoveredBy" ,
30+ " ST_ContainsProperly" ,
31+ " ST_WithinProperly" ,
32+ " ST_DWithin" ,
2233};
2334
2435static const case_insensitive_map_t <string> spatial_predicate_inverse_map = {
2536 {" ST_Equals" , " ST_Equals" },
26- {" &&" , " &&" }, // Symmetric
27- {" ST_IntersectsExtent " , " ST_IntersectsExtent " }, // Symmetric
28- {" ST_Intersects" , " ST_Intersects" }, // Symmetric
29- {" ST_Touches" , " ST_Touches" }, // Symmetric
30- {" ST_Crosses" , " ST_Crosses" }, // Symmetric
31- {" ST_Within" , " ST_Contains" }, // Inverse
32- {" ST_Contains" , " ST_Within" }, // Inverse
33- {" ST_Overlaps" , " ST_Overlaps" }, // Symmetric
34- {" ST_Covers" , " ST_CoveredBy" }, // Inverse
35- {" ST_CoveredBy" , " ST_Covers" }, // Inverse
36- {" ST_WithinProperly" , " ST_ContainsProperly" }, // Inverse
37- {" ST_ContainsProperly" , " ST_WithinProperly" }, // Inverse
38- {" ST_DWithin" , " ST_DWithin" }, // Symmetric (when distance is constant)
37+ {" &&" , " &&" }, // Symmetric
38+ {" ST_Intersects_Extent " , " ST_Intersects_Extent " }, // Symmetric
39+ {" ST_Intersects" , " ST_Intersects" }, // Symmetric
40+ {" ST_Touches" , " ST_Touches" }, // Symmetric
41+ {" ST_Crosses" , " ST_Crosses" }, // Symmetric
42+ {" ST_Within" , " ST_Contains" }, // Inverse
43+ {" ST_Contains" , " ST_Within" }, // Inverse
44+ {" ST_Overlaps" , " ST_Overlaps" }, // Symmetric
45+ {" ST_Covers" , " ST_CoveredBy" }, // Inverse
46+ {" ST_CoveredBy" , " ST_Covers" }, // Inverse
47+ {" ST_WithinProperly" , " ST_ContainsProperly" }, // Inverse
48+ {" ST_ContainsProperly" , " ST_WithinProperly" }, // Inverse
49+ {" ST_DWithin" , " ST_DWithin" }, // Symmetric (when distance is constant)
3950};
4051
4152static bool HasInversePredicate (const string &func_name) {
0 commit comments