aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas G. Lockhart <lockhart@fourpalms.org>2001-12-10 00:01:14 +0000
committerThomas G. Lockhart <lockhart@fourpalms.org>2001-12-10 00:01:14 +0000
commitabbd64cddf6e2cf871d576dea28e80365ac28e79 (patch)
tree7bb8ef111e198a1746239cae0d999276b10186b2 /src
parenta4420c497039c5cba5eae332ccee4830d9879f3c (diff)
downloadpostgresql-abbd64cddf6e2cf871d576dea28e80365ac28e79.tar.gz
postgresql-abbd64cddf6e2cf871d576dea28e80365ac28e79.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/interfaces/odbc/convert.c10
-rw-r--r--src/interfaces/odbc/odbc.sql34
2 files changed, 43 insertions, 1 deletions
diff --git a/src/interfaces/odbc/convert.c b/src/interfaces/odbc/convert.c
index 59dab209f7b..6072ffc103d 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 381d2809dea..e44618169dc 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:
-- <http://msdn.microsoft.com/library/en-us/odbc/htm/odbcscalar_functions.asp>
@@ -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;