HHH-16430 Simplify construction of set of ansiSQL2003 keywords

This commit is contained in:
Sanne Grinovero 2023-04-03 15:24:27 +01:00 committed by Sanne Grinovero
parent 8e1247c909
commit 049a25aa66
1 changed files with 245 additions and 248 deletions

View File

@ -6,8 +6,6 @@
*/
package org.hibernate.engine.jdbc.env.spi;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
/**
@ -16,6 +14,7 @@ import java.util.Set;
* @author Steve Ebersole
*/
public final class AnsiSqlKeywords {
/**
* Singleton access
*/
@ -24,252 +23,250 @@ public final class AnsiSqlKeywords {
private final Set<String> keywordsSql2003;
private AnsiSqlKeywords() {
final Set<String> keywordsSql2003 = new HashSet<>();
keywordsSql2003.add( "ADD" );
keywordsSql2003.add( "ALL" );
keywordsSql2003.add( "ALLOCATE" );
keywordsSql2003.add( "ALTER" );
keywordsSql2003.add( "AND" );
keywordsSql2003.add( "ANY" );
keywordsSql2003.add( "ARE" );
keywordsSql2003.add( "ARRAY" );
keywordsSql2003.add( "AS" );
keywordsSql2003.add( "ASENSITIVE" );
keywordsSql2003.add( "ASYMMETRIC" );
keywordsSql2003.add( "AT" );
keywordsSql2003.add( "ATOMIC" );
keywordsSql2003.add( "AUTHORIZATION" );
keywordsSql2003.add( "BEGIN" );
keywordsSql2003.add( "BETWEEN" );
keywordsSql2003.add( "BIGINT" );
keywordsSql2003.add( "BLOB" );
keywordsSql2003.add( "BINARY" );
keywordsSql2003.add( "BOTH" );
keywordsSql2003.add( "BY" );
keywordsSql2003.add( "CALL" );
keywordsSql2003.add( "CALLED" );
keywordsSql2003.add( "CASCADED" );
keywordsSql2003.add( "CASE" );
keywordsSql2003.add( "CAST" );
keywordsSql2003.add( "CHAR" );
keywordsSql2003.add( "CHARACTER" );
keywordsSql2003.add( "CHECK" );
keywordsSql2003.add( "CLOB" );
keywordsSql2003.add( "CLOSE" );
keywordsSql2003.add( "COLLATE" );
keywordsSql2003.add( "COLUMN" );
keywordsSql2003.add( "COMMIT" );
keywordsSql2003.add( "CONDITION" );
keywordsSql2003.add( "CONNECT" );
keywordsSql2003.add( "CONSTRAINT" );
keywordsSql2003.add( "CONTINUE" );
keywordsSql2003.add( "CORRESPONDING" );
keywordsSql2003.add( "CREATE" );
keywordsSql2003.add( "CROSS" );
keywordsSql2003.add( "CUBE" );
keywordsSql2003.add( "CURRENT" );
keywordsSql2003.add( "CURRENT_DATE" );
keywordsSql2003.add( "CURRENT_PATH" );
keywordsSql2003.add( "CURRENT_ROLE" );
keywordsSql2003.add( "CURRENT_TIME" );
keywordsSql2003.add( "CURRENT_TIMESTAMP" );
keywordsSql2003.add( "CURRENT_USER" );
keywordsSql2003.add( "CURSOR" );
keywordsSql2003.add( "CYCLE" );
keywordsSql2003.add( "DATE" );
keywordsSql2003.add( "DAY" );
keywordsSql2003.add( "DEALLOCATE" );
keywordsSql2003.add( "DEC" );
keywordsSql2003.add( "DECIMAL" );
keywordsSql2003.add( "DECLARE" );
keywordsSql2003.add( "DEFAULT" );
keywordsSql2003.add( "DELETE" );
keywordsSql2003.add( "DEREF" );
keywordsSql2003.add( "DESCRIBE" );
keywordsSql2003.add( "DETERMINISTIC" );
keywordsSql2003.add( "DISCONNECT" );
keywordsSql2003.add( "DISTINCT" );
keywordsSql2003.add( "DO" );
keywordsSql2003.add( "DOUBLE" );
keywordsSql2003.add( "DROP" );
keywordsSql2003.add( "DYNAMIC" );
keywordsSql2003.add( "EACH" );
keywordsSql2003.add( "ELEMENT" );
keywordsSql2003.add( "ELSE" );
keywordsSql2003.add( "ELSIF" );
keywordsSql2003.add( "END" );
keywordsSql2003.add( "ESCAPE" );
keywordsSql2003.add( "EXCEPT" );
keywordsSql2003.add( "EXEC" );
keywordsSql2003.add( "EXECUTE" );
keywordsSql2003.add( "EXISTS" );
keywordsSql2003.add( "EXIT" );
keywordsSql2003.add( "EXTERNAL" );
keywordsSql2003.add( "FALSE" );
keywordsSql2003.add( "FETCH" );
keywordsSql2003.add( "FILTER" );
keywordsSql2003.add( "FLOAT" );
keywordsSql2003.add( "FOR" );
keywordsSql2003.add( "FOREIGN" );
keywordsSql2003.add( "FREE" );
keywordsSql2003.add( "FROM" );
keywordsSql2003.add( "FULL" );
keywordsSql2003.add( "FUNCTION" );
keywordsSql2003.add( "GET" );
keywordsSql2003.add( "GLOBAL" );
keywordsSql2003.add( "GRANT" );
keywordsSql2003.add( "GROUP" );
keywordsSql2003.add( "GROUPING" );
keywordsSql2003.add( "HANDLER" );
keywordsSql2003.add( "HAVING" );
keywordsSql2003.add( "HOLD" );
keywordsSql2003.add( "HOUR" );
keywordsSql2003.add( "IDENTITY" );
keywordsSql2003.add( "IF" );
keywordsSql2003.add( "IMMEDIATE" );
keywordsSql2003.add( "IN" );
keywordsSql2003.add( "INDICATOR" );
keywordsSql2003.add( "INNER" );
keywordsSql2003.add( "INOUT" );
keywordsSql2003.add( "INPUT" );
keywordsSql2003.add( "INSENSITIVE" );
keywordsSql2003.add( "INSERT" );
keywordsSql2003.add( "INT" );
keywordsSql2003.add( "INTEGER" );
keywordsSql2003.add( "INTERSECT" );
keywordsSql2003.add( "INTERVAL" );
keywordsSql2003.add( "INTO" );
keywordsSql2003.add( "IS" );
keywordsSql2003.add( "ITERATE" );
keywordsSql2003.add( "JOIN" );
keywordsSql2003.add( "LANGUAGE" );
keywordsSql2003.add( "LARGE" );
keywordsSql2003.add( "LATERAL" );
keywordsSql2003.add( "LEADING" );
keywordsSql2003.add( "LEAVE" );
keywordsSql2003.add( "LEFT" );
keywordsSql2003.add( "LIKE" );
keywordsSql2003.add( "LOCAL" );
keywordsSql2003.add( "LOCALTIME" );
keywordsSql2003.add( "LOCALTIMESTAMP" );
keywordsSql2003.add( "LOOP" );
keywordsSql2003.add( "MATCH" );
keywordsSql2003.add( "MEMBER" );
keywordsSql2003.add( "MERGE" );
keywordsSql2003.add( "METHOD" );
keywordsSql2003.add( "MINUTE" );
keywordsSql2003.add( "MODIFIES" );
keywordsSql2003.add( "MODULE" );
keywordsSql2003.add( "MONTH" );
keywordsSql2003.add( "MULTISET" );
keywordsSql2003.add( "NATIONAL" );
keywordsSql2003.add( "NATURAL" );
keywordsSql2003.add( "NCHAR" );
keywordsSql2003.add( "NCLOB" );
keywordsSql2003.add( "NEW" );
keywordsSql2003.add( "NO" );
keywordsSql2003.add( "NONE" );
keywordsSql2003.add( "NOT" );
keywordsSql2003.add( "NULL" );
keywordsSql2003.add( "NUMERIC" );
keywordsSql2003.add( "OF" );
keywordsSql2003.add( "OLD" );
keywordsSql2003.add( "ON" );
keywordsSql2003.add( "ONLY" );
keywordsSql2003.add( "OPEN" );
keywordsSql2003.add( "OR" );
keywordsSql2003.add( "ORDER" );
keywordsSql2003.add( "OUT" );
keywordsSql2003.add( "OUTER" );
keywordsSql2003.add( "OUTPUT" );
keywordsSql2003.add( "OVER" );
keywordsSql2003.add( "OVERLAPS" );
keywordsSql2003.add( "PARAMETER" );
keywordsSql2003.add( "PARTITION" );
keywordsSql2003.add( "PRECISION" );
keywordsSql2003.add( "PREPARE" );
keywordsSql2003.add( "PRIMARY" );
keywordsSql2003.add( "PROCEDURE" );
keywordsSql2003.add( "RANGE" );
keywordsSql2003.add( "READS" );
keywordsSql2003.add( "REAL" );
keywordsSql2003.add( "RECURSIVE" );
keywordsSql2003.add( "REF" );
keywordsSql2003.add( "REFERENCES" );
keywordsSql2003.add( "REFERENCING" );
keywordsSql2003.add( "RELEASE" );
keywordsSql2003.add( "REPEAT" );
keywordsSql2003.add( "RESIGNAL" );
keywordsSql2003.add( "RESULT" );
keywordsSql2003.add( "RETURN" );
keywordsSql2003.add( "RETURNS" );
keywordsSql2003.add( "REVOKE" );
keywordsSql2003.add( "RIGHT" );
keywordsSql2003.add( "ROLLBACK" );
keywordsSql2003.add( "ROLLUP" );
keywordsSql2003.add( "ROW" );
keywordsSql2003.add( "ROWS" );
keywordsSql2003.add( "SAVEPOINT" );
keywordsSql2003.add( "SCROLL" );
keywordsSql2003.add( "SEARCH" );
keywordsSql2003.add( "SECOND" );
keywordsSql2003.add( "SELECT" );
keywordsSql2003.add( "SENSITIVE" );
keywordsSql2003.add( "SESSION_USE" );
keywordsSql2003.add( "SET" );
keywordsSql2003.add( "SIGNAL" );
keywordsSql2003.add( "SIMILAR" );
keywordsSql2003.add( "SMALLINT" );
keywordsSql2003.add( "SOME" );
keywordsSql2003.add( "SPECIFIC" );
keywordsSql2003.add( "SPECIFICTYPE" );
keywordsSql2003.add( "SQL" );
keywordsSql2003.add( "SQLEXCEPTION" );
keywordsSql2003.add( "SQLSTATE" );
keywordsSql2003.add( "SQLWARNING" );
keywordsSql2003.add( "START" );
keywordsSql2003.add( "STATIC" );
keywordsSql2003.add( "SUBMULTISET" );
keywordsSql2003.add( "SYMMETRIC" );
keywordsSql2003.add( "SYSTEM" );
keywordsSql2003.add( "SYSTEM_USER" );
keywordsSql2003.add( "TABLE" );
keywordsSql2003.add( "TABLESAMPLE" );
keywordsSql2003.add( "THEN" );
keywordsSql2003.add( "TIME" );
keywordsSql2003.add( "TIMESTAMP" );
keywordsSql2003.add( "TIMEZONE_HOUR" );
keywordsSql2003.add( "TIMEZONE_MINUTE" );
keywordsSql2003.add( "TO" );
keywordsSql2003.add( "TRAILING" );
keywordsSql2003.add( "TRANSLATION" );
keywordsSql2003.add( "TREAT" );
keywordsSql2003.add( "TRIGGER" );
keywordsSql2003.add( "TRUE" );
keywordsSql2003.add( "UNDO" );
keywordsSql2003.add( "UNION" );
keywordsSql2003.add( "UNIQUE" );
keywordsSql2003.add( "UNKNOWN" );
keywordsSql2003.add( "UNNEST" );
keywordsSql2003.add( "UNTIL" );
keywordsSql2003.add( "UPDATE" );
keywordsSql2003.add( "USER" );
keywordsSql2003.add( "USING" );
keywordsSql2003.add( "VALUE" );
keywordsSql2003.add( "VALUES" );
keywordsSql2003.add( "VARCHAR" );
keywordsSql2003.add( "VARYING" );
keywordsSql2003.add( "WHEN" );
keywordsSql2003.add( "WHENEVER" );
keywordsSql2003.add( "WHERE" );
keywordsSql2003.add( "WHILE" );
keywordsSql2003.add( "WINDOW" );
keywordsSql2003.add( "WITH" );
keywordsSql2003.add( "WITHIN" );
keywordsSql2003.add( "WITHOUT" );
keywordsSql2003.add( "YEAR" );
this.keywordsSql2003 = Collections.unmodifiableSet( keywordsSql2003 );
this.keywordsSql2003 = Set.of(
"ADD",
"ALL",
"ALLOCATE",
"ALTER",
"AND",
"ANY",
"ARE",
"ARRAY",
"AS",
"ASENSITIVE",
"ASYMMETRIC",
"AT",
"ATOMIC",
"AUTHORIZATION",
"BEGIN",
"BETWEEN",
"BIGINT",
"BLOB",
"BINARY",
"BOTH",
"BY",
"CALL",
"CALLED",
"CASCADED",
"CASE",
"CAST",
"CHAR",
"CHARACTER",
"CHECK",
"CLOB",
"CLOSE",
"COLLATE",
"COLUMN",
"COMMIT",
"CONDITION",
"CONNECT",
"CONSTRAINT",
"CONTINUE",
"CORRESPONDING",
"CREATE",
"CROSS",
"CUBE",
"CURRENT",
"CURRENT_DATE",
"CURRENT_PATH",
"CURRENT_ROLE",
"CURRENT_TIME",
"CURRENT_TIMESTAMP",
"CURRENT_USER",
"CURSOR",
"CYCLE",
"DATE",
"DAY",
"DEALLOCATE",
"DEC",
"DECIMAL",
"DECLARE",
"DEFAULT",
"DELETE",
"DEREF",
"DESCRIBE",
"DETERMINISTIC",
"DISCONNECT",
"DISTINCT",
"DO",
"DOUBLE",
"DROP",
"DYNAMIC",
"EACH",
"ELEMENT",
"ELSE",
"ELSIF",
"END",
"ESCAPE",
"EXCEPT",
"EXEC",
"EXECUTE",
"EXISTS",
"EXIT",
"EXTERNAL",
"FALSE",
"FETCH",
"FILTER",
"FLOAT",
"FOR",
"FOREIGN",
"FREE",
"FROM",
"FULL",
"FUNCTION",
"GET",
"GLOBAL",
"GRANT",
"GROUP",
"GROUPING",
"HANDLER",
"HAVING",
"HOLD",
"HOUR",
"IDENTITY",
"IF",
"IMMEDIATE",
"IN",
"INDICATOR",
"INNER",
"INOUT",
"INPUT",
"INSENSITIVE",
"INSERT",
"INT",
"INTEGER",
"INTERSECT",
"INTERVAL",
"INTO",
"IS",
"ITERATE",
"JOIN",
"LANGUAGE",
"LARGE",
"LATERAL",
"LEADING",
"LEAVE",
"LEFT",
"LIKE",
"LOCAL",
"LOCALTIME",
"LOCALTIMESTAMP",
"LOOP",
"MATCH",
"MEMBER",
"MERGE",
"METHOD",
"MINUTE",
"MODIFIES",
"MODULE",
"MONTH",
"MULTISET",
"NATIONAL",
"NATURAL",
"NCHAR",
"NCLOB",
"NEW",
"NO",
"NONE",
"NOT",
"NULL",
"NUMERIC",
"OF",
"OLD",
"ON",
"ONLY",
"OPEN",
"OR",
"ORDER",
"OUT",
"OUTER",
"OUTPUT",
"OVER",
"OVERLAPS",
"PARAMETER",
"PARTITION",
"PRECISION",
"PREPARE",
"PRIMARY",
"PROCEDURE",
"RANGE",
"READS",
"REAL",
"RECURSIVE",
"REF",
"REFERENCES",
"REFERENCING",
"RELEASE",
"REPEAT",
"RESIGNAL",
"RESULT",
"RETURN",
"RETURNS",
"REVOKE",
"RIGHT",
"ROLLBACK",
"ROLLUP",
"ROW",
"ROWS",
"SAVEPOINT",
"SCROLL",
"SEARCH",
"SECOND",
"SELECT",
"SENSITIVE",
"SESSION_USE",
"SET",
"SIGNAL",
"SIMILAR",
"SMALLINT",
"SOME",
"SPECIFIC",
"SPECIFICTYPE",
"SQL",
"SQLEXCEPTION",
"SQLSTATE",
"SQLWARNING",
"START",
"STATIC",
"SUBMULTISET",
"SYMMETRIC",
"SYSTEM",
"SYSTEM_USER",
"TABLE",
"TABLESAMPLE",
"THEN",
"TIME",
"TIMESTAMP",
"TIMEZONE_HOUR",
"TIMEZONE_MINUTE",
"TO",
"TRAILING",
"TRANSLATION",
"TREAT",
"TRIGGER",
"TRUE",
"UNDO",
"UNION",
"UNIQUE",
"UNKNOWN",
"UNNEST",
"UNTIL",
"UPDATE",
"USER",
"USING",
"VALUE",
"VALUES",
"VARCHAR",
"VARYING",
"WHEN",
"WHENEVER",
"WHERE",
"WHILE",
"WINDOW",
"WITH",
"WITHIN",
"WITHOUT",
"YEAR");
}
/**