string_io.sql.in
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:3k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. -- string_io.sql --
  2. --
  3. -- SQL code to define the new string I/O functions
  4. --
  5. -- Copyright (c) 1998, Massimo Dal Zotto <dz@cs.unitn.it>
  6. --
  7. -- This file is distributed under the GNU General Public License
  8. -- either version 2, or (at your option) any later version.
  9. -- Define the new output functions.
  10. --
  11. create function c_charout(opaque) returns int4
  12.   as 'MODULE_PATHNAME' 
  13.   language 'c';
  14. create function c_textout(opaque) returns int4
  15.   as 'MODULE_PATHNAME' 
  16.   language 'c';
  17. create function c_varcharout(opaque) returns int4
  18.   as 'MODULE_PATHNAME' 
  19.   language 'c';
  20. -- This is not needed because escapes are handled by the parser
  21. --
  22. -- create function c_textin(opaque)
  23. --   returns text
  24. --   as 'MODULE_PATHNAME' 
  25. --   language 'c';
  26. -- Define a function which sets the new output routines for char types.
  27. --
  28. --   select c_mode();
  29. --
  30. create function c_mode() returns text
  31.   as 'update pg_type set typoutput=''c_textout''    where typname=''SET'';
  32.       update pg_type set typoutput=''c_varcharout'' where typname=''bpchar'';
  33.       update pg_type set typoutput=''c_textout''    where typname=''bytea'';
  34.       update pg_type set typoutput=''c_charout''    where typname=''char'';
  35.       update pg_type set typoutput=''c_textout''    where typname=''text'';
  36.       update pg_type set typoutput=''c_textout''    where typname=''unknown'';
  37.       update pg_type set typoutput=''c_varcharout'' where typname=''varchar'';
  38.       select ''c_mode''::text;'
  39.   language 'sql';
  40. -- Define a function which restores the standard routines for char types.
  41. --
  42. --   select pg_mode();
  43. --
  44. create function pg_mode() returns text
  45.   as 'update pg_type set typoutput=''textout''    where typname=''SET'';
  46.       update pg_type set typoutput=''varcharout'' where typname=''bpchar'';
  47.       update pg_type set typoutput=''textout''    where typname=''bytea'';
  48.       update pg_type set typoutput=''charout''    where typname=''char'';
  49.       update pg_type set typoutput=''textout''    where typname=''text'';
  50.       update pg_type set typoutput=''textout''    where typname=''unknown'';
  51.       update pg_type set typoutput=''varcharout'' where typname=''varchar'';
  52.       select ''pg_mode''::text;'
  53.   language 'sql';
  54. -- Use these to do the changes manually.
  55. --
  56. -- update pg_type set typoutput='textout'    where typname='SET';
  57. -- update pg_type set typoutput='varcharout' where typname='bpchar';
  58. -- update pg_type set typoutput='textout'    where typname='bytea';
  59. -- update pg_type set typoutput='charout'    where typname='char';
  60. -- update pg_type set typoutput='textout'    where typname='text';
  61. -- update pg_type set typoutput='textout'    where typname='unknown';
  62. -- update pg_type set typoutput='varcharout' where typname='varchar';
  63. --
  64. -- update pg_type set typoutput='c_textout'    where typname='SET';
  65. -- update pg_type set typoutput='c_varcharout' where typname='bpchar';
  66. -- update pg_type set typoutput='c_textout'    where typname='bytea';
  67. -- update pg_type set typoutput='c_charout'    where typname='char';
  68. -- update pg_type set typoutput='c_textout'    where typname='text';
  69. -- update pg_type set typoutput='c_textout'    where typname='unknown';
  70. -- update pg_type set typoutput='c_varcharout' where typname='varchar';
  71. -- end of file