Commit cdaa5a5
authored
feat(vortex-geo): prune ST_Intersects filters via the AABB zone statistics (#8775)
## Rationale for this change
Follow-up to #8646, which added the `GeometryAabb` zone-map statistic
and used it to prune `ST_Distance(geom, const) <op> r` filters. This PR
adds the second spatial predicate on the same statistic:
`ST_Intersects(geom, const)`. A chunk whose AABB is strictly separated
from the constant's bounding box cannot contain an intersecting row, so
the zone is skipped without any IO.
This PR also folds in two review follow-ups from #8646 that were pushed
minutes after it merged:
tests pinning the radius-literal tolerance set, and the `aabb_stat`
constructor requested in
review.
## What changes are included in this PR?
- **`GeoIntersectsPrune`** (`prune/intersects.rs`): The proof is
`min_dist_sq(chunk_aabb, query_aabb) > 0`, strictly: boxes that merely
touch must scan, since touching geometries intersect under OGC
semantics.
- **`prune/` restructure**.
- **#8646 review follow-ups**: the radius conversion's contract is
documented and pinned by tests.
Signed-off-by: Nemo Yu <zyu379@wisc.edu>1 parent 7f8d92f commit cdaa5a5
5 files changed
Lines changed: 478 additions & 234 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| |||
70 | 71 | | |
71 | 72 | | |
72 | 73 | | |
73 | | - | |
| 74 | + | |
74 | 75 | | |
| 76 | + | |
75 | 77 | | |
0 commit comments