Code

CData: Added support for a type modifier.
[postrr.git] / src / postrr.sql.in
index 22ce15ca3eaa2affab83f5188a30a25244fa63b2..cf24fced1003d0d4f57d92165c5a19e37ad664d9 100644 (file)
@@ -219,14 +219,35 @@ CREATE OR REPLACE FUNCTION CData_out(CData)
        AS 'postrr-@POSTRR_MAJOR_VERSION@.@POSTRR_MINOR_VERSION@', 'cdata_out'
        LANGUAGE 'C' IMMUTABLE STRICT;
 
+CREATE OR REPLACE FUNCTION CData_typmodin(cstring[])
+       RETURNS integer
+       AS 'postrr-@POSTRR_MAJOR_VERSION@.@POSTRR_MINOR_VERSION@', 'cdata_typmodin'
+       LANGUAGE 'C' IMMUTABLE STRICT;
+
+CREATE OR REPLACE FUNCTION CData_typmodout(integer)
+       RETURNS cstring
+       AS 'postrr-@POSTRR_MAJOR_VERSION@.@POSTRR_MINOR_VERSION@', 'cdata_typmodout'
+       LANGUAGE 'C' IMMUTABLE STRICT;
+
 CREATE TYPE CData (
        INTERNALLENGTH = 24,
        INPUT          = CData_in,
        OUTPUT         = CData_out,
+       TYPMOD_IN      = CData_typmodin,
+       TYPMOD_OUT     = CData_typmodout,
        ALIGNMENT      = double,
        STORAGE        = plain
 );
 
+CREATE OR REPLACE FUNCTION CData(cdata, integer, boolean)
+       RETURNS cdata
+       AS 'postrr-@POSTRR_MAJOR_VERSION@.@POSTRR_MINOR_VERSION@', 'cdata_to_cdata'
+       LANGUAGE 'C' IMMUTABLE STRICT;
+
+CREATE CAST (cdata AS cdata)
+       WITH FUNCTION CData(cdata, integer, boolean)
+       AS IMPLICIT;
+
 COMMIT;
 
 SET client_min_messages TO DEFAULT;