[postgis-users] ST_contains() throws an error

Martin Davis mbdavis at refractions.net
Mon Dec 31 14:18:55 PST 2007


It seems to me that you can't rely on the query engine either evaluating 
the where conditions in the order you specify them or using 
short-circuit evaluation. Perhaps try rewriting the query:

select count(*) from
(select * from temp_places buffer
where st_isvalid(new_poly) = true and st_isvalid(redfin_poly) = true)
)
where not st_contains(t1.new_poly, t1.redfin_poly)

James DeMichele wrote:
>
> Hi,
>
> I have a table with 27000 records and each record has 2 geometry 
> columns. The first column has an original MULTIPOLYGON (named 
> original_poly), and the second column has some tweaks (buffer and 
> simplification) applied to the original data, and is also stored as a 
> MULTIPOLYGON (named new_poly).
>
> I want to get the list of these rows where the new_poly does NOT 
> contain the original_poly. The first time I ran it, I got this: 
> “ERROR: GEOS contains() threw an error!”
>
> So, then I thought that maybe some of the polygons were not valid. 
> There were 6 invalid polygons, so then I tried running this query:
>
> select count(*)
>
> from temp_places_buffer
>
> where(st_isvalid(new_poly) = true and st_isvalid(redfin_poly) = true)
>
> and not st_contains(t1.new_poly, t1.redfin_poly);
>
> Unfortunately, I still get this error:
>
> ERROR: GEOS contains() threw an error!
>
> What are possible reasons that this would still be throwing an error, 
> other than invalid polygons, since the query should now only be 
> calculating st_contains on valid polygons?
>
> I am running this version:
>
> postgis_version
>
> ---------------------------------------
>
> 1.3 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
>
> Thanks.
>
> -James
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>   

-- 
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022




More information about the postgis-users mailing list