mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			105 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			MySQL
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			MySQL
		
	
	
	
	
	
-- SQL code to define the new string I/O functions
 | 
						|
 | 
						|
-- This is not needed because escapes are handled by the parser
 | 
						|
--
 | 
						|
-- create function c_textin(opaque)
 | 
						|
--   returns text
 | 
						|
--   as 'MODULE_PATHNAME' 
 | 
						|
--   language 'c';
 | 
						|
 | 
						|
create function c_charout(opaque) returns int4
 | 
						|
  as 'MODULE_PATHNAME' 
 | 
						|
  language 'c';
 | 
						|
 | 
						|
create function c_char2out(opaque) returns int4
 | 
						|
  as 'MODULE_PATHNAME' 
 | 
						|
  language 'c';
 | 
						|
 | 
						|
create function c_char4out(opaque) returns int4
 | 
						|
  as 'MODULE_PATHNAME' 
 | 
						|
  language 'c';
 | 
						|
 | 
						|
create function c_char8out(opaque) returns int4
 | 
						|
  as 'MODULE_PATHNAME' 
 | 
						|
  language 'c';
 | 
						|
 | 
						|
create function c_char16out(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';
 | 
						|
 | 
						|
 | 
						|
-- 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';
 | 
						|
 | 
						|
 | 
						|
-- Use these if you want do the updates 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';
 | 
						|
 | 
						|
-- end of file
 |