mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Internal functions to support newest ODBC driver {fn ...} conventions.
Includes compiled code to support pre-7.0 backends, but for 7.0 only requires executing odbc.sql.
This commit is contained in:
162
contrib/odbc/odbc-pre7.source
Normal file
162
contrib/odbc/odbc-pre7.source
Normal file
@ -0,0 +1,162 @@
|
||||
-- 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
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user