Opened 8 years ago
Last modified 4 years ago
#3676 new defect
Add LEAKPROOF indication in functions
Reported by: | strk | Owned by: | robe |
---|---|---|---|
Priority: | low | Milestone: | PostGIS Fund Me |
Component: | postgis | Version: | master |
Keywords: | Cc: |
Description
The LEAKPROOF keyword is supported since PostgreSQL 9.2, which is our minimum requirement. By default all functions are created as NOT leakproof, meaning they cannot be used in views with "security barrier" option.
We might want to tweak that definition carefully looking at each of the functions.
See https://www.postgresql.org/docs/9.2/static/sql-createfunction.html
Change History (8)
comment:1 by , 8 years ago
comment:3 by , 7 years ago
Milestone: | PostGIS Fund Me → PostGIS 2.5.0 |
---|
I think all the functions that back operators we can consider leak proof since they don't involve GEOS or GDAL. Probably many of the geography ones except ST_Transform related are leak proof.
I'll slate this for 2.5, seems like we should be able to do for some.
comment:4 by , 7 years ago
Owner: | changed from | to
---|---|
Priority: | medium → low |
comment:5 by , 6 years ago
Milestone: | PostGIS 2.5.0 → PostGIS Fund Me |
---|
comment:6 by , 4 years ago
It would be great if geometry_overlaps (and by extension, the && operator) could be made leakproof.
This would allow tables with RLS policies or views with a security_barrier to make effective use of geometry indices, which is currently not possible.
comment:7 by , 4 years ago
Milestone: | PostGIS Fund Me → PostGIS 3.1.0 |
---|
comment:8 by , 4 years ago
Milestone: | PostGIS 3.1.0 → PostGIS Fund Me |
---|
we discussed this in code sprint and much more involved than what I had originally thought and not a highly asked for request so moving back to fundme
Anything calling GEOS is not going to be leakproof, as GEOS tends to raise exceptions with 'invalid intersection at coordinate'. So some kind of 'take invalid geometry and try to intersect it with the world' with long enough bisection lets you get geometry out of db even if it's behind security barrier.