From: Sandro Santilli Date: Mon, 27 Dec 2004 09:59:04 +0000 (+0000) Subject: Added bool hasBBOX(geometry). Removed useless input copy in zmflag(geometry). X-Git-Tag: pgis_1_0_0RC1~121 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=95f57cb31459e315cff4d3eb4ac30804c903d650;p=postgis Added bool hasBBOX(geometry). Removed useless input copy in zmflag(geometry). git-svn-id: http://svn.osgeo.org/postgis/trunk@1183 b70326c6-7e19-0410-871a-916f4a2858ee --- diff --git a/lwgeom/lwgeom_functions_basic.c b/lwgeom/lwgeom_functions_basic.c index 2a24c169d..81b4dc309 100644 --- a/lwgeom/lwgeom_functions_basic.c +++ b/lwgeom/lwgeom_functions_basic.c @@ -53,6 +53,7 @@ Datum LWGEOM_makeline(PG_FUNCTION_ARGS); Datum LWGEOM_line_from_mpoint(PG_FUNCTION_ARGS); Datum LWGEOM_addpoint(PG_FUNCTION_ARGS); Datum LWGEOM_asEWKT(PG_FUNCTION_ARGS); +Datum LWGEOM_hasBBOX(PG_FUNCTION_ARGS); /*------------------------------------------------------------------*/ @@ -2400,13 +2401,21 @@ Datum LWGEOM_zmflag(PG_FUNCTION_ARGS) unsigned char type; int ret = 0; - in = (PG_LWGEOM *)PG_DETOAST_DATUM_COPY(PG_GETARG_DATUM(0)); + in = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0)); type = in->type; if ( TYPE_HASZ(type) ) ret += 2; if ( TYPE_HASM(type) ) ret += 1; PG_RETURN_INT16(ret); } +PG_FUNCTION_INFO_V1(LWGEOM_hasBBOX); +Datum LWGEOM_hasBBOX(PG_FUNCTION_ARGS) +{ + PG_LWGEOM *in; + in = (PG_LWGEOM *)PG_DETOAST_DATUM(PG_GETARG_DATUM(0)); + PG_RETURN_BOOL(lwgeom_hasBBOX(in->type)); +} + // Return: 2,3 or 4 PG_FUNCTION_INFO_V1(LWGEOM_ndims); Datum LWGEOM_ndims(PG_FUNCTION_ARGS) @@ -2575,3 +2584,4 @@ Datum LWGEOM_asEWKT(PG_FUNCTION_ARGS) pfree(result_cstring); PG_RETURN_POINTER(result); } + diff --git a/lwgeom/lwpostgis.sql.in b/lwgeom/lwpostgis.sql.in index 6ed5cab2b..adfe5a75c 100644 --- a/lwgeom/lwpostgis.sql.in +++ b/lwgeom/lwpostgis.sql.in @@ -941,7 +941,7 @@ CREATEFUNCTION getSRID(geometry) AS '@MODULE_FILENAME@','LWGEOM_getSRID' LANGUAGE 'C' WITH (isstrict,iscachable); -CREATEFUNCTION getbbox(geometry) +CREATEFUNCTION getBBOX(geometry) RETURNS box2d AS '@MODULE_FILENAME@','LWGEOM_to_BOX2DFLOAT4' LANGUAGE 'C' WITH (isstrict,iscachable); @@ -1698,6 +1698,11 @@ CREATEFUNCTION zmflag(geometry) AS '@MODULE_FILENAME@', 'LWGEOM_zmflag' LANGUAGE 'C' WITH (iscachable,isstrict); +CREATEFUNCTION hasBBOX(geometry) + RETURNS bool + AS '@MODULE_FILENAME@', 'LWGEOM_hasBBOX' + LANGUAGE 'C' WITH (iscachable,isstrict); + CREATEFUNCTION ndims(geometry) RETURNS smallint AS '@MODULE_FILENAME@', 'LWGEOM_ndims'