From: Paul Ramsey Date: Fri, 26 Sep 2008 21:46:23 +0000 (+0000) Subject: harmonize sql functions with c functions for prepared geometry X-Git-Tag: 1.4.0b1~692 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=41cebd49291012ee3ab3e50545e6dea4ae0d3d2d;p=postgis harmonize sql functions with c functions for prepared geometry git-svn-id: http://svn.osgeo.org/postgis/trunk@3020 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/lwgeom/lwgeom_geos_c.c b/lwgeom/lwgeom_geos_c.c index e8b0d118f..a53657e91 100644 --- a/lwgeom/lwgeom_geos_c.c +++ b/lwgeom/lwgeom_geos_c.c @@ -3597,12 +3597,11 @@ Datum containsProperlyPrepared(PG_FUNCTION_ARGS) BOX2DFLOAT4 box1, box2; PREPARED_GEOM_CACHE * prep_cache; MemoryContext old_context; - int32 key1, key2; + int32 key1; geom1 = (PG_LWGEOM *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0)); - key1 = PG_GETARG_INT32(1); - geom2 = (PG_LWGEOM *) PG_DETOAST_DATUM(PG_GETARG_DATUM(2)); - key2 = PG_GETARG_INT32(3); + geom2 = (PG_LWGEOM *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1)); + key1 = PG_GETARG_INT32(2); errorIfGeometryCollection(geom1,geom2); errorIfSRIDMismatch(pglwgeom_getSRID(geom1), pglwgeom_getSRID(geom2)); @@ -3671,13 +3670,12 @@ Datum coversPrepared(PG_FUNCTION_ARGS) BOX2DFLOAT4 box1, box2; PREPARED_GEOM_CACHE * prep_cache; MemoryContext old_context; - int32 key1, key2; + int32 key1; geom1 = (PG_LWGEOM *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0)); - key1 = PG_GETARG_INT32(1); - geom2 = (PG_LWGEOM *) PG_DETOAST_DATUM(PG_GETARG_DATUM(2)); - key2 = PG_GETARG_INT32(3); - + geom2 = (PG_LWGEOM *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1)); + key1 = PG_GETARG_INT32(2); + errorIfGeometryCollection(geom1,geom2); errorIfSRIDMismatch(pglwgeom_getSRID(geom1), pglwgeom_getSRID(geom2)); @@ -3749,8 +3747,8 @@ Datum intersectsPrepared(PG_FUNCTION_ARGS) int32 key1, key2; geom1 = (PG_LWGEOM *) PG_DETOAST_DATUM(PG_GETARG_DATUM(0)); - key1 = PG_GETARG_INT32(1); - geom2 = (PG_LWGEOM *) PG_DETOAST_DATUM(PG_GETARG_DATUM(2)); + geom2 = (PG_LWGEOM *) PG_DETOAST_DATUM(PG_GETARG_DATUM(1)); + key1 = PG_GETARG_INT32(2); key2 = PG_GETARG_INT32(3); errorIfGeometryCollection(geom1,geom2); diff --git a/lwgeom/lwpostgis.sql.in.c b/lwgeom/lwpostgis.sql.in.c index e3f8db83b..d9906bf5e 100644 --- a/lwgeom/lwpostgis.sql.in.c +++ b/lwgeom/lwpostgis.sql.in.c @@ -4026,16 +4026,16 @@ CREATEFUNCTION ST_Covers(geometry,geometry,integer) LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable); -- Availability: 1.4.0 -CREATEFUNCTION _ST_IntersectsPrepared(geometry,geometry,integer) +CREATEFUNCTION _ST_IntersectsPrepared(geometry,geometry,integer,integer) RETURNS boolean AS 'MODULE_PATHNAME','intersectsPrepared' LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable); -- Availability: 1.4.0 -- Inlines index magic -CREATEFUNCTION ST_Intersects(geometry,geometry,integer) +CREATEFUNCTION ST_Intersects(geometry,geometry,integer,integer) RETURNS boolean - AS 'SELECT $1 && $2 AND _ST_IntersectsPrepared($1,$2,$3)' + AS 'SELECT $1 && $2 AND _ST_IntersectsPrepared($1,$2,$3,$4)' LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable); #endif