]> granicus.if.org Git - postgis/commitdiff
Added bool::text cast.
authorSandro Santilli <strk@keybit.net>
Wed, 23 Feb 2005 09:00:36 +0000 (09:00 +0000)
committerSandro Santilli <strk@keybit.net>
Wed, 23 Feb 2005 09:00:36 +0000 (09:00 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@1428 b70326c6-7e19-0410-871a-916f4a2858ee

lwgeom/lwgeom_inout.c
lwgeom/lwpostgis.sql.in

index 2ed26fd7e5266e12ebf1c1712f725ed86f040d69..3440f403ba61bf85516a3abe8857d2e942e9a080 100644 (file)
@@ -582,3 +582,19 @@ Datum LWGEOM_from_bytea(PG_FUNCTION_ARGS)
         PG_RETURN_POINTER(result);
 }
 
+PG_FUNCTION_INFO_V1(BOOL_to_text);
+Datum BOOL_to_text(PG_FUNCTION_ARGS)
+{
+       bool b = PG_GETARG_BOOL(0);
+       char c;
+       text *result;
+
+       c = b ? 't' : 'f';
+
+       result = palloc(VARHDRSZ+1*sizeof(char));
+       VARATT_SIZEP(result) = VARHDRSZ+1*sizeof(char);
+       memcpy(VARDATA(result), &c, 1*sizeof(char));
+
+       PG_RETURN_POINTER(result);
+
+}
index 4d69ba82d4ba4ac17ff7a94620455245b0a74b83..e63ebdc83eeec5ae6fd30d520339618602acfc8a 100644 (file)
@@ -3222,6 +3222,11 @@ CREATEFUNCTION bytea(geometry)
        AS '@MODULE_FILENAME@','LWGEOM_to_bytea'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
+CREATEFUNCTION text(bool)
+       RETURNS text
+       AS '@MODULE_FILENAME@','BOOL_to_text'
+       LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
+
 -- 7.3+ explicit casting definitions
 #if USE_VERSION >= 73
 CREATE CAST (geometry AS box2d) WITH FUNCTION box2d(geometry) AS IMPLICIT;
@@ -3237,6 +3242,7 @@ CREATE CAST (geometry AS text) WITH FUNCTION text(geometry) AS IMPLICIT;
 CREATE CAST (chip AS geometry) WITH FUNCTION geometry(chip) AS IMPLICIT;
 CREATE CAST (bytea AS geometry) WITH FUNCTION geometry(bytea) AS IMPLICIT;
 CREATE CAST (geometry AS bytea) WITH FUNCTION bytea(geometry) AS IMPLICIT;
+CREATE CAST (bool AS text) WITH FUNCTION text(bool) AS IMPLICIT;
 #endif
 
 ---------------------------------------------------------------