mirror of
				https://github.com/postgres/postgres.git
				synced 2025-10-29 22:49:41 +03:00 
			
		
		
		
	Includes compiled code to support pre-7.0 backends, but for 7.0 only requires executing odbc.sql.
		
			
				
	
	
		
			163 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| -- ODBC-pre7.sql
 | |
| --
 | |
| -- Use float8 rather than float(15) since pre-7.0 does not accept
 | |
| -- SQL92 type names of this form in the CREATE FUNCTION command.
 | |
| --
 | |
| 
 | |
| --
 | |
| -- Character string manipulation
 | |
| --
 | |
| 
 | |
| --
 | |
| -- Compatibility functions for pre-v7.0.
 | |
| -- These should be applied to pre-v7.0 databases
 | |
| -- when using the v7.0 ODBC driver.
 | |
| --
 | |
| 
 | |
| CREATE FUNCTION char_length(text)
 | |
|     RETURNS integer
 | |
|     AS 'SELECT length(CAST($1 AS text))'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| CREATE FUNCTION pow(float8)
 | |
|     RETURNS float8
 | |
|     AS 'SELECT dpow($1)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| --
 | |
| -- Extensions for ODBC compliance in v7.0.
 | |
| -- In the current driver, ODBC functions must map directly into a
 | |
| -- Postgres function. So in some cases we must create a compatible
 | |
| -- function.
 | |
| --
 | |
| 
 | |
| CREATE FUNCTION ascii(text)
 | |
|     RETURNS integer
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'ascii'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION ichar(integer)
 | |
|     RETURNS char(1)
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'ichar'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION insert(text, integer, integer, text)
 | |
|     RETURNS text
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'insert'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| -- replace all occurences of $2 with $3
 | |
| CREATE FUNCTION replace(text, text, text)
 | |
|     RETURNS text
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'replace'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| -- return the string repeated n times
 | |
| CREATE FUNCTION repeat(text, integer)
 | |
|     RETURNS text
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'repeat'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| --
 | |
| -- Mathematical functions for pre-v7.0
 | |
| --
 | |
| 
 | |
| CREATE FUNCTION dround(float8)
 | |
|     RETURNS float8
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'dround'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION round(float8)
 | |
|     RETURNS float8
 | |
|     AS 'SELECT dround($1)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| --
 | |
| -- Math functions present in backend, but not in catalog for v7.0
 | |
| --
 | |
| 
 | |
| CREATE FUNCTION acos(float8)
 | |
|     RETURNS float8
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'dacos'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION asin(float8)
 | |
|     RETURNS float8
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'dasin'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION atan(float8)
 | |
|     RETURNS float8
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'datan'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION atan2(float8,float8)
 | |
|     RETURNS float8
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'datan2'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION cos(float8)
 | |
|     RETURNS float8
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'dcos'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION cot(float8)
 | |
|     RETURNS float8
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'dcot'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION sin(float8)
 | |
|     RETURNS float8
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'dsin'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION dtan(float8)
 | |
|     RETURNS float8
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'dtan'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION degrees(float8)
 | |
|     RETURNS float8
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'degrees'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION pi()
 | |
|     RETURNS float8
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'dpi'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION radians(float8)
 | |
|     RETURNS float8
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'radians'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| -- random number generator currently requires RAND_MAX be available
 | |
| CREATE FUNCTION random()
 | |
|     RETURNS float8
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_', 'drandom'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE FUNCTION truncate(numeric,integer)
 | |
|     RETURNS numeric
 | |
|     AS 'SELECT trunc($1, $2)'
 | |
|     LANGUAGE 'SQL';
 | |
| 
 | |
| --
 | |
| -- Date/time functions for v7.0
 | |
| --
 | |
| 
 | |
| CREATE FUNCTION interval_mul(interval,float8)
 | |
|     RETURNS interval
 | |
|     AS '_OBJWD_/odbc_DLSUFFIX_'
 | |
|     LANGUAGE 'C';
 | |
| 
 | |
| CREATE OPERATOR * (
 | |
|     LEFTARG = interval,
 | |
|     RIGHTARG = float8,
 | |
|     PROCEDURE = interval_mul
 | |
| );
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |