-- string_io.sql -- -- -- SQL code to define the new string I/O functions -- -- Copyright (c) 1998, Massimo Dal Zotto -- -- This file is distributed under the GNU General Public License -- either version 2, or (at your option) any later version. -- Define the new output functions. -- create function c_charout(opaque) returns int4 as 'MODULE_PATHNAME' language 'c'; create function c_textout(opaque) returns int4 as 'MODULE_PATHNAME' language 'c'; create function c_varcharout(opaque) returns int4 as 'MODULE_PATHNAME' language 'c'; -- This is not needed because escapes are handled by the parser -- -- create function c_textin(opaque) -- returns text -- as 'MODULE_PATHNAME' -- language 'c'; -- Define a function which sets the new output routines for char types. -- -- select c_mode(); -- create function c_mode() returns text as 'update pg_type set typoutput=''c_textout'' where typname=''SET''; update pg_type set typoutput=''c_varcharout'' where typname=''bpchar''; update pg_type set typoutput=''c_textout'' where typname=''bytea''; update pg_type set typoutput=''c_charout'' where typname=''char''; update pg_type set typoutput=''c_textout'' where typname=''text''; update pg_type set typoutput=''c_textout'' where typname=''unknown''; update pg_type set typoutput=''c_varcharout'' where typname=''varchar''; select ''c_mode''::text' language 'sql'; -- Define a function which restores the standard routines for char types. -- -- select pg_mode(); -- create function pg_mode() returns text as 'update pg_type set typoutput=''textout'' where typname=''SET''; update pg_type set typoutput=''varcharout'' where typname=''bpchar''; update pg_type set typoutput=''textout'' where typname=''bytea''; update pg_type set typoutput=''charout'' where typname=''char''; update pg_type set typoutput=''textout'' where typname=''text''; update pg_type set typoutput=''textout'' where typname=''unknown''; update pg_type set typoutput=''varcharout'' where typname=''varchar''; select ''pg_mode''::text' language 'sql'; -- Use these to do the changes manually. -- -- update pg_type set typoutput='textout' where typname='SET'; -- update pg_type set typoutput='varcharout' where typname='bpchar'; -- update pg_type set typoutput='textout' where typname='bytea'; -- update pg_type set typoutput='charout' where typname='char'; -- update pg_type set typoutput='textout' where typname='text'; -- update pg_type set typoutput='textout' where typname='unknown'; -- update pg_type set typoutput='varcharout' where typname='varchar'; -- -- update pg_type set typoutput='c_textout' where typname='SET'; -- update pg_type set typoutput='c_varcharout' where typname='bpchar'; -- update pg_type set typoutput='c_textout' where typname='bytea'; -- update pg_type set typoutput='c_charout' where typname='char'; -- update pg_type set typoutput='c_textout' where typname='text'; -- update pg_type set typoutput='c_textout' where typname='unknown'; -- update pg_type set typoutput='c_varcharout' where typname='varchar'; -- end of file