aboutsummaryrefslogtreecommitdiff
path: root/contrib/string/string_io.sql
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/string/string_io.sql')
-rw-r--r--contrib/string/string_io.sql111
1 files changed, 111 insertions, 0 deletions
diff --git a/contrib/string/string_io.sql b/contrib/string/string_io.sql
new file mode 100644
index 00000000000..011371707d5
--- /dev/null
+++ b/contrib/string/string_io.sql
@@ -0,0 +1,111 @@
+
+- - -- 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';
+