From abbd64cddf6e2cf871d576dea28e80365ac28e79 Mon Sep 17 00:00:00 2001 From: "Thomas G. Lockhart" Date: Mon, 10 Dec 2001 00:01:14 +0000 Subject: [PATCH] Support ODBC-style CURRENT_TIME, CURRENT_USER, etc with trailing empty parens. This is not SQL spec syntax, so later we will remove this extension from gram.y. --- src/interfaces/odbc/convert.c | 10 ++++++++++ src/interfaces/odbc/odbc.sql | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/src/interfaces/odbc/convert.c b/src/interfaces/odbc/convert.c index 59dab209f7..6072ffc103 100644 --- a/src/interfaces/odbc/convert.c +++ b/src/interfaces/odbc/convert.c @@ -94,6 +94,16 @@ char *mapFuncs[][2] = { /* { "TAN", "tan" }, */ {"TRUNCATE", "trunc"}, + {"CURRENT_DATE", "curdate"}, + {"CURRENT_TIME", "curtime"}, + {"CURRENT_TIMESTAMP", "odbc_timestamp"}, + {"CURRENT_USER", "odbc_current_user"}, + {"SESSION_USER", "odbc_session_user"}, + {"CURRENT_DATE", "curdate"}, + {"CURRENT_TIME", "curtime"}, + {"CURRENT_TIMESTAMP", "odbc_timestamp"}, + {"CURRENT_USER", "odbc_current_user"}, + {"SESSION_USER", "odbc_session_user"}, /* { "CURDATE", "curdate" }, */ /* { "CURTIME", "curtime" }, */ /* { "DAYNAME", "dayname" }, */ diff --git a/src/interfaces/odbc/odbc.sql b/src/interfaces/odbc/odbc.sql index 381d2809de..e44618169d 100644 --- a/src/interfaces/odbc/odbc.sql +++ b/src/interfaces/odbc/odbc.sql @@ -1,5 +1,5 @@ -- PostgreSQL catalog extensions for ODBC compatibility --- $Header: /cvsroot/pgsql/src/interfaces/odbc/Attic/odbc.sql,v 1.4 2001/12/02 11:36:04 petere Exp $ +-- $Header: /cvsroot/pgsql/src/interfaces/odbc/Attic/odbc.sql,v 1.5 2001/12/10 00:01:14 thomas Exp $ -- ODBC functions are described here: -- @@ -141,6 +141,14 @@ CREATE OR REPLACE FUNCTION curtime() RETURNS time with time zone AS ' SELECT current_time; ' LANGUAGE SQL; +CREATE OR REPLACE FUNCTION odbc_timestamp() RETURNS timestamp with time zone AS ' + SELECT current_timestamp; +' LANGUAGE SQL; + +CREATE OR REPLACE FUNCTION odbc_timestamp() RETURNS timestamp with time zone AS ' + SELECT current_timestamp; +' LANGUAGE SQL; + CREATE OR REPLACE FUNCTION dayname(timestamp) RETURNS text AS ' SELECT to_char($1,''Day''); ' LANGUAGE SQL; @@ -206,7 +214,31 @@ CREATE OR REPLACE FUNCTION year(timestamp) RETURNS integer AS ' -- System Functions + +CREATE OR REPLACE FUNCTION odbc_user() RETURNS text AS ' + SELECT CAST(current_user AS TEXT); +' LANGUAGE SQL; + +CREATE OR REPLACE FUNCTION odbc_current_user() RETURNS text AS ' + SELECT CAST(current_user AS TEXT); +' LANGUAGE SQL; + +CREATE OR REPLACE FUNCTION odbc_session_user() RETURNS text AS ' + SELECT CAST(session_user AS TEXT); +' LANGUAGE SQL; -- ++++++++++++++++ -- -- Built-in: USER -- Missing: DATABASE, IFNULL + +CREATE OR REPLACE FUNCTION odbc_user() RETURNS text AS ' + SELECT CAST(current_user AS TEXT); +' LANGUAGE SQL; + +CREATE OR REPLACE FUNCTION odbc_current_user() RETURNS text AS ' + SELECT CAST(current_user AS TEXT); +' LANGUAGE SQL; + +CREATE OR REPLACE FUNCTION odbc_session_user() RETURNS text AS ' + SELECT CAST(session_user AS TEXT); +' LANGUAGE SQL;