This is an automated email from the ASF dual-hosted git repository.
doebele pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git
The following commit(s) were added to refs/heads/master by this push:
new 447a9390 EMPIREDB-456 DBMSHandler: optimized reservered sql keywords
447a9390 is described below
commit 447a9390ced93bafed896a2f70ab77c8ceb3a052
Author: Rainer Döbele <[email protected]>
AuthorDate: Mon Apr 7 10:22:40 2025 +0200
EMPIREDB-456
DBMSHandler: optimized reservered sql keywords
---
.../main/java/org/apache/empire/db/DBRowSet.java | 4 +-
.../org/apache/empire/dbms/DBMSHandlerBase.java | 35 +-
.../apache/empire/dbms/derby/DBMSHandlerDerby.java | 5 +-
.../apache/empire/dbms/hsql/DBMSHandlerHSql.java | 7 +-
.../apache/empire/dbms/mysql/DBMSHandlerMySQL.java | 683 ++-------------------
.../empire/dbms/oracle/DBMSHandlerOracle.java | 8 +-
.../dbms/postgresql/DBMSHandlerPostgreSQL.java | 121 +---
.../empire/dbms/sqlite/DBMSHandlerSQLite.java | 153 +----
.../empire/dbms/sqlserver/DBMSHandlerMSSQL.java | 11 +-
9 files changed, 120 insertions(+), 907 deletions(-)
diff --git a/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
b/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
index 44f0dcc6..5cc87393 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBRowSet.java
@@ -438,7 +438,7 @@ public abstract class DBRowSet extends DBExpr implements
EntityType
}
/**
- * Gets all columns of this rowset (e.g. for cmd.select()).
+ * Returns a list of all columns of this rowset (e.g. for cmd.select()).
* @return all columns of this rowset
*/
@Override
@@ -448,7 +448,7 @@ public abstract class DBRowSet extends DBExpr implements
EntityType
}
/**
- * Gets all columns of this rowset as an array
+ * Returns an array of all columns of this rowset
* @return all columns of this rowset
*/
public DBColumn[] getAllColumns()
diff --git
a/empire-db/src/main/java/org/apache/empire/dbms/DBMSHandlerBase.java
b/empire-db/src/main/java/org/apache/empire/dbms/DBMSHandlerBase.java
index 8bc7ab61..dbb22d43 100644
--- a/empire-db/src/main/java/org/apache/empire/dbms/DBMSHandlerBase.java
+++ b/empire-db/src/main/java/org/apache/empire/dbms/DBMSHandlerBase.java
@@ -73,10 +73,11 @@ public abstract class DBMSHandlerBase implements DBMSHandler
'/', '.',
'-', ',', '+', '*', ')', '(',
'\'', '&',
'%', '!', ' '
};
- protected static final String[] GENERAL_SQL_KEYWORDS = new String[] {
"user", "group",
+ protected static final String[] GENERAL_SQL_KEYWORDS = new String[] {
"table", "column",
"view", "index", "constraint",
"select", "udpate",
"insert", "alter", "delete",
- "order" };
+ "join", "on",
"group", "by", "order", "asc", "desc", "all",
+ "with", "user" };
protected final Set<String> reservedSQLKeywords;
// Postfix for auto-generated Sequence names
@@ -229,14 +230,36 @@ public abstract class DBMSHandlerBase implements
DBMSHandler
/**
* Constructor
*/
- protected DBMSHandlerBase()
+ protected DBMSHandlerBase(String[] specificSqlKeywords)
{
// Initialize List of reserved Keywords
- reservedSQLKeywords = new HashSet<String>(GENERAL_SQL_KEYWORDS.length);
- for (String keyWord:GENERAL_SQL_KEYWORDS){
- reservedSQLKeywords.add(keyWord);
+ int capacity = GENERAL_SQL_KEYWORDS.length +
(specificSqlKeywords!=null ? specificSqlKeywords.length : 0);
+ reservedSQLKeywords = new HashSet<String>(capacity);
+ for (String keyWord : GENERAL_SQL_KEYWORDS) {
+ reservedSQLKeywords.add(keyWord);
+ }
+ // Initialize List of reserved Keywords
+ for (String keyWord : specificSqlKeywords) {
+ addSQLKeyword(keyWord);
}
}
+
+ /**
+ * Constructor
+ */
+ protected DBMSHandlerBase()
+ {
+ this(null);
+ }
+
+ /**
+ * Adds an additional SQL Keyword to the keyword list
+ * @param keyWord
+ */
+ protected void addSQLKeyword(String keyWord)
+ {
+ reservedSQLKeywords.add(keyWord.toLowerCase());
+ }
/**
* checks if the database exists
diff --git
a/empire-db/src/main/java/org/apache/empire/dbms/derby/DBMSHandlerDerby.java
b/empire-db/src/main/java/org/apache/empire/dbms/derby/DBMSHandlerDerby.java
index 2c31b380..5d91d41a 100644
--- a/empire-db/src/main/java/org/apache/empire/dbms/derby/DBMSHandlerDerby.java
+++ b/empire-db/src/main/java/org/apache/empire/dbms/derby/DBMSHandlerDerby.java
@@ -49,6 +49,8 @@ public class DBMSHandlerDerby extends DBMSHandlerBase
// *Deprecated* private static final long serialVersionUID = 1L;
private static final Logger log =
LoggerFactory.getLogger(DBMSHandlerDerby.class);
+ protected static final String[] DERBY_SQL_KEYWORDS = new String[] {
"count", "year" };
+
// Properties
private String databaseName = null;
// Sequence treatment
@@ -64,8 +66,7 @@ public class DBMSHandlerDerby extends DBMSHandlerBase
public DBMSHandlerDerby()
{
// Add additional reserved keywords
- reservedSQLKeywords.add("count");
- reservedSQLKeywords.add("year");
+ super(DERBY_SQL_KEYWORDS);
}
/**
diff --git
a/empire-db/src/main/java/org/apache/empire/dbms/hsql/DBMSHandlerHSql.java
b/empire-db/src/main/java/org/apache/empire/dbms/hsql/DBMSHandlerHSql.java
index 3c16610c..fd3abcc8 100644
--- a/empire-db/src/main/java/org/apache/empire/dbms/hsql/DBMSHandlerHSql.java
+++ b/empire-db/src/main/java/org/apache/empire/dbms/hsql/DBMSHandlerHSql.java
@@ -54,6 +54,9 @@ public class DBMSHandlerHSql extends DBMSHandlerBase
// *Deprecated* private static final long serialVersionUID = 1L;
private static final Logger log =
LoggerFactory.getLogger(DBMSHandlerHSql.class);
+ // Additional HSql Keywords
+ protected static final String[] HSQL_KEYWORDS = new String[] { "count" };
+
private DBDDLGenerator<?> ddlGenerator = null; // lazy creation
/**
@@ -61,8 +64,8 @@ public class DBMSHandlerHSql extends DBMSHandlerBase
*/
public DBMSHandlerHSql()
{
- // Add "count" to list of reserved keywords
- reservedSQLKeywords.add("count");
+ // Add additional Keywords
+ super(HSQL_KEYWORDS);
}
/**
diff --git
a/empire-db/src/main/java/org/apache/empire/dbms/mysql/DBMSHandlerMySQL.java
b/empire-db/src/main/java/org/apache/empire/dbms/mysql/DBMSHandlerMySQL.java
index 542093fe..382bc8ba 100644
--- a/empire-db/src/main/java/org/apache/empire/dbms/mysql/DBMSHandlerMySQL.java
+++ b/empire-db/src/main/java/org/apache/empire/dbms/mysql/DBMSHandlerMySQL.java
@@ -57,6 +57,51 @@ public class DBMSHandlerMySQL extends DBMSHandlerBase
// *Deprecated* private static final long serialVersionUID = 1L;
private static final Logger log =
LoggerFactory.getLogger(DBMSHandlerMySQL.class);
+ // Additional MySQL Keywords
+ protected static final String[] MYSQL_KEYWORDS = new String[] {
+ "ACCESSIBLE", "ACCOUNT", "ACTION", "ADD", "AFTER", "AGAINST",
"AGGREGATE", "ALGORITHM", "ALL", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE",
"AND", "ANY", "AS", "ASC", "ASCII",
+ "ASENSITIVE", "AT", "AUTOEXTEND_SIZE", "AUTO_INCREMENT", "AVG",
"AVG_ROW_LENGTH", "BACKUP", "BEFORE", "BEGIN", "BETWEEN", "BIGINT", "BINARY",
"BINLOG", "BIT", "BLOB", "BLOCK",
+ "BOOL", "BOOLEAN", "BOTH", "BTREE", "BY", "BYTE", "CACHE", "CALL",
"CASCADE", "CASCADED", "CASE", "CATALOG_NAME", "CHAIN", "CHANGE", "CHANGED",
"CHANNEL", "CHAR", "CHARACTER",
+ "CHARSET", "CHECK", "CHECKSUM", "CIPHER", "CLASS_ORIGIN", "CLIENT",
"CLOSE", "COALESCE", "CODE", "COLLATE", "COLLATION", "COLUMN", "COLUMNS",
"COLUMN_FORMAT", "COLUMN_NAME",
+ "COMMENT", "COMMIT", "COMMITTED", "COMPACT", "COMPLETION",
"COMPRESSED", "COMPRESSION", "CONCURRENT", "CONDITION", "CONNECTION",
"CONSISTENT", "CONSTRAINT", "CONSTRAINT_CATALOG",
+ "CONSTRAINT_NAME", "CONSTRAINT_SCHEMA", "CONTAINS", "CONTEXT",
"CONTINUE", "CONVERT", "CPU", "CREATE", "CROSS", "CUBE", "CURRENT",
"CURRENT_DATE", "CURRENT_TIME", "CURRENT_TIMESTAMP",
+ "CURRENT_USER", "CURSOR", "CURSOR_NAME", "DATA", "DATABASE",
"DATABASES", "DATAFILE", "DATE", "DATETIME", "DAY", "DAY_HOUR",
"DAY_MICROSECOND", "DAY_MINUTE", "DAY_SECOND",
+ "DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DEFAULT_AUTH",
"DEFINER", "DELAYED", "DELAY_KEY_WRITE", "DELETE", "DESC", "DESCRIBE",
"DES_KEY_FILE", "DETERMINISTIC",
+ "DIAGNOSTICS", "DIRECTORY", "DISABLE", "DISCARD", "DISK", "DISTINCT",
"DISTINCTROW", "DIV", "DO", "DOUBLE", "DROP", "DUAL", "DUMPFILE", "DUPLICATE",
"DYNAMIC", "EACH", "ELSE",
+ "ELSEIF", "ENABLE", "ENCLOSED", "ENCRYPTION", "END", "ENDS", "ENGINE",
"ENGINES", "ENUM", "ERROR", "ERRORS", "ESCAPE", "ESCAPED", "EVENT", "EVENTS",
"EVERY", "EXCHANGE", "EXECUTE",
+ "EXISTS", "EXIT", "EXPANSION", "EXPIRE", "EXPLAIN", "EXPORT",
"EXTENDED", "EXTENT_SIZE", "FALSE", "FAST", "FAULTS", "FETCH", "FIELDS",
"FILE", "FILE_BLOCK_SIZE", "FILTER", "FIRST",
+ "FIXED", "FLOAT", "FLOAT4", "FLOAT8", "FLUSH", "FOLLOWS", "FOR",
"FORCE", "FOREIGN", "FORMAT", "FOUND", "FROM", "FULL", "FULLTEXT", "FUNCTION",
"GENERAL", "GENERATED", "GEOMETRY",
+ "GEOMETRYCOLLECTION", "GET", "GET_FORMAT", "GLOBAL", "GRANT",
"GRANTS", "GROUP", "GROUP_REPLICATION", "HANDLER", "HASH", "HAVING", "HELP",
"HIGH_PRIORITY", "HOST", "HOSTS", "HOUR",
+ "HOUR_MICROSECOND", "HOUR_MINUTE", "HOUR_SECOND", "IDENTIFIED", "IF",
"IGNORE", "IGNORE_SERVER_IDS", "IMPORT", "IN", "INDEX", "INDEXES", "INFILE",
"INITIAL_SIZE", "INNER", "INOUT",
+ "INSENSITIVE", "INSERT", "INSERT_METHOD", "INSTALL", "INSTANCE",
"INT", "INT1", "INT2", "INT3", "INT4", "INT8", "INTEGER", "INTERVAL", "INTO",
"INVOKER", "IO", "IO_AFTER_GTIDS",
+ "IO_BEFORE_GTIDS", "IO_THREAD", "IPC", "IS", "ISOLATION", "ISSUER",
"ITERATE", "JOIN", "JSON", "KEY", "KEYS", "KEY_BLOCK_SIZE", "KILL", "LANGUAGE",
"LAST", "LEADING", "LEAVE", "LEAVES",
+ "LEFT", "LESS", "LEVEL", "LIKE", "LIMIT", "LINEAR", "LINES",
"LINESTRING", "LIST", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCK",
"LOCKS", "LOGFILE", "LOGS", "LONG", "LONGBLOB",
+ "LONGTEXT", "LOOP", "LOW_PRIORITY", "MASTER", "MASTER_AUTO_POSITION",
"MASTER_BIND", "MASTER_CONNECT_RETRY", "MASTER_DELAY",
"MASTER_HEARTBEAT_PERIOD", "MASTER_HOST", "MASTER_LOG_FILE",
+ "MASTER_LOG_POS", "MASTER_PASSWORD", "MASTER_PORT",
"MASTER_RETRY_COUNT", "MASTER_SERVER_ID", "MASTER_SSL", "MASTER_SSL_CA",
"MASTER_SSL_CAPATH", "MASTER_SSL_CERT", "MASTER_SSL_CIPHER",
+ "MASTER_SSL_CRL", "MASTER_SSL_CRLPATH", "MASTER_SSL_KEY",
"MASTER_SSL_VERIFY_SERVER_CERT", "MASTER_TLS_VERSION", "MASTER_USER", "MATCH",
"MAXVALUE", "MAX_CONNECTIONS_PER_HOUR",
+ "MAX_QUERIES_PER_HOUR", "MAX_ROWS", "MAX_SIZE", "MAX_STATEMENT_TIME",
"MAX_UPDATES_PER_HOUR", "MAX_USER_CONNECTIONS", "MEDIUM", "MEDIUMBLOB",
"MEDIUMINT", "MEDIUMTEXT", "MEMORY", "MERGE",
+ "MESSAGE_TEXT", "MICROSECOND", "MIDDLEINT", "MIGRATE", "MINUTE",
"MINUTE_MICROSECOND", "MINUTE_SECOND", "MIN_ROWS", "MOD", "MODE", "MODIFIES",
"MODIFY", "MONTH", "MULTILINESTRING",
+ "MULTIPOINT", "MULTIPOLYGON", "MUTEX", "MYSQL_ERRNO", "NAME", "NAMES",
"NATIONAL", "NATURAL", "NCHAR", "NDB", "NDBCLUSTER", "NEVER", "NEW", "NEXT",
"NO", "NODEGROUP", "NONBLOCKING", "NONE",
+ "NOT", "NO_WAIT", "NO_WRITE_TO_BINLOG", "NULL", "NUMBER", "NUMERIC",
"NVARCHAR", "OFFSET", "OLD_PASSWORD", "ON", "ONE", "ONLY", "OPEN", "OPTIMIZE",
"OPTIMIZER_COSTS", "OPTION", "OPTIONALLY",
+ "OPTIONS", "OR", "ORDER", "OUT", "OUTER", "OUTFILE", "OWNER",
"PACK_KEYS", "PAGE", "PARSER", "PARSE_GCOL_EXPR", "PARTIAL", "PARTITION",
"PARTITIONING", "PARTITIONS", "PASSWORD", "PHASE",
+ "PLUGIN", "PLUGINS", "PLUGIN_DIR", "POINT", "POLYGON", "PORT",
"PRECEDES", "PRECISION", "PREPARE", "PRESERVE", "PREV", "PRIMARY",
"PRIVILEGES", "PROCEDURE", "PROCESSLIST", "PROFILE",
+ "PROFILES", "PROXY", "PURGE", "QUARTER", "QUERY", "QUICK", "RANGE",
"READ", "READS", "READ_ONLY", "READ_WRITE", "REAL", "REBUILD", "RECOVER",
"REDOFILE", "REDO_BUFFER_SIZE", "REDUNDANT",
+ "REFERENCES", "REGEXP", "RELAY", "RELAYLOG", "RELAY_LOG_FILE",
"RELAY_LOG_POS", "RELAY_THREAD", "RELEASE", "RELOAD", "REMOVE", "RENAME",
"REORGANIZE", "REPAIR", "REPEAT", "REPEATABLE",
+ "REPLACE", "REPLICATE_DO_DB", "REPLICATE_DO_TABLE",
"REPLICATE_IGNORE_DB", "REPLICATE_IGNORE_TABLE", "REPLICATE_REWRITE_DB",
"REPLICATE_WILD_DO_TABLE", "REPLICATE_WILD_IGNORE_TABLE",
+ "REPLICATION", "REQUIRE", "RESET", "RESIGNAL", "RESTORE", "RESTRICT",
"RESUME", "RETURN", "RETURNED_SQLSTATE", "RETURNS", "REVERSE", "REVOKE",
"RIGHT", "RLIKE", "ROLLBACK", "ROLLUP",
+ "ROTATE", "ROUTINE", "ROW", "ROWS", "ROW_COUNT", "ROW_FORMAT",
"RTREE", "SAVEPOINT", "SCHEDULE", "SCHEMA", "SCHEMAS", "SCHEMA_NAME", "SECOND",
"SECOND_MICROSECOND", "SECURITY", "SELECT",
+ "SENSITIVE", "SEPARATOR", "SERIAL", "SERIALIZABLE", "SERVER",
"SESSION", "SET", "SHARE", "SHOW", "SHUTDOWN", "SIGNAL", "SIGNED", "SIMPLE",
"SLAVE", "SLOW", "SMALLINT", "SNAPSHOT", "SOCKET",
+ "SOME", "SONAME", "SOUNDS", "SOURCE", "SPATIAL", "SPECIFIC", "SQL",
"SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "SQL_AFTER_GTIDS",
"SQL_AFTER_MTS_GAPS", "SQL_BEFORE_GTIDS", "SQL_BIG_RESULT",
+ "SQL_BUFFER_RESULT", "SQL_CACHE", "SQL_CALC_FOUND_ROWS",
"SQL_NO_CACHE", "SQL_SMALL_RESULT", "SQL_THREAD", "SQL_TSI_DAY",
"SQL_TSI_HOUR", "SQL_TSI_MINUTE", "SQL_TSI_MONTH", "SQL_TSI_QUARTER",
+ "SQL_TSI_SECOND", "SQL_TSI_WEEK", "SQL_TSI_YEAR", "SSL", "STACKED",
"START", "STARTING", "STARTS", "STATS_AUTO_RECALC", "STATS_PERSISTENT",
"STATS_SAMPLE_PAGES", "STATUS", "STOP", "STORAGE",
+ "STORED", "STRAIGHT_JOIN", "STRING", "SUBCLASS_ORIGIN", "SUBJECT",
"SUBPARTITION", "SUBPARTITIONS", "SUPER", "SUSPEND", "SWAPS", "SWITCHES",
"TABLE", "TABLES", "TABLESPACE", "TABLE_CHECKSUM",
+ "TABLE_NAME", "TEMPORARY", "TEMPTABLE", "TERMINATED", "TEXT", "THAN",
"THEN", "TIME", "TIMESTAMP", "TIMESTAMPADD", "TIMESTAMPDIFF", "TINYBLOB",
"TINYINT", "TINYTEXT", "TO", "TRAILING",
+ "TRANSACTION", "TRIGGER", "TRIGGERS", "TRUE", "TRUNCATE", "TYPE",
"TYPES", "UNCOMMITTED", "UNDEFINED", "UNDO", "UNDOFILE", "UNDO_BUFFER_SIZE",
"UNICODE", "UNINSTALL", "UNION", "UNIQUE",
+ "UNKNOWN", "UNLOCK", "UNSIGNED", "UNTIL", "UPDATE", "UPGRADE",
"USAGE", "USE", "USER", "USER_RESOURCES", "USE_FRM", "USING", "UTC_DATE",
"UTC_TIME", "UTC_TIMESTAMP", "VALIDATION", "VALUE",
+ "VALUES", "VARBINARY", "VARCHAR", "VARCHARACTER", "VARIABLES",
"VARYING", "VIEW", "VIRTUAL", "WAIT", "WARNINGS", "WEEK", "WEIGHT_STRING",
"WHEN", "WHERE", "WHILE", "WITH", "WITHOUT", "WORK",
+ "WRAPPER", "WRITE", "X509", "XA", "XID", "XML", "XOR", "YEAR",
"YEAR_MONTH", "ZEROFILL"
+ };
+
/**
* Defines the MySQL command type.
*/
@@ -174,642 +219,8 @@ public class DBMSHandlerMySQL extends DBMSHandlerBase
*/
public DBMSHandlerMySQL()
{
- // Default Constructor
- setReservedKeywords();
- }
-
- private void addReservedKeyWord(final String keyWord){
- boolean added = reservedSQLKeywords.add(keyWord.toLowerCase());
- if(!added){
- log.debug("Existing keyWord added: " + keyWord);
- }
- }
-
- private void setReservedKeywords(){
- // list of reserved keywords
- // https://dev.mysql.com/doc/refman/5.7/en/keywords.html
- addReservedKeyWord("ACCESSIBLE".toLowerCase());
- addReservedKeyWord("ACCOUNT".toLowerCase());
- addReservedKeyWord("ACTION".toLowerCase());
- addReservedKeyWord("ADD".toLowerCase());
- addReservedKeyWord("AFTER".toLowerCase());
- addReservedKeyWord("AGAINST".toLowerCase());
- addReservedKeyWord("AGGREGATE".toLowerCase());
- addReservedKeyWord("ALGORITHM".toLowerCase());
- addReservedKeyWord("ALL".toLowerCase());
- addReservedKeyWord("ALTER".toLowerCase());
- addReservedKeyWord("ALWAYS".toLowerCase());
- addReservedKeyWord("ANALYSE".toLowerCase());
- addReservedKeyWord("ANALYZE".toLowerCase());
- addReservedKeyWord("AND".toLowerCase());
- addReservedKeyWord("ANY".toLowerCase());
- addReservedKeyWord("AS".toLowerCase());
- addReservedKeyWord("ASC".toLowerCase());
- addReservedKeyWord("ASCII".toLowerCase());
- addReservedKeyWord("ASENSITIVE".toLowerCase());
- addReservedKeyWord("AT".toLowerCase());
- addReservedKeyWord("AUTOEXTEND_SIZE".toLowerCase());
- addReservedKeyWord("AUTO_INCREMENT".toLowerCase());
- addReservedKeyWord("AVG".toLowerCase());
- addReservedKeyWord("AVG_ROW_LENGTH".toLowerCase());
- addReservedKeyWord("BACKUP".toLowerCase());
- addReservedKeyWord("BEFORE".toLowerCase());
- addReservedKeyWord("BEGIN".toLowerCase());
- addReservedKeyWord("BETWEEN".toLowerCase());
- addReservedKeyWord("BIGINT".toLowerCase());
- addReservedKeyWord("BINARY".toLowerCase());
- addReservedKeyWord("BINLOG".toLowerCase());
- addReservedKeyWord("BIT".toLowerCase());
- addReservedKeyWord("BLOB".toLowerCase());
- addReservedKeyWord("BLOCK".toLowerCase());
- addReservedKeyWord("BOOL".toLowerCase());
- addReservedKeyWord("BOOLEAN".toLowerCase());
- addReservedKeyWord("BOTH".toLowerCase());
- addReservedKeyWord("BTREE".toLowerCase());
- addReservedKeyWord("BY".toLowerCase());
- addReservedKeyWord("BYTE".toLowerCase());
- addReservedKeyWord("CACHE".toLowerCase());
- addReservedKeyWord("CALL".toLowerCase());
- addReservedKeyWord("CASCADE".toLowerCase());
- addReservedKeyWord("CASCADED".toLowerCase());
- addReservedKeyWord("CASE".toLowerCase());
- addReservedKeyWord("CATALOG_NAME".toLowerCase());
- addReservedKeyWord("CHAIN".toLowerCase());
- addReservedKeyWord("CHANGE".toLowerCase());
- addReservedKeyWord("CHANGED".toLowerCase());
- addReservedKeyWord("CHANNEL".toLowerCase());
- addReservedKeyWord("CHAR".toLowerCase());
- addReservedKeyWord("CHARACTER".toLowerCase());
- addReservedKeyWord("CHARSET".toLowerCase());
- addReservedKeyWord("CHECK".toLowerCase());
- addReservedKeyWord("CHECKSUM".toLowerCase());
- addReservedKeyWord("CIPHER".toLowerCase());
- addReservedKeyWord("CLASS_ORIGIN".toLowerCase());
- addReservedKeyWord("CLIENT".toLowerCase());
- addReservedKeyWord("CLOSE".toLowerCase());
- addReservedKeyWord("COALESCE".toLowerCase());
- addReservedKeyWord("CODE".toLowerCase());
- addReservedKeyWord("COLLATE".toLowerCase());
- addReservedKeyWord("COLLATION".toLowerCase());
- addReservedKeyWord("COLUMN".toLowerCase());
- addReservedKeyWord("COLUMNS".toLowerCase());
- addReservedKeyWord("COLUMN_FORMAT".toLowerCase());
- addReservedKeyWord("COLUMN_NAME".toLowerCase());
- addReservedKeyWord("COMMENT".toLowerCase());
- addReservedKeyWord("COMMIT".toLowerCase());
- addReservedKeyWord("COMMITTED".toLowerCase());
- addReservedKeyWord("COMPACT".toLowerCase());
- addReservedKeyWord("COMPLETION".toLowerCase());
- addReservedKeyWord("COMPRESSED".toLowerCase());
- addReservedKeyWord("COMPRESSION".toLowerCase());
- addReservedKeyWord("CONCURRENT".toLowerCase());
- addReservedKeyWord("CONDITION".toLowerCase());
- addReservedKeyWord("CONNECTION".toLowerCase());
- addReservedKeyWord("CONSISTENT".toLowerCase());
- addReservedKeyWord("CONSTRAINT".toLowerCase());
- addReservedKeyWord("CONSTRAINT_CATALOG".toLowerCase());
- addReservedKeyWord("CONSTRAINT_NAME".toLowerCase());
- addReservedKeyWord("CONSTRAINT_SCHEMA".toLowerCase());
- addReservedKeyWord("CONTAINS".toLowerCase());
- addReservedKeyWord("CONTEXT".toLowerCase());
- addReservedKeyWord("CONTINUE".toLowerCase());
- addReservedKeyWord("CONVERT".toLowerCase());
- addReservedKeyWord("CPU".toLowerCase());
- addReservedKeyWord("CREATE".toLowerCase());
- addReservedKeyWord("CROSS".toLowerCase());
- addReservedKeyWord("CUBE".toLowerCase());
- addReservedKeyWord("CURRENT".toLowerCase());
- addReservedKeyWord("CURRENT_DATE".toLowerCase());
- addReservedKeyWord("CURRENT_TIME".toLowerCase());
- addReservedKeyWord("CURRENT_TIMESTAMP".toLowerCase());
- addReservedKeyWord("CURRENT_USER".toLowerCase());
- addReservedKeyWord("CURSOR".toLowerCase());
- addReservedKeyWord("CURSOR_NAME".toLowerCase());
- addReservedKeyWord("DATA".toLowerCase());
- addReservedKeyWord("DATABASE".toLowerCase());
- addReservedKeyWord("DATABASES".toLowerCase());
- addReservedKeyWord("DATAFILE".toLowerCase());
- addReservedKeyWord("DATE".toLowerCase());
- addReservedKeyWord("DATETIME".toLowerCase());
- addReservedKeyWord("DAY".toLowerCase());
- addReservedKeyWord("DAY_HOUR".toLowerCase());
- addReservedKeyWord("DAY_MICROSECOND".toLowerCase());
- addReservedKeyWord("DAY_MINUTE".toLowerCase());
- addReservedKeyWord("DAY_SECOND".toLowerCase());
- addReservedKeyWord("DEALLOCATE".toLowerCase());
- addReservedKeyWord("DEC".toLowerCase());
- addReservedKeyWord("DECIMAL".toLowerCase());
- addReservedKeyWord("DECLARE".toLowerCase());
- addReservedKeyWord("DEFAULT".toLowerCase());
- addReservedKeyWord("DEFAULT_AUTH".toLowerCase());
- addReservedKeyWord("DEFINER".toLowerCase());
- addReservedKeyWord("DELAYED".toLowerCase());
- addReservedKeyWord("DELAY_KEY_WRITE".toLowerCase());
- addReservedKeyWord("DELETE".toLowerCase());
- addReservedKeyWord("DESC".toLowerCase());
- addReservedKeyWord("DESCRIBE".toLowerCase());
- addReservedKeyWord("DES_KEY_FILE".toLowerCase());
- addReservedKeyWord("DETERMINISTIC".toLowerCase());
- addReservedKeyWord("DIAGNOSTICS".toLowerCase());
- addReservedKeyWord("DIRECTORY".toLowerCase());
- addReservedKeyWord("DISABLE".toLowerCase());
- addReservedKeyWord("DISCARD".toLowerCase());
- addReservedKeyWord("DISK".toLowerCase());
- addReservedKeyWord("DISTINCT".toLowerCase());
- addReservedKeyWord("DISTINCTROW".toLowerCase());
- addReservedKeyWord("DIV".toLowerCase());
- addReservedKeyWord("DO".toLowerCase());
- addReservedKeyWord("DOUBLE".toLowerCase());
- addReservedKeyWord("DROP".toLowerCase());
- addReservedKeyWord("DUAL".toLowerCase());
- addReservedKeyWord("DUMPFILE".toLowerCase());
- addReservedKeyWord("DUPLICATE".toLowerCase());
- addReservedKeyWord("DYNAMIC".toLowerCase());
- addReservedKeyWord("EACH".toLowerCase());
- addReservedKeyWord("ELSE".toLowerCase());
- addReservedKeyWord("ELSEIF".toLowerCase());
- addReservedKeyWord("ENABLE".toLowerCase());
- addReservedKeyWord("ENCLOSED".toLowerCase());
- addReservedKeyWord("ENCRYPTION".toLowerCase());
- addReservedKeyWord("END".toLowerCase());
- addReservedKeyWord("ENDS".toLowerCase());
- addReservedKeyWord("ENGINE".toLowerCase());
- addReservedKeyWord("ENGINES".toLowerCase());
- addReservedKeyWord("ENUM".toLowerCase());
- addReservedKeyWord("ERROR".toLowerCase());
- addReservedKeyWord("ERRORS".toLowerCase());
- addReservedKeyWord("ESCAPE".toLowerCase());
- addReservedKeyWord("ESCAPED".toLowerCase());
- addReservedKeyWord("EVENT".toLowerCase());
- addReservedKeyWord("EVENTS".toLowerCase());
- addReservedKeyWord("EVERY".toLowerCase());
- addReservedKeyWord("EXCHANGE".toLowerCase());
- addReservedKeyWord("EXECUTE".toLowerCase());
- addReservedKeyWord("EXISTS".toLowerCase());
- addReservedKeyWord("EXIT".toLowerCase());
- addReservedKeyWord("EXPANSION".toLowerCase());
- addReservedKeyWord("EXPIRE".toLowerCase());
- addReservedKeyWord("EXPLAIN".toLowerCase());
- addReservedKeyWord("EXPORT".toLowerCase());
- addReservedKeyWord("EXTENDED".toLowerCase());
- addReservedKeyWord("EXTENT_SIZE".toLowerCase());
- addReservedKeyWord("FALSE".toLowerCase());
- addReservedKeyWord("FAST".toLowerCase());
- addReservedKeyWord("FAULTS".toLowerCase());
- addReservedKeyWord("FETCH".toLowerCase());
- addReservedKeyWord("FIELDS".toLowerCase());
- addReservedKeyWord("FILE".toLowerCase());
- addReservedKeyWord("FILE_BLOCK_SIZE".toLowerCase());
- addReservedKeyWord("FILTER".toLowerCase());
- addReservedKeyWord("FIRST".toLowerCase());
- addReservedKeyWord("FIXED".toLowerCase());
- addReservedKeyWord("FLOAT".toLowerCase());
- addReservedKeyWord("FLOAT4".toLowerCase());
- addReservedKeyWord("FLOAT8".toLowerCase());
- addReservedKeyWord("FLUSH".toLowerCase());
- addReservedKeyWord("FOLLOWS".toLowerCase());
- addReservedKeyWord("FOR".toLowerCase());
- addReservedKeyWord("FORCE".toLowerCase());
- addReservedKeyWord("FOREIGN".toLowerCase());
- addReservedKeyWord("FORMAT".toLowerCase());
- addReservedKeyWord("FOUND".toLowerCase());
- addReservedKeyWord("FROM".toLowerCase());
- addReservedKeyWord("FULL".toLowerCase());
- addReservedKeyWord("FULLTEXT".toLowerCase());
- addReservedKeyWord("FUNCTION".toLowerCase());
- addReservedKeyWord("GENERAL".toLowerCase());
- addReservedKeyWord("GENERATED".toLowerCase());
- addReservedKeyWord("GEOMETRY".toLowerCase());
- addReservedKeyWord("GEOMETRYCOLLECTION".toLowerCase());
- addReservedKeyWord("GET".toLowerCase());
- addReservedKeyWord("GET_FORMAT".toLowerCase());
- addReservedKeyWord("GLOBAL".toLowerCase());
- addReservedKeyWord("GRANT".toLowerCase());
- addReservedKeyWord("GRANTS".toLowerCase());
- addReservedKeyWord("GROUP".toLowerCase());
- addReservedKeyWord("GROUP_REPLICATION".toLowerCase());
- addReservedKeyWord("HANDLER".toLowerCase());
- addReservedKeyWord("HASH".toLowerCase());
- addReservedKeyWord("HAVING".toLowerCase());
- addReservedKeyWord("HELP".toLowerCase());
- addReservedKeyWord("HIGH_PRIORITY".toLowerCase());
- addReservedKeyWord("HOST".toLowerCase());
- addReservedKeyWord("HOSTS".toLowerCase());
- addReservedKeyWord("HOUR".toLowerCase());
- addReservedKeyWord("HOUR_MICROSECOND".toLowerCase());
- addReservedKeyWord("HOUR_MINUTE".toLowerCase());
- addReservedKeyWord("HOUR_SECOND".toLowerCase());
- addReservedKeyWord("IDENTIFIED".toLowerCase());
- addReservedKeyWord("IF".toLowerCase());
- addReservedKeyWord("IGNORE".toLowerCase());
- addReservedKeyWord("IGNORE_SERVER_IDS".toLowerCase());
- addReservedKeyWord("IMPORT".toLowerCase());
- addReservedKeyWord("IN".toLowerCase());
- addReservedKeyWord("INDEX".toLowerCase());
- addReservedKeyWord("INDEXES".toLowerCase());
- addReservedKeyWord("INFILE".toLowerCase());
- addReservedKeyWord("INITIAL_SIZE".toLowerCase());
- addReservedKeyWord("INNER".toLowerCase());
- addReservedKeyWord("INOUT".toLowerCase());
- addReservedKeyWord("INSENSITIVE".toLowerCase());
- addReservedKeyWord("INSERT".toLowerCase());
- addReservedKeyWord("INSERT_METHOD".toLowerCase());
- addReservedKeyWord("INSTALL".toLowerCase());
- addReservedKeyWord("INSTANCE".toLowerCase());
- addReservedKeyWord("INT".toLowerCase());
- addReservedKeyWord("INT1".toLowerCase());
- addReservedKeyWord("INT2".toLowerCase());
- addReservedKeyWord("INT3".toLowerCase());
- addReservedKeyWord("INT4".toLowerCase());
- addReservedKeyWord("INT8".toLowerCase());
- addReservedKeyWord("INTEGER".toLowerCase());
- addReservedKeyWord("INTERVAL".toLowerCase());
- addReservedKeyWord("INTO".toLowerCase());
- addReservedKeyWord("INVOKER".toLowerCase());
- addReservedKeyWord("IO".toLowerCase());
- addReservedKeyWord("IO_AFTER_GTIDS".toLowerCase());
- addReservedKeyWord("IO_BEFORE_GTIDS".toLowerCase());
- addReservedKeyWord("IO_THREAD".toLowerCase());
- addReservedKeyWord("IPC".toLowerCase());
- addReservedKeyWord("IS".toLowerCase());
- addReservedKeyWord("ISOLATION".toLowerCase());
- addReservedKeyWord("ISSUER".toLowerCase());
- addReservedKeyWord("ITERATE".toLowerCase());
- addReservedKeyWord("JOIN".toLowerCase());
- addReservedKeyWord("JSON".toLowerCase());
- addReservedKeyWord("KEY".toLowerCase());
- addReservedKeyWord("KEYS".toLowerCase());
- addReservedKeyWord("KEY_BLOCK_SIZE".toLowerCase());
- addReservedKeyWord("KILL".toLowerCase());
- addReservedKeyWord("LANGUAGE".toLowerCase());
- addReservedKeyWord("LAST".toLowerCase());
- addReservedKeyWord("LEADING".toLowerCase());
- addReservedKeyWord("LEAVE".toLowerCase());
- addReservedKeyWord("LEAVES".toLowerCase());
- addReservedKeyWord("LEFT".toLowerCase());
- addReservedKeyWord("LESS".toLowerCase());
- addReservedKeyWord("LEVEL".toLowerCase());
- addReservedKeyWord("LIKE".toLowerCase());
- addReservedKeyWord("LIMIT".toLowerCase());
- addReservedKeyWord("LINEAR".toLowerCase());
- addReservedKeyWord("LINES".toLowerCase());
- addReservedKeyWord("LINESTRING".toLowerCase());
- addReservedKeyWord("LIST".toLowerCase());
- addReservedKeyWord("LOAD".toLowerCase());
- addReservedKeyWord("LOCAL".toLowerCase());
- addReservedKeyWord("LOCALTIME".toLowerCase());
- addReservedKeyWord("LOCALTIMESTAMP".toLowerCase());
- addReservedKeyWord("LOCK".toLowerCase());
- addReservedKeyWord("LOCKS".toLowerCase());
- addReservedKeyWord("LOGFILE".toLowerCase());
- addReservedKeyWord("LOGS".toLowerCase());
- addReservedKeyWord("LONG".toLowerCase());
- addReservedKeyWord("LONGBLOB".toLowerCase());
- addReservedKeyWord("LONGTEXT".toLowerCase());
- addReservedKeyWord("LOOP".toLowerCase());
- addReservedKeyWord("LOW_PRIORITY".toLowerCase());
- addReservedKeyWord("MASTER".toLowerCase());
- addReservedKeyWord("MASTER_AUTO_POSITION".toLowerCase());
- addReservedKeyWord("MASTER_BIND".toLowerCase());
- addReservedKeyWord("MASTER_CONNECT_RETRY".toLowerCase());
- addReservedKeyWord("MASTER_DELAY".toLowerCase());
- addReservedKeyWord("MASTER_HEARTBEAT_PERIOD".toLowerCase());
- addReservedKeyWord("MASTER_HOST".toLowerCase());
- addReservedKeyWord("MASTER_LOG_FILE".toLowerCase());
- addReservedKeyWord("MASTER_LOG_POS".toLowerCase());
- addReservedKeyWord("MASTER_PASSWORD".toLowerCase());
- addReservedKeyWord("MASTER_PORT".toLowerCase());
- addReservedKeyWord("MASTER_RETRY_COUNT".toLowerCase());
- addReservedKeyWord("MASTER_SERVER_ID".toLowerCase());
- addReservedKeyWord("MASTER_SSL".toLowerCase());
- addReservedKeyWord("MASTER_SSL_CA".toLowerCase());
- addReservedKeyWord("MASTER_SSL_CAPATH".toLowerCase());
- addReservedKeyWord("MASTER_SSL_CERT".toLowerCase());
- addReservedKeyWord("MASTER_SSL_CIPHER".toLowerCase());
- addReservedKeyWord("MASTER_SSL_CRL".toLowerCase());
- addReservedKeyWord("MASTER_SSL_CRLPATH".toLowerCase());
- addReservedKeyWord("MASTER_SSL_KEY".toLowerCase());
- addReservedKeyWord("MASTER_SSL_VERIFY_SERVER_CERT".toLowerCase());
- addReservedKeyWord("MASTER_TLS_VERSION".toLowerCase());
- addReservedKeyWord("MASTER_USER".toLowerCase());
- addReservedKeyWord("MATCH".toLowerCase());
- addReservedKeyWord("MAXVALUE".toLowerCase());
- addReservedKeyWord("MAX_CONNECTIONS_PER_HOUR".toLowerCase());
- addReservedKeyWord("MAX_QUERIES_PER_HOUR".toLowerCase());
- addReservedKeyWord("MAX_ROWS".toLowerCase());
- addReservedKeyWord("MAX_SIZE".toLowerCase());
- addReservedKeyWord("MAX_STATEMENT_TIME".toLowerCase());
- addReservedKeyWord("MAX_UPDATES_PER_HOUR".toLowerCase());
- addReservedKeyWord("MAX_USER_CONNECTIONS".toLowerCase());
- addReservedKeyWord("MEDIUM".toLowerCase());
- addReservedKeyWord("MEDIUMBLOB".toLowerCase());
- addReservedKeyWord("MEDIUMINT".toLowerCase());
- addReservedKeyWord("MEDIUMTEXT".toLowerCase());
- addReservedKeyWord("MEMORY".toLowerCase());
- addReservedKeyWord("MERGE".toLowerCase());
- addReservedKeyWord("MESSAGE_TEXT".toLowerCase());
- addReservedKeyWord("MICROSECOND".toLowerCase());
- addReservedKeyWord("MIDDLEINT".toLowerCase());
- addReservedKeyWord("MIGRATE".toLowerCase());
- addReservedKeyWord("MINUTE".toLowerCase());
- addReservedKeyWord("MINUTE_MICROSECOND".toLowerCase());
- addReservedKeyWord("MINUTE_SECOND".toLowerCase());
- addReservedKeyWord("MIN_ROWS".toLowerCase());
- addReservedKeyWord("MOD".toLowerCase());
- addReservedKeyWord("MODE".toLowerCase());
- addReservedKeyWord("MODIFIES".toLowerCase());
- addReservedKeyWord("MODIFY".toLowerCase());
- addReservedKeyWord("MONTH".toLowerCase());
- addReservedKeyWord("MULTILINESTRING".toLowerCase());
- addReservedKeyWord("MULTIPOINT".toLowerCase());
- addReservedKeyWord("MULTIPOLYGON".toLowerCase());
- addReservedKeyWord("MUTEX".toLowerCase());
- addReservedKeyWord("MYSQL_ERRNO".toLowerCase());
- addReservedKeyWord("NAME".toLowerCase());
- addReservedKeyWord("NAMES".toLowerCase());
- addReservedKeyWord("NATIONAL".toLowerCase());
- addReservedKeyWord("NATURAL".toLowerCase());
- addReservedKeyWord("NCHAR".toLowerCase());
- addReservedKeyWord("NDB".toLowerCase());
- addReservedKeyWord("NDBCLUSTER".toLowerCase());
- addReservedKeyWord("NEVER".toLowerCase());
- addReservedKeyWord("NEW".toLowerCase());
- addReservedKeyWord("NEXT".toLowerCase());
- addReservedKeyWord("NO".toLowerCase());
- addReservedKeyWord("NODEGROUP".toLowerCase());
- addReservedKeyWord("NONBLOCKING".toLowerCase());
- addReservedKeyWord("NONE".toLowerCase());
- addReservedKeyWord("NOT".toLowerCase());
- addReservedKeyWord("NO_WAIT".toLowerCase());
- addReservedKeyWord("NO_WRITE_TO_BINLOG".toLowerCase());
- addReservedKeyWord("NULL".toLowerCase());
- addReservedKeyWord("NUMBER".toLowerCase());
- addReservedKeyWord("NUMERIC".toLowerCase());
- addReservedKeyWord("NVARCHAR".toLowerCase());
- addReservedKeyWord("OFFSET".toLowerCase());
- addReservedKeyWord("OLD_PASSWORD".toLowerCase());
- addReservedKeyWord("ON".toLowerCase());
- addReservedKeyWord("ONE".toLowerCase());
- addReservedKeyWord("ONLY".toLowerCase());
- addReservedKeyWord("OPEN".toLowerCase());
- addReservedKeyWord("OPTIMIZE".toLowerCase());
- addReservedKeyWord("OPTIMIZER_COSTS".toLowerCase());
- addReservedKeyWord("OPTION".toLowerCase());
- addReservedKeyWord("OPTIONALLY".toLowerCase());
- addReservedKeyWord("OPTIONS".toLowerCase());
- addReservedKeyWord("OR".toLowerCase());
- addReservedKeyWord("ORDER".toLowerCase());
- addReservedKeyWord("OUT".toLowerCase());
- addReservedKeyWord("OUTER".toLowerCase());
- addReservedKeyWord("OUTFILE".toLowerCase());
- addReservedKeyWord("OWNER".toLowerCase());
- addReservedKeyWord("PACK_KEYS".toLowerCase());
- addReservedKeyWord("PAGE".toLowerCase());
- addReservedKeyWord("PARSER".toLowerCase());
- addReservedKeyWord("PARSE_GCOL_EXPR".toLowerCase());
- addReservedKeyWord("PARTIAL".toLowerCase());
- addReservedKeyWord("PARTITION".toLowerCase());
- addReservedKeyWord("PARTITIONING".toLowerCase());
- addReservedKeyWord("PARTITIONS".toLowerCase());
- addReservedKeyWord("PASSWORD".toLowerCase());
- addReservedKeyWord("PHASE".toLowerCase());
- addReservedKeyWord("PLUGIN".toLowerCase());
- addReservedKeyWord("PLUGINS".toLowerCase());
- addReservedKeyWord("PLUGIN_DIR".toLowerCase());
- addReservedKeyWord("POINT".toLowerCase());
- addReservedKeyWord("POLYGON".toLowerCase());
- addReservedKeyWord("PORT".toLowerCase());
- addReservedKeyWord("PRECEDES".toLowerCase());
- addReservedKeyWord("PRECISION".toLowerCase());
- addReservedKeyWord("PREPARE".toLowerCase());
- addReservedKeyWord("PRESERVE".toLowerCase());
- addReservedKeyWord("PREV".toLowerCase());
- addReservedKeyWord("PRIMARY".toLowerCase());
- addReservedKeyWord("PRIVILEGES".toLowerCase());
- addReservedKeyWord("PROCEDURE".toLowerCase());
- addReservedKeyWord("PROCESSLIST".toLowerCase());
- addReservedKeyWord("PROFILE".toLowerCase());
- addReservedKeyWord("PROFILES".toLowerCase());
- addReservedKeyWord("PROXY".toLowerCase());
- addReservedKeyWord("PURGE".toLowerCase());
- addReservedKeyWord("QUARTER".toLowerCase());
- addReservedKeyWord("QUERY".toLowerCase());
- addReservedKeyWord("QUICK".toLowerCase());
- addReservedKeyWord("RANGE".toLowerCase());
- addReservedKeyWord("READ".toLowerCase());
- addReservedKeyWord("READS".toLowerCase());
- addReservedKeyWord("READ_ONLY".toLowerCase());
- addReservedKeyWord("READ_WRITE".toLowerCase());
- addReservedKeyWord("REAL".toLowerCase());
- addReservedKeyWord("REBUILD".toLowerCase());
- addReservedKeyWord("RECOVER".toLowerCase());
- addReservedKeyWord("REDOFILE".toLowerCase());
- addReservedKeyWord("REDO_BUFFER_SIZE".toLowerCase());
- addReservedKeyWord("REDUNDANT".toLowerCase());
- addReservedKeyWord("REFERENCES".toLowerCase());
- addReservedKeyWord("REGEXP".toLowerCase());
- addReservedKeyWord("RELAY".toLowerCase());
- addReservedKeyWord("RELAYLOG".toLowerCase());
- addReservedKeyWord("RELAY_LOG_FILE".toLowerCase());
- addReservedKeyWord("RELAY_LOG_POS".toLowerCase());
- addReservedKeyWord("RELAY_THREAD".toLowerCase());
- addReservedKeyWord("RELEASE".toLowerCase());
- addReservedKeyWord("RELOAD".toLowerCase());
- addReservedKeyWord("REMOVE".toLowerCase());
- addReservedKeyWord("RENAME".toLowerCase());
- addReservedKeyWord("REORGANIZE".toLowerCase());
- addReservedKeyWord("REPAIR".toLowerCase());
- addReservedKeyWord("REPEAT".toLowerCase());
- addReservedKeyWord("REPEATABLE".toLowerCase());
- addReservedKeyWord("REPLACE".toLowerCase());
- addReservedKeyWord("REPLICATE_DO_DB".toLowerCase());
- addReservedKeyWord("REPLICATE_DO_TABLE".toLowerCase());
- addReservedKeyWord("REPLICATE_IGNORE_DB".toLowerCase());
- addReservedKeyWord("REPLICATE_IGNORE_TABLE".toLowerCase());
- addReservedKeyWord("REPLICATE_REWRITE_DB".toLowerCase());
- addReservedKeyWord("REPLICATE_WILD_DO_TABLE".toLowerCase());
- addReservedKeyWord("REPLICATE_WILD_IGNORE_TABLE".toLowerCase());
- addReservedKeyWord("REPLICATION".toLowerCase());
- addReservedKeyWord("REQUIRE".toLowerCase());
- addReservedKeyWord("RESET".toLowerCase());
- addReservedKeyWord("RESIGNAL".toLowerCase());
- addReservedKeyWord("RESTORE".toLowerCase());
- addReservedKeyWord("RESTRICT".toLowerCase());
- addReservedKeyWord("RESUME".toLowerCase());
- addReservedKeyWord("RETURN".toLowerCase());
- addReservedKeyWord("RETURNED_SQLSTATE".toLowerCase());
- addReservedKeyWord("RETURNS".toLowerCase());
- addReservedKeyWord("REVERSE".toLowerCase());
- addReservedKeyWord("REVOKE".toLowerCase());
- addReservedKeyWord("RIGHT".toLowerCase());
- addReservedKeyWord("RLIKE".toLowerCase());
- addReservedKeyWord("ROLLBACK".toLowerCase());
- addReservedKeyWord("ROLLUP".toLowerCase());
- addReservedKeyWord("ROTATE".toLowerCase());
- addReservedKeyWord("ROUTINE".toLowerCase());
- addReservedKeyWord("ROW".toLowerCase());
- addReservedKeyWord("ROWS".toLowerCase());
- addReservedKeyWord("ROW_COUNT".toLowerCase());
- addReservedKeyWord("ROW_FORMAT".toLowerCase());
- addReservedKeyWord("RTREE".toLowerCase());
- addReservedKeyWord("SAVEPOINT".toLowerCase());
- addReservedKeyWord("SCHEDULE".toLowerCase());
- addReservedKeyWord("SCHEMA".toLowerCase());
- addReservedKeyWord("SCHEMAS".toLowerCase());
- addReservedKeyWord("SCHEMA_NAME".toLowerCase());
- addReservedKeyWord("SECOND".toLowerCase());
- addReservedKeyWord("SECOND_MICROSECOND".toLowerCase());
- addReservedKeyWord("SECURITY".toLowerCase());
- addReservedKeyWord("SELECT".toLowerCase());
- addReservedKeyWord("SENSITIVE".toLowerCase());
- addReservedKeyWord("SEPARATOR".toLowerCase());
- addReservedKeyWord("SERIAL".toLowerCase());
- addReservedKeyWord("SERIALIZABLE".toLowerCase());
- addReservedKeyWord("SERVER".toLowerCase());
- addReservedKeyWord("SESSION".toLowerCase());
- addReservedKeyWord("SET".toLowerCase());
- addReservedKeyWord("SHARE".toLowerCase());
- addReservedKeyWord("SHOW".toLowerCase());
- addReservedKeyWord("SHUTDOWN".toLowerCase());
- addReservedKeyWord("SIGNAL".toLowerCase());
- addReservedKeyWord("SIGNED".toLowerCase());
- addReservedKeyWord("SIMPLE".toLowerCase());
- addReservedKeyWord("SLAVE".toLowerCase());
- addReservedKeyWord("SLOW".toLowerCase());
- addReservedKeyWord("SMALLINT".toLowerCase());
- addReservedKeyWord("SNAPSHOT".toLowerCase());
- addReservedKeyWord("SOCKET".toLowerCase());
- addReservedKeyWord("SOME".toLowerCase());
- addReservedKeyWord("SONAME".toLowerCase());
- addReservedKeyWord("SOUNDS".toLowerCase());
- addReservedKeyWord("SOURCE".toLowerCase());
- addReservedKeyWord("SPATIAL".toLowerCase());
- addReservedKeyWord("SPECIFIC".toLowerCase());
- addReservedKeyWord("SQL".toLowerCase());
- addReservedKeyWord("SQLEXCEPTION".toLowerCase());
- addReservedKeyWord("SQLSTATE".toLowerCase());
- addReservedKeyWord("SQLWARNING".toLowerCase());
- addReservedKeyWord("SQL_AFTER_GTIDS".toLowerCase());
- addReservedKeyWord("SQL_AFTER_MTS_GAPS".toLowerCase());
- addReservedKeyWord("SQL_BEFORE_GTIDS".toLowerCase());
- addReservedKeyWord("SQL_BIG_RESULT".toLowerCase());
- addReservedKeyWord("SQL_BUFFER_RESULT".toLowerCase());
- addReservedKeyWord("SQL_CACHE".toLowerCase());
- addReservedKeyWord("SQL_CALC_FOUND_ROWS".toLowerCase());
- addReservedKeyWord("SQL_NO_CACHE".toLowerCase());
- addReservedKeyWord("SQL_SMALL_RESULT".toLowerCase());
- addReservedKeyWord("SQL_THREAD".toLowerCase());
- addReservedKeyWord("SQL_TSI_DAY".toLowerCase());
- addReservedKeyWord("SQL_TSI_HOUR".toLowerCase());
- addReservedKeyWord("SQL_TSI_MINUTE".toLowerCase());
- addReservedKeyWord("SQL_TSI_MONTH".toLowerCase());
- addReservedKeyWord("SQL_TSI_QUARTER".toLowerCase());
- addReservedKeyWord("SQL_TSI_SECOND".toLowerCase());
- addReservedKeyWord("SQL_TSI_WEEK".toLowerCase());
- addReservedKeyWord("SQL_TSI_YEAR".toLowerCase());
- addReservedKeyWord("SSL".toLowerCase());
- addReservedKeyWord("STACKED".toLowerCase());
- addReservedKeyWord("START".toLowerCase());
- addReservedKeyWord("STARTING".toLowerCase());
- addReservedKeyWord("STARTS".toLowerCase());
- addReservedKeyWord("STATS_AUTO_RECALC".toLowerCase());
- addReservedKeyWord("STATS_PERSISTENT".toLowerCase());
- addReservedKeyWord("STATS_SAMPLE_PAGES".toLowerCase());
- addReservedKeyWord("STATUS".toLowerCase());
- addReservedKeyWord("STOP".toLowerCase());
- addReservedKeyWord("STORAGE".toLowerCase());
- addReservedKeyWord("STORED".toLowerCase());
- addReservedKeyWord("STRAIGHT_JOIN".toLowerCase());
- addReservedKeyWord("STRING".toLowerCase());
- addReservedKeyWord("SUBCLASS_ORIGIN".toLowerCase());
- addReservedKeyWord("SUBJECT".toLowerCase());
- addReservedKeyWord("SUBPARTITION".toLowerCase());
- addReservedKeyWord("SUBPARTITIONS".toLowerCase());
- addReservedKeyWord("SUPER".toLowerCase());
- addReservedKeyWord("SUSPEND".toLowerCase());
- addReservedKeyWord("SWAPS".toLowerCase());
- addReservedKeyWord("SWITCHES".toLowerCase());
- addReservedKeyWord("TABLE".toLowerCase());
- addReservedKeyWord("TABLES".toLowerCase());
- addReservedKeyWord("TABLESPACE".toLowerCase());
- addReservedKeyWord("TABLE_CHECKSUM".toLowerCase());
- addReservedKeyWord("TABLE_NAME".toLowerCase());
- addReservedKeyWord("TEMPORARY".toLowerCase());
- addReservedKeyWord("TEMPTABLE".toLowerCase());
- addReservedKeyWord("TERMINATED".toLowerCase());
- addReservedKeyWord("TEXT".toLowerCase());
- addReservedKeyWord("THAN".toLowerCase());
- addReservedKeyWord("THEN".toLowerCase());
- addReservedKeyWord("TIME".toLowerCase());
- addReservedKeyWord("TIMESTAMP".toLowerCase());
- addReservedKeyWord("TIMESTAMPADD".toLowerCase());
- addReservedKeyWord("TIMESTAMPDIFF".toLowerCase());
- addReservedKeyWord("TINYBLOB".toLowerCase());
- addReservedKeyWord("TINYINT".toLowerCase());
- addReservedKeyWord("TINYTEXT".toLowerCase());
- addReservedKeyWord("TO".toLowerCase());
- addReservedKeyWord("TRAILING".toLowerCase());
- addReservedKeyWord("TRANSACTION".toLowerCase());
- addReservedKeyWord("TRIGGER".toLowerCase());
- addReservedKeyWord("TRIGGERS".toLowerCase());
- addReservedKeyWord("TRUE".toLowerCase());
- addReservedKeyWord("TRUNCATE".toLowerCase());
- addReservedKeyWord("TYPE".toLowerCase());
- addReservedKeyWord("TYPES".toLowerCase());
- addReservedKeyWord("UNCOMMITTED".toLowerCase());
- addReservedKeyWord("UNDEFINED".toLowerCase());
- addReservedKeyWord("UNDO".toLowerCase());
- addReservedKeyWord("UNDOFILE".toLowerCase());
- addReservedKeyWord("UNDO_BUFFER_SIZE".toLowerCase());
- addReservedKeyWord("UNICODE".toLowerCase());
- addReservedKeyWord("UNINSTALL".toLowerCase());
- addReservedKeyWord("UNION".toLowerCase());
- addReservedKeyWord("UNIQUE".toLowerCase());
- addReservedKeyWord("UNKNOWN".toLowerCase());
- addReservedKeyWord("UNLOCK".toLowerCase());
- addReservedKeyWord("UNSIGNED".toLowerCase());
- addReservedKeyWord("UNTIL".toLowerCase());
- addReservedKeyWord("UPDATE".toLowerCase());
- addReservedKeyWord("UPGRADE".toLowerCase());
- addReservedKeyWord("USAGE".toLowerCase());
- addReservedKeyWord("USE".toLowerCase());
- addReservedKeyWord("USER".toLowerCase());
- addReservedKeyWord("USER_RESOURCES".toLowerCase());
- addReservedKeyWord("USE_FRM".toLowerCase());
- addReservedKeyWord("USING".toLowerCase());
- addReservedKeyWord("UTC_DATE".toLowerCase());
- addReservedKeyWord("UTC_TIME".toLowerCase());
- addReservedKeyWord("UTC_TIMESTAMP".toLowerCase());
- addReservedKeyWord("VALIDATION".toLowerCase());
- addReservedKeyWord("VALUE".toLowerCase());
- addReservedKeyWord("VALUES".toLowerCase());
- addReservedKeyWord("VARBINARY".toLowerCase());
- addReservedKeyWord("VARCHAR".toLowerCase());
- addReservedKeyWord("VARCHARACTER".toLowerCase());
- addReservedKeyWord("VARIABLES".toLowerCase());
- addReservedKeyWord("VARYING".toLowerCase());
- addReservedKeyWord("VIEW".toLowerCase());
- addReservedKeyWord("VIRTUAL".toLowerCase());
- addReservedKeyWord("WAIT".toLowerCase());
- addReservedKeyWord("WARNINGS".toLowerCase());
- addReservedKeyWord("WEEK".toLowerCase());
- addReservedKeyWord("WEIGHT_STRING".toLowerCase());
- addReservedKeyWord("WHEN".toLowerCase());
- addReservedKeyWord("WHERE".toLowerCase());
- addReservedKeyWord("WHILE".toLowerCase());
- addReservedKeyWord("WITH".toLowerCase());
- addReservedKeyWord("WITHOUT".toLowerCase());
- addReservedKeyWord("WORK".toLowerCase());
- addReservedKeyWord("WRAPPER".toLowerCase());
- addReservedKeyWord("WRITE".toLowerCase());
- addReservedKeyWord("X509".toLowerCase());
- addReservedKeyWord("XA".toLowerCase());
- addReservedKeyWord("XID".toLowerCase());
- addReservedKeyWord("XML".toLowerCase());
- addReservedKeyWord("XOR".toLowerCase());
- addReservedKeyWord("YEAR".toLowerCase());
- addReservedKeyWord("YEAR_MONTH".toLowerCase());
- addReservedKeyWord("ZEROFILL".toLowerCase());
+ // Add additional Keywords
+ super(MYSQL_KEYWORDS);
}
/**
diff --git
a/empire-db/src/main/java/org/apache/empire/dbms/oracle/DBMSHandlerOracle.java
b/empire-db/src/main/java/org/apache/empire/dbms/oracle/DBMSHandlerOracle.java
index dfea4bc4..143c73ba 100644
---
a/empire-db/src/main/java/org/apache/empire/dbms/oracle/DBMSHandlerOracle.java
+++
b/empire-db/src/main/java/org/apache/empire/dbms/oracle/DBMSHandlerOracle.java
@@ -74,6 +74,9 @@ public class DBMSHandlerOracle extends DBMSHandlerBase
NUMBER // as NUMBER(1) with 1 for true and 0 for false
}
+ // Additional Oracle Keywords
+ protected static final String[] ORACLE_KEYWORDS = new String[] { "date",
"number" };
+
private boolean oracle8Compatibilty = false;
private BooleanType booleanType = BooleanType.NUMBER;
@@ -88,11 +91,10 @@ public class DBMSHandlerOracle extends DBMSHandlerBase
*/
public DBMSHandlerOracle()
{
+ // Add additional Keywords
+ super(ORACLE_KEYWORDS);
// Info
log.info("DBMSHandlerOracle created. Boolean Type is " + booleanType);
- // Additional reserved names
- this.reservedSQLKeywords.add("date");
- this.reservedSQLKeywords.add("number");
}
public boolean isOracle8Compatibilty()
diff --git
a/empire-db/src/main/java/org/apache/empire/dbms/postgresql/DBMSHandlerPostgreSQL.java
b/empire-db/src/main/java/org/apache/empire/dbms/postgresql/DBMSHandlerPostgreSQL.java
index c49f4443..f561cf44 100644
---
a/empire-db/src/main/java/org/apache/empire/dbms/postgresql/DBMSHandlerPostgreSQL.java
+++
b/empire-db/src/main/java/org/apache/empire/dbms/postgresql/DBMSHandlerPostgreSQL.java
@@ -58,6 +58,16 @@ public class DBMSHandlerPostgreSQL extends DBMSHandlerBase
private static final Logger log =
LoggerFactory.getLogger(DBMSHandlerPostgreSQL.class);
+ // Additional Postgres Keywords
+ protected static final String[] POSTGRES_KEYWORDS = new String[] {
+ "ALL", "ANALYSE", "ANALYZE", "AND", "ANY", "ARRAY", "AS", "ASC",
"ASYMMETRIC", "AUTHORIZATION", "BETWEEN", "BINARY", "BOTH",
+ "CASE", "CAST", "CHECK", "COLLATE", "CREATE", "CROSS", "CURRENT_DATE",
"CURRENT_ROLE", "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER",
+ "DEFAULT", "DEFERRABLE", "DESC", "DISTINCT", "DO", "ELSE", "END",
"EXCEPT", "FALSE", "FOR", "FOREIGN", "FREEZE", "FROM", "FULL",
+ "GRANT", "HAVING", "ILIKE", "IN", "INITIALLY", "INNER", "INTERSECT",
"INTO", "IS", "ISNULL", "JOIN", "LEADING", "LEFT", "LIKE", "LIMIT",
"LOCALTIME", "LOCALTIMESTAMP",
+ "NATURAL", "NEW", "NOT", "NOTNULL", "NULL", "OFF", "OFFSET", "OLD",
"ON", "ONLY", "OR", "ORDER", "OUTER", "OVERLAPS",
+ "PLACING", "PRIMARY", "REFERENCES", "RETURNING", "RIGHT",
"SESSION_USER", "SIMILAR", "SOME", "SYMMETRIC",
+ "THEN", "TO", "TRAILING", "TRUE", "UNION", "UNIQUE", "USING",
"VERBOSE", "WHEN", "WHERE", "WITH"
+ };
private String databaseName;
@@ -70,7 +80,8 @@ public class DBMSHandlerPostgreSQL extends DBMSHandlerBase
*/
public DBMSHandlerPostgreSQL()
{
- setReservedKeywords();
+ // Add additional Keywords
+ super(POSTGRES_KEYWORDS);
}
/**
@@ -344,114 +355,6 @@ public class DBMSHandlerPostgreSQL extends DBMSHandlerBase
default: return super.getResultValue(rset, columnIndex,
dataType);
}
}
-
-
- protected void addReservedKeyWord(final String keyWord){
- boolean added = reservedSQLKeywords.add(keyWord.toLowerCase());
- if(!added){
- log.debug("Existing keyWord added: " + keyWord);
- }
- }
-
- protected void setReservedKeywords(){
- // list of reserved keywords
- //
http://www.postgresql.org/docs/current/static/sql-keywords-appendix.html
- addReservedKeyWord("ALL".toLowerCase());
- addReservedKeyWord("ANALYSE".toLowerCase());
- addReservedKeyWord("ANALYZE".toLowerCase());
- addReservedKeyWord("AND".toLowerCase());
- addReservedKeyWord("ANY".toLowerCase());
- addReservedKeyWord("ARRAY".toLowerCase());
- addReservedKeyWord("AS".toLowerCase());
- addReservedKeyWord("ASC".toLowerCase());
- addReservedKeyWord("ASYMMETRIC".toLowerCase());
- addReservedKeyWord("AUTHORIZATION".toLowerCase());
- addReservedKeyWord("BETWEEN".toLowerCase());
- addReservedKeyWord("BINARY".toLowerCase());
- addReservedKeyWord("BOTH".toLowerCase());
- addReservedKeyWord("CASE".toLowerCase());
- addReservedKeyWord("CAST".toLowerCase());
- addReservedKeyWord("CHECK".toLowerCase());
- addReservedKeyWord("COLLATE".toLowerCase());
- //addReservedKeyWord("COLUMN".toLowerCase());
- //addReservedKeyWord("CONSTRAINT".toLowerCase());
- addReservedKeyWord("CREATE".toLowerCase());
- addReservedKeyWord("CROSS".toLowerCase());
- addReservedKeyWord("CURRENT_DATE".toLowerCase());
- addReservedKeyWord("CURRENT_ROLE".toLowerCase());
- addReservedKeyWord("CURRENT_TIME".toLowerCase());
- addReservedKeyWord("CURRENT_TIMESTAMP".toLowerCase());
- addReservedKeyWord("CURRENT_USER".toLowerCase());
- addReservedKeyWord("DEFAULT".toLowerCase());
- addReservedKeyWord("DEFERRABLE".toLowerCase());
- addReservedKeyWord("DESC".toLowerCase());
- addReservedKeyWord("DISTINCT".toLowerCase());
- addReservedKeyWord("DO".toLowerCase());
- addReservedKeyWord("ELSE".toLowerCase());
- addReservedKeyWord("END".toLowerCase());
- addReservedKeyWord("EXCEPT".toLowerCase());
- addReservedKeyWord("FALSE".toLowerCase());
- addReservedKeyWord("FOR".toLowerCase());
- addReservedKeyWord("FOREIGN".toLowerCase());
- addReservedKeyWord("FREEZE".toLowerCase());
- addReservedKeyWord("FROM".toLowerCase());
- addReservedKeyWord("FULL".toLowerCase());
- addReservedKeyWord("GRANT".toLowerCase());
- //addReservedKeyWord("GROUP".toLowerCase());
- addReservedKeyWord("HAVING".toLowerCase());
- addReservedKeyWord("ILIKE".toLowerCase());
- addReservedKeyWord("IN".toLowerCase());
- addReservedKeyWord("INITIALLY".toLowerCase());
- addReservedKeyWord("INNER".toLowerCase());
- addReservedKeyWord("INTERSECT".toLowerCase());
- addReservedKeyWord("INTO".toLowerCase());
- addReservedKeyWord("IS".toLowerCase());
- addReservedKeyWord("ISNULL".toLowerCase());
- addReservedKeyWord("JOIN".toLowerCase());
- addReservedKeyWord("LEADING".toLowerCase());
- addReservedKeyWord("LEFT".toLowerCase());
- addReservedKeyWord("LIKE".toLowerCase());
- addReservedKeyWord("LIMIT".toLowerCase());
- addReservedKeyWord("LOCALTIME".toLowerCase());
- addReservedKeyWord("LOCALTIMESTAMP".toLowerCase());
- addReservedKeyWord("NATURAL".toLowerCase());
- addReservedKeyWord("NEW".toLowerCase());
- addReservedKeyWord("NOT".toLowerCase());
- addReservedKeyWord("NOTNULL".toLowerCase());
- addReservedKeyWord("NULL".toLowerCase());
- addReservedKeyWord("OFF".toLowerCase());
- addReservedKeyWord("OFFSET".toLowerCase());
- addReservedKeyWord("OLD".toLowerCase());
- addReservedKeyWord("ON".toLowerCase());
- addReservedKeyWord("ONLY".toLowerCase());
- addReservedKeyWord("OR".toLowerCase());
- addReservedKeyWord("ORDER".toLowerCase());
- addReservedKeyWord("OUTER".toLowerCase());
- addReservedKeyWord("OVERLAPS".toLowerCase());
- addReservedKeyWord("PLACING".toLowerCase());
- addReservedKeyWord("PRIMARY".toLowerCase());
- addReservedKeyWord("REFERENCES".toLowerCase());
- addReservedKeyWord("RETURNING".toLowerCase());
- addReservedKeyWord("RIGHT".toLowerCase());
- //addReservedKeyWord("SELECT".toLowerCase());
- addReservedKeyWord("SESSION_USER".toLowerCase());
- addReservedKeyWord("SIMILAR".toLowerCase());
- addReservedKeyWord("SOME".toLowerCase());
- addReservedKeyWord("SYMMETRIC".toLowerCase());
- //addReservedKeyWord("TABLE".toLowerCase());
- addReservedKeyWord("THEN".toLowerCase());
- addReservedKeyWord("TO".toLowerCase());
- addReservedKeyWord("TRAILING".toLowerCase());
- addReservedKeyWord("TRUE".toLowerCase());
- addReservedKeyWord("UNION".toLowerCase());
- addReservedKeyWord("UNIQUE".toLowerCase());
- //addReservedKeyWord("USER".toLowerCase());
- addReservedKeyWord("USING".toLowerCase());
- addReservedKeyWord("VERBOSE".toLowerCase());
- addReservedKeyWord("WHEN".toLowerCase());
- addReservedKeyWord("WHERE".toLowerCase());
- addReservedKeyWord("WITH".toLowerCase());
- }
/**
* Initializes the Sequence names of SERIAL and BIGSERIAL columns
diff --git
a/empire-db/src/main/java/org/apache/empire/dbms/sqlite/DBMSHandlerSQLite.java
b/empire-db/src/main/java/org/apache/empire/dbms/sqlite/DBMSHandlerSQLite.java
index 31921a6b..0772aa57 100644
---
a/empire-db/src/main/java/org/apache/empire/dbms/sqlite/DBMSHandlerSQLite.java
+++
b/empire-db/src/main/java/org/apache/empire/dbms/sqlite/DBMSHandlerSQLite.java
@@ -61,6 +61,16 @@ public class DBMSHandlerSQLite extends DBMSHandlerBase
// *Deprecated* private static final long serialVersionUID = 1L;
private static final Logger log =
LoggerFactory.getLogger(DBMSHandlerSQLite.class);
+ protected static final String[] SQLITE_KEYWORDS = new String[] {
+ "ABORT", "ACTION", "ADD", "AFTER", "ALL", "ALTER", "ANALYZE", "AND",
"AS", "ASC", "ATTACH", "AUTOINCREMENT", "BEFORE", "BEGIN", "BETWEEN", "BY",
+ "CASCADE", "CASE", "CAST", "CHECK", "COLLATE", "COLUMN", "COMMIT",
"CONFLICT", "CONSTRAINT", "CREATE", "CROSS", "CURRENT_DATE", "CURRENT_TIME",
"CURRENT_DATETIME",
+ "DATABASE", "DEFAULT", "DEFERRABLE", "DEFERRED", "DELETE", "DESC",
"DETACH", "DISTINCT", "DROP", "EACH", "ELSE", "END", "ESCAPE", "EXCEPT",
"EXCLUSIVE", "EXISTS", "EXPLAIN",
+ "FAIL", "FOR", "FOREIGN", "FROM", "FULL", "GLOB", "GROUP", "HAVING",
"IF", "IGNORE", "IMMEDIATE", "IN", "INDEX", "INDEXED", "INITIALLY", "INNER",
"INSERT", "INSTEAD", "INTERSECT", "INTO", "IS", "ISNULL",
+ "JOIN", "KEY", "LEFT", "LIKE", "LIMIT", "MATCH", "NATURAL", "NO",
"NOT", "NOTNULL", "NULL", "OF", "OFFSET", "ON", "OR", "ORDER", "OUTER", "PLAN",
"PRAGMA", "PRIMARY",
+ "QUERY", "RAISE", "REFERENCES", "REGEXP", "REINDEX", "RELEASE",
"RENAME", "REPLACE", "RESTRICT", "RIGHT", "ROLLBACK", "ROW", "SAVEPOINT",
"SELECT", "SET",
+ "TABLE", "TEMP", "TEMPORARY", "THEN", "TO", "TRANSACTION", "TRIGGER",
"UNION", "UNIQUE", "UPDATE", "USING", "VACUUM", "VALUES", "VIEW", "VIRTUAL",
"WHEN", "WHERE",
+ };
+
/**
* Defines the SQLite command type.
*/
@@ -119,147 +129,8 @@ public class DBMSHandlerSQLite extends DBMSHandlerBase
*/
public DBMSHandlerSQLite()
{
- setReservedKeywords();
- }
-
- private void addReservedKeyWord(final String keyWord)
- {
- boolean added = reservedSQLKeywords.add(keyWord.toLowerCase());
- if (!added)
- {
- log.debug("Existing keyWord added: " + keyWord);
- }
- }
-
- private void setReservedKeywords()
- {
- // list of reserved keywords
- // http://www.sqlite.org/lang_keywords.html
- addReservedKeyWord("ABORT".toLowerCase());
- addReservedKeyWord("ACTION".toLowerCase());
- addReservedKeyWord("ADD".toLowerCase());
- addReservedKeyWord("AFTER".toLowerCase());
- addReservedKeyWord("ALL".toLowerCase());
- addReservedKeyWord("ALTER".toLowerCase());
- addReservedKeyWord("ANALYZE".toLowerCase());
- addReservedKeyWord("AND".toLowerCase());
- addReservedKeyWord("AS".toLowerCase());
- addReservedKeyWord("ASC".toLowerCase());
- addReservedKeyWord("ATTACH".toLowerCase());
- addReservedKeyWord("AUTOINCREMENT".toLowerCase());
- addReservedKeyWord("BEFORE".toLowerCase());
- addReservedKeyWord("BEGIN".toLowerCase());
- addReservedKeyWord("BETWEEN".toLowerCase());
- addReservedKeyWord("BY".toLowerCase());
- addReservedKeyWord("CASCADE".toLowerCase());
- addReservedKeyWord("CASE".toLowerCase());
- addReservedKeyWord("CAST".toLowerCase());
- addReservedKeyWord("CHECK".toLowerCase());
- addReservedKeyWord("COLLATE".toLowerCase());
- addReservedKeyWord("COLUMN".toLowerCase());
- addReservedKeyWord("COMMIT".toLowerCase());
- addReservedKeyWord("CONFLICT".toLowerCase());
- addReservedKeyWord("CONSTRAINT".toLowerCase());
-
- addReservedKeyWord("CREATE".toLowerCase());
- addReservedKeyWord("CROSS".toLowerCase());
- addReservedKeyWord("CURRENT_DATE".toLowerCase());
- addReservedKeyWord("CURRENT_TIME".toLowerCase());
- addReservedKeyWord("CURRENT_DATETIME".toLowerCase());
- addReservedKeyWord("DATABASE".toLowerCase());
- addReservedKeyWord("DEFAULT".toLowerCase());
- addReservedKeyWord("DEFERRABLE".toLowerCase());
- addReservedKeyWord("DEFERRED".toLowerCase());
- addReservedKeyWord("DELETE".toLowerCase());
- addReservedKeyWord("DESC".toLowerCase());
- addReservedKeyWord("DETACH".toLowerCase());
- addReservedKeyWord("DISTINCT".toLowerCase());
- addReservedKeyWord("DROP".toLowerCase());
- addReservedKeyWord("EACH".toLowerCase());
- addReservedKeyWord("ELSE".toLowerCase());
- addReservedKeyWord("END".toLowerCase());
- addReservedKeyWord("ESCAPE".toLowerCase());
- addReservedKeyWord("EXCEPT".toLowerCase());
- addReservedKeyWord("EXCLUSIVE".toLowerCase());
- addReservedKeyWord("EXISTS".toLowerCase());
- addReservedKeyWord("EXPLAIN".toLowerCase());
- addReservedKeyWord("FAIL".toLowerCase());
- addReservedKeyWord("FOR".toLowerCase());
- addReservedKeyWord("FOREIGN".toLowerCase());
-
- addReservedKeyWord("FROM".toLowerCase());
- addReservedKeyWord("FULL".toLowerCase());
- addReservedKeyWord("GLOB".toLowerCase());
- addReservedKeyWord("GROUP".toLowerCase());
- addReservedKeyWord("HAVING".toLowerCase());
- addReservedKeyWord("IF".toLowerCase());
- addReservedKeyWord("IGNORE".toLowerCase());
- addReservedKeyWord("IMMEDIATE".toLowerCase());
- addReservedKeyWord("IN".toLowerCase());
- addReservedKeyWord("INDEX".toLowerCase());
- addReservedKeyWord("INDEXED".toLowerCase());
- addReservedKeyWord("INITIALLY".toLowerCase());
- addReservedKeyWord("INNER".toLowerCase());
- addReservedKeyWord("INSERT".toLowerCase());
- addReservedKeyWord("INSTEAD".toLowerCase());
- addReservedKeyWord("INTERSECT".toLowerCase());
- addReservedKeyWord("INTO".toLowerCase());
- addReservedKeyWord("IS".toLowerCase());
- addReservedKeyWord("ISNULL".toLowerCase());
- addReservedKeyWord("JOIN".toLowerCase());
- addReservedKeyWord("KEY".toLowerCase());
- addReservedKeyWord("LEFT".toLowerCase());
- addReservedKeyWord("LIKE".toLowerCase());
- addReservedKeyWord("LIMIT".toLowerCase());
- addReservedKeyWord("MATCH".toLowerCase());
-
- addReservedKeyWord("NATURAL".toLowerCase());
- addReservedKeyWord("NO".toLowerCase());
- addReservedKeyWord("NOT".toLowerCase());
- addReservedKeyWord("NOTNULL".toLowerCase());
- addReservedKeyWord("NULL".toLowerCase());
- addReservedKeyWord("OF".toLowerCase());
- addReservedKeyWord("OFFSET".toLowerCase());
- addReservedKeyWord("ON".toLowerCase());
- addReservedKeyWord("OR".toLowerCase());
- addReservedKeyWord("ORDER".toLowerCase());
- addReservedKeyWord("OUTER".toLowerCase());
- addReservedKeyWord("PLAN".toLowerCase());
- addReservedKeyWord("PRAGMA".toLowerCase());
- addReservedKeyWord("PRIMARY".toLowerCase());
- addReservedKeyWord("QUERY".toLowerCase());
- addReservedKeyWord("RAISE".toLowerCase());
- addReservedKeyWord("REFERENCES".toLowerCase());
- addReservedKeyWord("REGEXP".toLowerCase());
- addReservedKeyWord("REINDEX".toLowerCase());
- addReservedKeyWord("RELEASE".toLowerCase());
- addReservedKeyWord("RENAME".toLowerCase());
- addReservedKeyWord("REPLACE".toLowerCase());
- addReservedKeyWord("RESTRICT".toLowerCase());
- addReservedKeyWord("RIGHT".toLowerCase());
- addReservedKeyWord("ROLLBACK".toLowerCase());
-
- addReservedKeyWord("ROW".toLowerCase());
- addReservedKeyWord("SAVEPOINT".toLowerCase());
- addReservedKeyWord("SELECT".toLowerCase());
- addReservedKeyWord("SET".toLowerCase());
- addReservedKeyWord("TABLE".toLowerCase());
- addReservedKeyWord("TEMP".toLowerCase());
- addReservedKeyWord("TEMPORARY".toLowerCase());
- addReservedKeyWord("THEN".toLowerCase());
- addReservedKeyWord("TO".toLowerCase());
- addReservedKeyWord("TRANSACTION".toLowerCase());
- addReservedKeyWord("TRIGGER".toLowerCase());
- addReservedKeyWord("UNION".toLowerCase());
- addReservedKeyWord("UNIQUE".toLowerCase());
- addReservedKeyWord("UPDATE".toLowerCase());
- addReservedKeyWord("USING".toLowerCase());
- addReservedKeyWord("VACUUM".toLowerCase());
- addReservedKeyWord("VALUES".toLowerCase());
- addReservedKeyWord("VIEW".toLowerCase());
- addReservedKeyWord("VIRTUAL".toLowerCase());
- addReservedKeyWord("WHEN".toLowerCase());
- addReservedKeyWord("WHERE".toLowerCase());
+ // Add additional Keywords
+ super(SQLITE_KEYWORDS);
}
/**
diff --git
a/empire-db/src/main/java/org/apache/empire/dbms/sqlserver/DBMSHandlerMSSQL.java
b/empire-db/src/main/java/org/apache/empire/dbms/sqlserver/DBMSHandlerMSSQL.java
index dd86a5b7..2c0bcd11 100644
---
a/empire-db/src/main/java/org/apache/empire/dbms/sqlserver/DBMSHandlerMSSQL.java
+++
b/empire-db/src/main/java/org/apache/empire/dbms/sqlserver/DBMSHandlerMSSQL.java
@@ -57,6 +57,9 @@ public class DBMSHandlerMSSQL extends DBMSHandlerBase
{
// *Deprecated* private static final long serialVersionUID = 1L;
private static final Logger log =
LoggerFactory.getLogger(DBMSHandlerMSSQL.class);
+
+ // Additional SQL-Server Keywords
+ protected static final String[] MSSQL_SQL_KEYWORDS = new String[] {
"case", "when", "type", "key", "plan" };
/**
* Provides a DBCommand implementation for Microsoft SQL-Server
@@ -172,18 +175,14 @@ public class DBMSHandlerMSSQL extends DBMSHandlerBase
private boolean useDateTime2 = true;
protected DBDDLGenerator<?> ddlGenerator = null; // lazy creation
-
- protected static final String[] MSSQL_SQL_KEYWORDS = new String[] {
"type", "key", "plan" };
/**
* Constructor for the MSSQL database dbms.<br>
*/
public DBMSHandlerMSSQL()
{
- // Initialize List of reserved Keywords
- for (String keyWord:MSSQL_SQL_KEYWORDS){
- reservedSQLKeywords.add(keyWord);
- }
+ // Add additional Keywords
+ super(MSSQL_SQL_KEYWORDS);
}
public String getDatabaseName()