Changeset: ee061ab9ee32 for monetdb-java
URL: https://dev.monetdb.org/hg/monetdb-java/rev/ee061ab9ee32
Modified Files:
        ChangeLog
        src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java
Branch: default
Log Message:

Corrected DatabaseMetaData.getSQLKeywords() output.
It used to return all MonetDB SQL keywords, but now it excludes the SQL:2003 
keywords
as defined by the Java JDBC API specification.


diffs (76 lines):

diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,11 @@
 # ChangeLog file for monetdb-java
 # This file is updated with Maddlog
 
+* Thu Feb  9 2023 Martin van Dinther <[email protected]>
+- Corrected DatabaseMetaData.getSQLKeywords() output. It used to return
+  all MonetDB SQL keywords, but now it excludes the SQL:2003 keywords
+  as defined by the Java JDBC API specification.
+
 * Thu Jan 19 2023 Martin van Dinther <[email protected]>
 - Corrected DatabaseMetaData.getUDTs() output. It used to return rows
   for system types: inet, json, url and uuid. However those are not User
diff --git a/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java 
b/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java
--- a/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java
+++ b/src/main/java/org/monetdb/jdbc/MonetDatabaseMetaData.java
@@ -325,14 +325,53 @@ public final class MonetDatabaseMetaData
        }
 
        /**
-        * Get a comma separated list of all a database's SQL keywords that
-        * are NOT also SQL:2003 keywords.
+        * Retrieves a comma-separated list of all of this database's
+        * SQL keywords that are NOT also SQL:2003 keywords.
         *
-        * @return a comma separated list of MonetDB keywords
+        * @return a comma separated list of MonetDB keywords that are not also 
SQL:2003 keywords
         */
        @Override
        public String getSQLKeywords() {
-               final String keywords = getConcatenatedStringFromQuery("SELECT 
\"keyword\" FROM \"sys\".\"keywords\" ORDER BY 1");
+               final String keywords = getConcatenatedStringFromQuery(
+                       "SELECT \"keyword\" FROM \"sys\".\"keywords\" " +
+                       // exclude all SQL:2003 keywords
+                       "WHERE \"keyword\" NOT IN (" +
+                       
"'ABS','ALL','ALLOCATE','ALTER','AND','ANY','ARE','ARRAY','AS'," +
+                       
"'ASENSITIVE','ASYMMETRIC','AT','ATOMIC','AUTHORIZATION','AVG'," +
+                       
"'BEGIN','BETWEEN','BIGINT','BINARY','BLOB','BOOLEAN','BOTH','BY'," +
+                       
"'CALL','CALLED','CARDINALITY','CASCADED','CASE','CAST','CEIL','CEILING'," +
+                       
"'CHAR','CHARACTER','CHARACTER_LENGTH','CHAR_LENGTH','CHECK','CLOB'," +
+                       
"'CLOSE','COALESCE','COLLATE','COLLECT','COLUMN','COMMIT','CONDITION'," +
+                       
"'CONNECT','CONSTRAINT','CONVERT','CORR','CORRESPONDING','COUNT'," +
+                       
"'COVAR_POP','COVAR_SAMP','CREATE','CROSS','CUBE','CUME_DIST','CURRENT','CURRENT_DATE',"
 +
+                       
"'CURRENT_DEFAULT_TRANSFORM_GROUP','CURRENT_PATH','CURRENT_ROLE','CURRENT_TIME',"
 +
+                       
"'CURRENT_TIMESTAMP','CURRENT_TRANSFORM_GROUP_FOR_TYPE','CURRENT_USER','CURSOR','CYCLE',"
 +
+                       
"'DATE','DAY','DEALLOCATE','DEC','DECIMAL','DECLARE','DEFAULT','DELETE','DENSE_RANK','DEREF',"
 +
+                       
"'DESCRIBE','DETERMINISTIC','DISCONNECT','DISTINCT','DOUBLE','DROP','DYNAMIC'," 
+
+                       
"'EACH','ELEMENT','ELSE','END','END-EXEC','ESCAPE','EVERY','EXCEPT','EXEC','EXECUTE','EXISTS','EXP','EXTERNAL','EXTRACT',"
 +
+                       
"'FALSE','FETCH','FILTER','FLOAT','FLOOR','FOR','FOREIGN','FREE','FROM','FULL','FUNCTION','FUSION',"
 +
+                       
"'GET','GLOBAL','GRANT','GROUP','GROUPING','HAVING','HOLD','HOUR'," +
+                       
"'IDENTITY','IN','INDICATOR','INNER','INOUT','INSENSITIVE','INSERT'," +
+                       
"'INT','INTEGER','INTERSECT','INTERSECTION','INTERVAL','INTO','IS','JOIN'," +
+                       
"'LANGUAGE','LARGE','LATERAL','LEADING','LEFT','LIKE','LN','LOCAL','LOCALTIME','LOCALTIMESTAMP','LOWER',"
 +
+                       
"'MATCH','MAX','MEMBER','MERGE','METHOD','MIN','MINUTE','MOD','MODIFIES','MODULE','MONTH','MULTISET',"
 +
+                       
"'NATIONAL','NATURAL','NCHAR','NCLOB','NEW','NO','NONE','NORMALIZE','NOT','NULL','NULLIF','NUMERIC',"
 +
+                       
"'OCTET_LENGTH','OF','OLD','ON','ONLY','OPEN','OR','ORDER','OUT','OUTER','OVER','OVERLAPS','OVERLAY',"
 +
+                       
"'PARAMETER','PARTITION','PERCENTILE_CONT','PERCENTILE_DISC','PERCENT_RANK'," +
+                       
"'POSITION','POWER','PRECISION','PREPARE','PRIMARY','PROCEDURE'," +
+                       
"'RANGE','RANK','READS','REAL','RECURSIVE','REF','REFERENCES','REFERENCING'," +
+                       
"'REGR_AVGX','REGR_AVGY','REGR_COUNT','REGR_INTERCEPT','REGR_R2','REGR_SLOPE','REGR_SXX','REGR_SXY','REGR_SYY',"
 +
+                       
"'RELEASE','RESULT','RETURN','RETURNS','REVOKE','RIGHT','ROLLBACK','ROLLUP','ROW','ROWS','ROW_NUMBER',"
 +
+                       
"'SAVEPOINT','SCOPE','SCROLL','SEARCH','SECOND','SELECT','SENSITIVE','SESSION_USER','SET',"
 +
+                       
"'SIMILAR','SMALLINT','SOME','SPECIFIC','SPECIFICTYPE','SQL','SQLEXCEPTION','SQLSTATE','SQLWARNING',"
 +
+                       
"'SQRT','START','STATIC','STDDEV_POP','STDDEV_SAMP','SUBMULTISET','SUBSTRING','SUM',"
 +
+                       "'SYMMETRIC','SYSTEM','SYSTEM_USER'," +
+                       
"'TABLE','TABLESAMPLE','THEN','TIME','TIMESTAMP','TIMEZONE_HOUR','TIMEZONE_MINUTE',"
 +
+                       
"'TO','TRAILING','TRANSLATE','TRANSLATION','TREAT','TRIGGER','TRIM','TRUE'," +
+                       
"'UESCAPE','UNION','UNIQUE','UNKNOWN','UNNEST','UPDATE','UPPER','USER','USING',"
 +
+                       
"'VALUE','VALUES','VARCHAR','VARYING','VAR_POP','VAR_SAMP'," +
+                       
"'WHEN','WHENEVER','WHERE','WIDTH_BUCKET','WINDOW','WITH','WITHIN','WITHOUT','YEAR'"
 +
+                       ") ORDER BY 1");
 
                /* An old MonetDB server (pre Jul2015 release) will not have a 
table sys.keywords and return an empty String */
                return (keywords.isEmpty()) ?
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to