mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-06 15:24:56 +08:00
112 lines
4.7 KiB
SQL
112 lines
4.7 KiB
SQL
|
|
- - -- load the new functions
|
|
- - --
|
|
load '/home/dz/lib/postgres/string_output.so';
|
|
|
|
- - -- create function c_textin(opaque)
|
|
- - -- returns text
|
|
- - -- as '/home/dz/lib/postgres/string_output.so'
|
|
- - -- language 'c';
|
|
|
|
create function c_charout(opaque)
|
|
returns int4
|
|
as '/home/dz/lib/postgres/string_output.so'
|
|
language 'c';
|
|
|
|
create function c_char2out(opaque)
|
|
returns int4
|
|
as '/home/dz/lib/postgres/string_output.so'
|
|
language 'c';
|
|
|
|
create function c_char4out(opaque)
|
|
returns int4
|
|
as '/home/dz/lib/postgres/string_output.so'
|
|
language 'c';
|
|
|
|
create function c_char8out(opaque)
|
|
returns int4
|
|
as '/home/dz/lib/postgres/string_output.so'
|
|
language 'c';
|
|
|
|
create function c_char16out(opaque)
|
|
returns int4
|
|
as '/home/dz/lib/postgres/string_output.so'
|
|
language 'c';
|
|
|
|
create function c_textout(opaque)
|
|
returns int4
|
|
as '/home/dz/lib/postgres/string_output.so'
|
|
language 'c';
|
|
|
|
create function c_varcharout(opaque)
|
|
returns int4
|
|
as '/home/dz/lib/postgres/string_output.so'
|
|
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_charout'' where typname=''char''\;
|
|
update pg_type set typoutput=''c_char2out'' where typname=''char2''\;
|
|
update pg_type set typoutput=''c_char4out'' where typname=''char4''\;
|
|
update pg_type set typoutput=''c_char8out'' where typname=''char8''\;
|
|
update pg_type set typoutput=''c_char16out'' where typname=''char16''\;
|
|
update pg_type set typoutput=''c_textout'' where typname=''text''\;
|
|
update pg_type set typoutput=''c_textout'' where typname=''bytea''\;
|
|
update pg_type set typoutput=''c_textout'' where typname=''unknown''\;
|
|
update pg_type set typoutput=''c_textout'' where typname=''SET''\;
|
|
update pg_type set typoutput=''c_varcharout'' where typname=''varchar''\;
|
|
update pg_type set typoutput=''c_varcharout'' where typname=''bpchar''\;
|
|
select ''c_mode''::text'
|
|
language 'sql';
|
|
|
|
- - -- define a function which restores the original routines for char types
|
|
- - --
|
|
- - -- select pg_mode();
|
|
- - --
|
|
create function pg_mode()
|
|
returns text
|
|
as 'update pg_type set typoutput=''charout'' where typname=''char''\;
|
|
update pg_type set typoutput=''char2out'' where typname=''char2''\;
|
|
update pg_type set typoutput=''char4out'' where typname=''char4''\;
|
|
update pg_type set typoutput=''char8out'' where typname=''char8''\;
|
|
update pg_type set typoutput=''char16out'' where typname=''char16''\;
|
|
update pg_type set typoutput=''textout'' where typname=''text''\;
|
|
update pg_type set typoutput=''textout'' where typname=''bytea''\;
|
|
update pg_type set typoutput=''textout'' where typname=''unknown''\;
|
|
update pg_type set typoutput=''textout'' where typname=''SET''\;
|
|
update pg_type set typoutput=''varcharout'' where typname=''varchar''\;
|
|
update pg_type set typoutput=''varcharout'' where typname=''bpchar''\;
|
|
select ''pg_mode''::text'
|
|
language 'sql';
|
|
|
|
- - -- or do the changes manually
|
|
- - --
|
|
- - -- update pg_type set typoutput='charout' where typname='char';
|
|
- - -- update pg_type set typoutput='char2out' where typname='char2';
|
|
- - -- update pg_type set typoutput='char4out' where typname='char4';
|
|
- - -- update pg_type set typoutput='char8out' where typname='char8';
|
|
- - -- update pg_type set typoutput='char16out' where typname='char16';
|
|
- - -- update pg_type set typoutput='textout' where typname='text';
|
|
- - -- update pg_type set typoutput='textout' where typname='bytea';
|
|
- - -- update pg_type set typoutput='textout' where typname='unknown';
|
|
- - -- update pg_type set typoutput='textout' where typname='SET';
|
|
- - -- update pg_type set typoutput='varcharout' where typname='varchar';
|
|
- - -- update pg_type set typoutput='varcharout' where typname='bpchar';
|
|
- - --
|
|
- - -- update pg_type set typoutput='c_charout' where typname='char';
|
|
- - -- update pg_type set typoutput='c_char2out' where typname='char2';
|
|
- - -- update pg_type set typoutput='c_char4out' where typname='char4';
|
|
- - -- update pg_type set typoutput='c_char8out' where typname='char8';
|
|
- - -- update pg_type set typoutput='c_char16out' where typname='char16';
|
|
- - -- update pg_type set typoutput='c_textout' where typname='text';
|
|
- - -- update pg_type set typoutput='c_textout' where typname='bytea';
|
|
- - -- update pg_type set typoutput='c_textout' where typname='unknown';
|
|
- - -- update pg_type set typoutput='c_textout' where typname='SET';
|
|
- - -- update pg_type set typoutput='c_varcharout' where typname='varchar';
|
|
- - -- update pg_type set typoutput='c_varcharout' where typname='bpchar';
|
|
|