#75 closed enhancement (fixed)
Enhancement to PIP short circuit
Reported by: | kneufeld | Owned by: | dbaston |
---|---|---|---|
Priority: | low | Milestone: | PostGIS 2.3.0 |
Component: | postgis | Version: | master |
Keywords: | Cc: |
Description (last modified by )
The PIP short circuit in predicates like ST_Intersects and ST_Contains is currently defined for POINT - [MULTI]POLYGON pairs. This algorithm could be expanded to include MULTIPOINTs, esp. for one-member-multipoint cases and optionally in a few-member-multipoint cases (if performance testing warrants it).
Change History (9)
comment:1 by , 16 years ago
Description: | modified (diff) |
---|---|
Milestone: | → 1.4.X |
comment:2 by , 15 years ago
Milestone: | postgis 1.4.1 → postgis 2.0.0 |
---|
comment:3 by , 15 years ago
Milestone: | postgis 2.0.0 → FUTURE |
---|
comment:4 by , 9 years ago
comment:5 by , 9 years ago
Milestone: | PostGIS Future → PostGIS 2.3.0 |
---|---|
Version: | → trunk |
Wow Dan, you're cranking. Putting me to shame. Since you have something in works, changed this to 2.3.
comment:6 by , 9 years ago
I've updated the pull request to extend the PIP code to cover MultiPoints in ST_Intersects, ST_Contains, ST_Covers, and ST_Within. Initially I was limiting this to MultiPoints with only a few members, but I've removed these restrictions - if the PostGIS PIP code is faster than GEOS for 1 PIP test (and it is), then it should be faster than GEOS for 100 PIP tests (and it is).
I think I'm misunderstanding something about the RTree side of this process, though. From profiling, the geos_intersects function is spending 50% of its time creating and destroying RTrees, but I'm having trouble getting it to ever _use_ those RTrees. What type of query is needed for the caching behavior to kick in?
comment:7 by , 9 years ago
Owner: | changed from | to
---|---|
Status: | assigned → new |
comment:8 by , 9 years ago
Resolution: | new → fixed |
---|---|
Status: | new → closed |
Committed to trunk at r14613. Hopefully worth the wait?
I started some experimentation on this: https://github.com/postgis/postgis/pull/75