From: Paul Ramsey Date: Tue, 11 Nov 2008 20:38:10 +0000 (+0000) Subject: PostgreSQL 8.4 support (#62) X-Git-Tag: 1.3.4rc3~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=17e041fc5ea4d4e21eaa7b88a19f58f490da8c58;p=postgis PostgreSQL 8.4 support (#62) git-svn-id: http://svn.osgeo.org/postgis/branches/1.3@3287 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/lwgeom/lwgeom_gist.c b/lwgeom/lwgeom_gist.c index 6755fc39a..55a6371bc 100644 --- a/lwgeom/lwgeom_gist.c +++ b/lwgeom/lwgeom_gist.c @@ -598,6 +598,16 @@ Datum LWGEOM_gist_consistent(PG_FUNCTION_ARGS) uchar *serialized_lwgeom; #endif +#if USE_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); + + /* And since the index is lossy from conversion from float8 to float4, we must + recheck */ + *recheck = true; +#endif + #ifdef PGIS_DEBUG_CALLS elog(NOTICE,"GIST: LWGEOM_gist_consistent called"); #endif diff --git a/lwgeom/lwpostgis.sql.in b/lwgeom/lwpostgis.sql.in index 8a46d742a..86f9fb396 100644 --- a/lwgeom/lwpostgis.sql.in +++ b/lwgeom/lwpostgis.sql.in @@ -1305,8 +1305,10 @@ INSERT INTO pg_amproc (amopclaid, amprocnum, amproc) #else +#if USE_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 @@ -1342,6 +1344,38 @@ UPDATE pg_opclass -- 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 + #endif ------------------------------------------- diff --git a/regress/run_test b/regress/run_test index 791efffc5..5a170909f 100755 --- a/regress/run_test +++ b/regress/run_test @@ -123,6 +123,8 @@ run_simple_test () | grep -v "^DROP" \ | grep -v "^CREATE" \ | grep -v "^SET" \ + | grep -v "^LINE " \ + | grep -v "\^$" \ | sed 's/Infinity/inf/g;s/Inf/inf/g;s/1\.#INF/inf/g' \ | sed 's/[eE]\([+-]\)0\{1,\}\([0-9]\{1,\}\)/e\1\2/g' \ | sed 's/Self-intersection .*/Self-intersection/' \