[postgis-commits] svn - r2919 - trunk/lwgeom
postgis-commits at postgis.refractions.net
postgis-commits at postgis.refractions.net
Thu Aug 21 03:56:11 PDT 2008
Author: mcayland
Date: 2008-08-21 03:56:10 -0700 (Thu, 21 Aug 2008)
New Revision: 2919
Modified:
trunk/lwgeom/lwgeom_gist.c
trunk/lwgeom/lwpostgis.sql.in.c
Log:
Update PostGIS SVN trunk to use the new 8.4 GiST API (where RECHECK is now specified within the consistent function, rather than being supplied as part of the operator class definition). This allows PostGIS to compile and pass regression tests on the latest PostgreSQL 8.4 CVS HEAD.
Modified: trunk/lwgeom/lwgeom_gist.c
===================================================================
--- trunk/lwgeom/lwgeom_gist.c 2008-08-21 08:45:07 UTC (rev 2918)
+++ trunk/lwgeom/lwgeom_gist.c 2008-08-21 10:56:10 UTC (rev 2919)
@@ -546,6 +546,16 @@
bool result;
BOX2DFLOAT4 box;
+#if POSTGIS_PGSQL_VERSION >= 84
+ /* PostgreSQL 8.4 and later require the RECHECK flag to be set here,
+ rather than being supplied as part of the operator class definition */
+ bool *recheck = (bool *) PG_GETARG_POINTER(4);
+
+ /* Since the index is lossy from conversion from float8 to float4, we must
+ recheck */
+ *recheck = true;
+#endif
+
POSTGIS_DEBUG(2, "GIST: LWGEOM_gist_consistent called");
if ( ((Pointer *) PG_GETARG_DATUM(1)) == NULL )
Modified: trunk/lwgeom/lwpostgis.sql.in.c
===================================================================
--- trunk/lwgeom/lwpostgis.sql.in.c 2008-08-21 08:45:07 UTC (rev 2918)
+++ trunk/lwgeom/lwpostgis.sql.in.c 2008-08-21 10:56:10 UTC (rev 2919)
@@ -991,8 +991,10 @@
-- GIST opclass index binding entries.
-------------------------------------------
+#if POSTGIS_PGSQL_VERSION < 84
+
--
--- Create opclass index bindings for PG>=73
+-- Create opclass index bindings for PG>=73 and PG<=83
--
CREATE OPERATOR CLASS gist_geometry_ops
@@ -1018,8 +1020,38 @@
FUNCTION 6 LWGEOM_gist_picksplit (internal, internal),
FUNCTION 7 LWGEOM_gist_same (box2d, box2d, internal);
--- TODO: add btree binding...
+#else
+--
+-- Create opclass index bindings for PG>83
+-- (No RECHECK since this is now handled as part of the GiST Access methods)
+--
+
+CREATE OPERATOR CLASS gist_geometry_ops
+ DEFAULT FOR TYPE geometry USING gist AS
+ STORAGE box2d,
+ OPERATOR 1 <<,
+ OPERATOR 2 &<,
+ OPERATOR 3 &&,
+ OPERATOR 4 &>,
+ OPERATOR 5 >>,
+ OPERATOR 6 ~=,
+ OPERATOR 7 ~,
+ OPERATOR 8 @,
+ OPERATOR 9 &<|,
+ OPERATOR 10 <<|,
+ OPERATOR 11 |>>,
+ OPERATOR 12 |&>,
+ FUNCTION 1 LWGEOM_gist_consistent (internal, geometry, int4),
+ FUNCTION 2 LWGEOM_gist_union (bytea, internal),
+ FUNCTION 3 LWGEOM_gist_compress (internal),
+ FUNCTION 4 LWGEOM_gist_decompress (internal),
+ FUNCTION 5 LWGEOM_gist_penalty (internal, internal, internal),
+ FUNCTION 6 LWGEOM_gist_picksplit (internal, internal),
+ FUNCTION 7 LWGEOM_gist_same (box2d, box2d, internal);
+
+#endif
+
-------------------------------------------
-- other lwgeom functions
More information about the postgis-commits
mailing list