[postgis-tickets] [PostGIS] #2556: ST_Intersects results depending on insert order
PostGIS
trac at osgeo.org
Tue Dec 3 08:41:31 PST 2013
#2556: ST_Intersects results depending on insert order
--------------------------------------------------+-------------------------
Reporter: gekorob | Owner: pramsey
Type: defect | Status: new
Priority: high | Milestone: PostGIS 2.1.2
Component: postgis | Version: 2.1.x
Keywords: st_intersects intersection geography |
--------------------------------------------------+-------------------------
We have problems with ST_Intersects on geography feature using postgis
2.1.0 and 2.1.1.
The result of the query
{{{
select id, name from images where st_intersects(extent,
st_geogfromtext('SRID=4326;POLYGON((-46.625977 81.634149,-46.625977
81.348076,-48.999023 81.348076,-48.999023 81.634149,-46.625977
81.634149))'));
}}}
on a table
{{{
create table images (
id integer,
name varchar,
extent geography(POLYGON,4326)
);
create index extent_idx on images using gist(extent);
}}}
is depending on the insert order. In the following situation
{{{
insert into images values(47409, 'TDX-1_2010-10-06T19_44_2375085',
st_geogfromtext('SRID=4326;POLYGON((-59.4139571913088
82.9486103943668,-57.3528882462655 83.1123152898828,-50.2302874208478
81.3740574826097,-51.977353304689 81.2431047148532,-59.4139571913088
82.9486103943668))'));
insert into images values(1, 'first_image',
st_geogfromtext('SRID=4326;POLYGON((-162.211667 88.046667,-151.190278
87.248889,-44.266389 74.887778,-40.793889 75.043333,-162.211667
88.046667))'));
}}}
we can't find 'first_image' (with id=1), the query returns '0 rows'. In
the opposite situation, when 'first image' is inserted before, the query,
correctly returns the record with id = 1;
Adding an additional condition at the end of the query, always returns
expected result, for example:
{{{
select id, name from images where st_intersects(extent,
st_geogfromtext('SRID=4326;POLYGON((-46.625977 81.634149,-46.625977
81.348076,-48.999023 81.348076,-48.999023 81.634149,-46.625977
81.634149))')) and name like 'first%';
}}}
We experimented this strange behavior only with version 2.1.x of Postgis.
The last one we tried was, on Mac:
{{{
PostgreSQL 9.3.1 on x86_64-apple-darwin12.5.0, compiled by Apple LLVM
version 5.0 (clang-500.2.75) (based on LLVM 3.3svn), 64-bitPOSTGIS="2.1.1
r12113" GEOS="3.4.2-CAPI-1.8.2 r3921" PROJ="Rel. 4.8.0, 6 March 2012"
LIBXML="2.9.1" LIBJSON="UNKNOWN"
}}}
and on Ubuntu
{{{
PostgreSQL 9.3.1 on x86_64-unknown-linux-gnu, compiled by gcc
(Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit POSTGIS="2.1.0 r11822"
GEOS="3.4.2-CAPI-1.8.2 r3921" PROJ="Rel. 4.8.0, 6 March 2012"
LIBXML="2.7.8" LIBJSON="UNKNOWN"
}}}
With Postgis 2.0.x and postgres 9.1.x we can't reproduce the problem
(everything seems to work correctly, after one year in production mode).
{{{
PostgreSQL 9.1.7 on x86_64-unknown-linux-gnu, compiled by gcc
(Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bitPOSTGIS="2.0.1 r9979"
GEOS="3.3.5-CAPI-1.7.5" PROJ="Rel. 4.8.0, 6 March 2012" LIBXML="2.8.0"
LIBJSON="UNKNOWN"
}}}.
--
Ticket URL: <http://trac.osgeo.org/postgis/ticket/2556>
PostGIS <http://trac.osgeo.org/postgis/>
The PostGIS Trac is used for bug, enhancement & task tracking, a user and developer wiki, and a view into the subversion code repository of PostGIS project.
More information about the postgis-tickets
mailing list