Stefan de Konink-3 wrote: > > > The index is never used... and how do I know? Because I actually tried > it... > >
Your right if you want to do a ... WHERE St_IsValid(geom) query, the planner don't uses the index because 99% of geometries are valid, so an index scan seems to be useless. In that case I made postgres use the index by double negation, but that only works fast if there are few invalid geometries: SELECT * FROM planet_osm_polygon WHERE NOT osm_id IN(SELECT osm_id FROM planet_osm_polygon WHERE NOT ST_IsValid(geom)); If the table is very lage there might be an other index that is used to access the rows anyway to whitch you can add the ST_IsValid(geom) filter like: CREATE INDEX idx_ploygon_geom_with_valid ON planet_osm_polygon USING gist (way) WHERE ST_IsValid(way); This would speedup queries like ...WHERE way && geometry AND ST_IsValid(way). -- View this message in context: http://gis.638310.n2.nabble.com/invalid-geometry-in-planet-polygon-tp5454655p5457602.html Sent from the Developer Discussion mailing list archive at Nabble.com. _______________________________________________ dev mailing list [email protected] http://lists.openstreetmap.org/listinfo/dev

