Mercurial > hg > monetdb-java
diff src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java @ 220:34f9ddd1a4e5
Corrected and extended output of DatabaseMetaData methods getTimeDateFunctions() and getSystemFunctions().
The Date/Time functions (curdate, current_date, current_time, current_timestamp, curtime, local_timezone, localtime, localtimestamp)
were returned by getSystemFunctions() but are now returned by getTimeDateFunctions().
getTimeDateFunctions() now also lists functions: date_to_str, extract, now, str_to_date, str_to_time, str_to_timestamp, time_to_str and timestamp_to_str.
author | Martin van Dinther <martin.van.dinther@monetdbsolutions.com> |
---|---|
date | Thu, 26 Apr 2018 19:13:06 +0200 (2018-04-26) |
parents | 4572f0694fde |
children | 75a5b5754020 |
line wrap: on
line diff
--- a/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java +++ b/src/main/java/nl/cwi/monetdb/jdbc/MonetDatabaseMetaData.java @@ -510,6 +510,9 @@ public class MonetDatabaseMetaData exten "WHERE \"id\" NOT IN (SELECT \"func_id\" FROM \"sys\".\"args\" WHERE \"number\" = 1)" + " AND \"id\" IN (SELECT \"function_id\" FROM \"sys\".\"systemfunctions\")" + " AND \"type\" = 1" + // only scalar functions + // exclude functions which belong to the 'mtime' module + " AND \"mod\" <> 'mtime'" + + " AND \"name\" NOT IN ('localtime', 'localtimestamp')" + // add system functions which are not listed in sys.functions but implemented in the SQL parser (see sql/server/sql_parser.y) " UNION SELECT 'cast'" + " UNION SELECT 'convert'" + @@ -523,9 +526,8 @@ public class MonetDatabaseMetaData exten @Override public String getTimeDateFunctions() { - String match = - "('date', 'time', 'timestamp', 'timetz', 'timestamptz', 'sec_interval', 'month_interval') )"; - return getConcatenatedStringFromQuery(FunctionsSelect + FunctionsWhere + match + AddFunctionsMaxMin + FunctionsOrderBy1); + String wherePart = "WHERE \"mod\" = 'mtime' OR \"name\" IN ('localtime', 'localtimestamp') UNION SELECT 'extract' UNION SELECT 'now'"; + return getConcatenatedStringFromQuery(FunctionsSelect + wherePart + AddFunctionsMaxMin + FunctionsOrderBy1); } /**