|
|
What this is
This file is included in the DevDaily.com
"Java Source Code
Warehouse" project. The intent of this project is to help you "Learn
Java by Example" TM.
Other links
The source code
/* Copyright (c) 2001-2004, The HSQL Development Group
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* Neither the name of the HSQL Development Group nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG,
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.hsqldb;
import org.hsqldb.lib.IntValueHashMap;
import org.hsqldb.lib.HashSet;
/**
* Defines and enumerates reserved and non-reserved SQL
* keywords.
*
* @author Nitin Chauhan
* @author fredt@users
* @since HSQLDB 1.7.2
* @version 1.7.2
*/
public class Token {
private static IntValueHashMap commandSet;
//
static final String T_ASTERISK = "*";
static final String T_COMMA = ",";
static final String T_CLOSEBRACKET = ")";
static final String T_EQUALS = "=";
static final String T_OPENBRACKET = "(";
static final String T_SEMICOLON = ";";
// SQL 200n reserved tokens
static final String T_ADD = "ADD"; //reserved
static final String T_ALL = "ALL"; //reserved
static final String T_ALLOCATE = "ALLOCATE"; //reserved
static final String T_ALTER = "ALTER"; //reserved
static final String T_AND = "AND"; //reserved
static final String T_ANY = "ANY"; //reserved
static final String T_ARE = "ARE"; //reserved
static final String T_ARRAY = "ARRAY"; //reserved
static final String T_AS = "AS"; //reserved
static final String T_ASENSITIVE =
"ASENSITIVE"; //reserved
static final String T_ASYMMETRIC =
"ASYMMETRIC"; //reserved
static final String T_AT = "AT"; //reserved
static final String T_ATOMIC = "ATOMIC"; //reserved
static final String T_AUTHORIZATION =
"AUTHORIZATION"; //reserved
static final String T_BEGIN = "BEGIN"; //reserved
static final String T_BETWEEN = "BETWEEN";
static final String T_BIGINT = "BIGINT"; //reserved
public static final String T_BINARY = "BINARY"; //reserved
static final String T_BLOB = "BLOB"; //reserved
static final String T_BOOLEAN = "BOOLEAN"; //reserved
static final String T_BOTH = "BOTH";
static final String T_BY = "BY"; //reserved
static final String T_CALL = "CALL"; //reserved
static final String T_CALLED = "CALLED"; //reserved
static final String T_CASCADED = "CASCADED"; //reserved
static final String T_CASE = "CASE"; //reserved
static final String T_CAST = "CAST"; //reserved
static final String T_CHAR = "CHAR"; //reserved
static final String T_CHARACTER =
"CHARACTER"; //reserved
static final String T_CHECK = "CHECK"; //reserved
static final String T_CLOB = "CLOB"; //reserved
static final String T_CLOSE = "CLOSE"; //reserved
static final String T_COLLATE = "COLLATE"; //reserved
static final String T_COLUMN = "COLUMN"; //reserved
static final String T_COMMIT = "COMMIT"; //reserved
static final String T_CONDITION =
"CONDIITON"; //reserved
static final String T_CONNECT = "CONNECT"; //reserved
static final String T_CONSTRAINT =
"CONSTRAINT"; //reserved
static final String T_CONTINUE = "CONTINUE"; //reserved
static final String T_CORRESPONDING =
"CORRESPONDING"; //reserved
static final String T_CREATE = "CREATE"; //reserved
static final String T_CROSS = "CONCAT"; //reserved
static final String T_CUBE = "CUBE"; //reserved
static final String T_CURRENT = "CURRENT"; //reserved
static final String T_CURRENT_DATE =
"CURRENT_DATE"; //reserved
static final String T_CURRENT_DEFAULT_TRANSFORM_GROUP =
"CURRENT_DEFAULT_TRANSFORM_GROUP"; //reserved
static final String T_CURRENT_PATH = "CURRENT_PATH"; //reserved
static final String T_CURRENT_ROLE = "CURRENT_ROLE"; //reserved
static final String T_CURRENT_TIME = "CURRENT_TIME"; //reserved
static final String T_CURRENT_TIMESTAMP =
"CURRENT_TIMESTAMP"; //reserved
static final String T_CURRENT_TRANSFORM_TROUP_FOR_TYPE =
"CURRENT_TRANSFORM_GROUP_FOR_TYPE"; //reserved
static final String T_CURRENT_USER = "CURRENT_USER"; //reserved
static final String T_CURSOR = "CURSOR"; //reserved
static final String T_CYCLE = "CYCLE"; //reserved
static final String T_DATE = "DATE"; //reserved
static final String T_DAY = "DAY"; //reserved
static final String T_DEALLOCATE = "DEALLOCATE"; //reserved
static final String T_DEC = "DEC"; //reserved
static final String T_DECIMAL = "DECIMAL"; //reserved
static final String T_DECLARE = "DECLARE"; //reserved
static final String T_DEFAULT = "DEFAULT"; //reserved
static final String T_DELETE = "DELETE"; //reserved
static final String T_DEREF = "DEREF"; //reserved
static final String T_DESCRIBE = "DESCRIBE"; //reserved
static final String T_DETERMINISTIC = "DETERMINISTIC"; //reserved
static final String T_DISCONNECT = "DISCONNECT"; //reserved
static final String T_DISTINCT = "DISTINCT"; //reserved
static final String T_DO = "DO"; //reserved
static final String T_DOUBLE = "DOUBLE"; //reserved
static final String T_DROP = "DROP"; //reserved
static final String T_DYNAMIC = "DYNAMIC"; //reserved
static final String T_EACH = "EACH"; //reserved
static final String T_ELEMENT = "ELEMENT"; //reserved
static final String T_ELSE = "ELSE"; //reserved
static final String T_ELSEIF = "ELSEIF"; //reserved
static final String T_END = "END"; //reserved
static final String T_ESCAPE = "ESCAPE"; //reserved
static final String T_EXCEPT = "EXCEPT"; //reserved
static final String T_EXEC = "EXEC"; //reserved
static final String T_EXECUTE = "EXECUTE"; //reserved
static final String T_EXISTS = "EXISTS"; //reserved
static final String T_EXIT = "EXIT"; //reserved
static final String T_EXTERNAL = "EXTERNAL"; //reserved
static final String T_FALSE = "FALSE"; //reserved
static final String T_FETCH = "FETCH"; //reserved
static final String T_FILTER = "FILTER"; //reserved
static final String T_FLOAT = "FLOAT"; //reserved
static final String T_FOR = "FOR"; //reserved
static final String T_FOREIGN = "FOREIGN"; //reserved
static final String T_FREE = "FREE"; //reserved
static final String T_FROM = "FROM"; //reserved
static final String T_FULL = "FULL"; //reserved
static final String T_FUNCTION = "FUNCTION"; //reserved
static final String T_GET = "GET"; //reserved
static final String T_GLOBAL = "GLOBAL"; //reserved
static final String T_GRANT = "GRANT"; //reserved
static final String T_GROUP = "GROUP"; //reserved
static final String T_GROUPING = "GROUPING"; //reserved
static final String T_HANDLER = "HANDLER"; //reserved
static final String T_HAVING = "HAVING"; //reserved
static final String T_HOLD = "HOLD"; //reserved
static final String T_HOUR = "HOUR"; //reserved
static final String T_IDENTITY = "IDENTITY"; //reserved
static final String T_IF = "IF"; //reserved
static final String T_IMMEDIATE = "IMMEDIATE"; //reserved
static final String T_IN = "IN"; //reserved
static final String T_INDICATOR = "INDICATOR"; //reserved
static final String T_INNER = "INNER"; //reserved
static final String T_INOUT = "INOUT"; //reserved
static final String T_INPUT = "INPUT"; //reserved
static final String T_INSENSITIVE = "INSENSITIVE"; //reserved
static final String T_INSERT = "INSERT"; //reserved
static final String T_INT = "INT"; //reserved
static final String T_INTEGER = "INTEGER"; //reserved
static final String T_INTERSECT = "INTERSECT"; //reserved
static final String T_INTERVAL = "INTERVAL"; //reserved
static final String T_INTO = "INTO"; //reserved
static final String T_IS = "IS"; //reserved
static final String T_ITERATE = "ITERATE"; //reserved
static final String T_JOIN = "JOIN"; //reserved
static final String T_LANGUAGE = "LANGUAGE"; //reserved
static final String T_LARGE = "LARGE"; //reserved
static final String T_LATERAL = "LATERAL"; //reserved
static final String T_LEADING = "LEADING"; //reserved
static final String T_LEAVE = "LEAVE"; //reserved
static final String T_LEFT = "LEFT"; //reserved
static final String T_LIKE = "LIKE"; //reserved
static final String T_LOCAL = "LOCAL"; //reserved
static final String T_LOCALTIME = "LOCALTIME"; //reserved
static final String T_LOCALTIMESTAMP = "LOCALTIMESTAMP"; //reserved
static final String T_LOOP = "LOOP"; //reserved
static final String T_MATCH = "MATCH"; //reserved
static final String T_MEMBER = "MEMBER"; //reserved
static final String T_METHOD = "METHOD"; //reserved
static final String T_MINUTE = "MINUTE"; //reserved
static final String T_MODIFIES = "MODIFIES"; //reserved
static final String T_MODULE = "MODULE"; //reserved
static final String T_MONTH = "MONTH"; //reserved
static final String T_MULTISET = "MULTISET"; //reserved
static final String T_NATIONAL = "NATIONAL"; //reserved
static final String T_NATURAL = "NAUTRAL"; //reserved
static final String T_NCHAR = "NCHAR"; //reserved
static final String T_NCLOB = "NCLOB"; //reserved
static final String T_NEW = "NEW"; //reserved
static final String T_NEXT = "NEXT"; //reserved
static final String T_NO = "NO"; //reserved
static final String T_NONE = "NONE"; //reserved
static final String T_NOT = "NOT"; //reserved
static final String T_NULL = "NULL"; //reserved
static final String T_NUMERIC = "NUMERIC"; //reserved
static final String T_OF = "OF"; //reserved
static final String T_OLD = "OLD"; //reserved
static final String T_ON = "ON"; //reserved
static final String T_ONLY = "ONLY"; //reserved
static final String T_OPEN = "OPEN"; //reserved
static final String T_OR = "OR"; //reserved
static final String T_ORDER = "ORDER"; //reserved
static final String T_OUT = "OUT"; //reserved
static final String T_OUTER = "OUTER"; //reserved
static final String T_OUTPUT = "OUTPUT"; //reserved
static final String T_OVER = "OVER"; //reserved
static final String T_OVERLAPS = "OVERLAPS"; //reserved
static final String T_PARAMETER = "PARAMETER"; //reserved
static final String T_PARTITION = "PARTITION"; //reserved
static final String T_PRECISION = "PRECISION"; //reserved
static final String T_PREPARE = "PREPARE"; //reserved
static final String T_PRIMARY = "PRIMARY"; //reserved
static final String T_PROCEDURE = "PROCEDURE"; //reserved
static final String T_RANGE = "RANGE"; //reserved
static final String T_READS = "READS"; //reserved
static final String T_REAL = "REAL"; //reserved
static final String T_RECURSIVE = "RECURSIVE"; //reserved
static final String T_REF = "REF"; //reserved
static final String T_REFERENCES = "REFERENCES"; //reserved
static final String T_REFERENCING = "REFERENCING"; //reserved
static final String T_RELEASE = "RELEASE"; //reserved
static final String T_REPEAT = "REPEAT"; //reserved
static final String T_RESIGNAL = "RESIGNAL"; //reserved
static final String T_RESULT = "RESULT"; //reserved
static final String T_RETURN = "RETURN"; //reserved
static final String T_RETURNS = "RETURNS"; //reserved
static final String T_REVOKE = "REVOKE"; //reserved
static final String T_RIGHT = "RIGHT"; //reserved
static final String T_ROLLBACK = "ROLLBACK"; //reserved
static final String T_ROLLUP = "ROLLUP"; //reserved
static final String T_ROW = "ROW"; //reserved
static final String T_ROWS = "ROWS"; //reserved
static final String T_SAVEPOINT = "SAVEPOINT"; //reserved
static final String T_SCOPE = "SCOPE"; //reserved
static final String T_SCROLL = "SCROLL"; //reserved
static final String T_SECOND = "SECOND"; //reserved
static final String T_SEARCH = "SEARCH"; //reserved
static final String T_SELECT = "SELECT"; //reserved
static final String T_SENSITIVE = "SENSITIVE"; //reserved
static final String T_SESSION_USER = "SESSION_USER"; //reserved
static final String T_SET = "SET"; //reserved
static final String T_SIGNAL = "SIGNAL"; //reserved
static final String T_SIMILAR = "SIMILAR"; //reserved
static final String T_SMALLINT = "SMALLINT"; //reserved
static final String T_SOME = "SOME"; //reserved
static final String T_SPECIFIC = "SPECIFIC"; //reserved
static final String T_SPECIFICTYPE = "SPECIFICTYPE"; //reserved
static final String T_SQL = "SQL"; //reserved
static final String T_SQLEXCEPTION = "SQLEXCEPTION"; //reserved
static final String T_SQLSTATE = "SQLSTATE"; //reserved
static final String T_SQLWARNING = "SQLWARNING"; //reserved
static final String T_START = "START"; //reserved
static final String T_STATIC = "STATIC"; //reserved
static final String T_SUBMULTISET = "SUBMULTISET"; //reserved
static final String T_SYMMETRIC = "SYMMETRIC"; //reserved
static final String T_SYSTEM = "SYSTEM"; //reserved
static final String T_SYSTEM_USER = "SYSTEM_USER"; //reserved
static final String T_TABLE = "TABLE"; //reserved
static final String T_TABLESAMPLE = "TABLESAMPLE"; //reserved
static final String T_THEN = "THEN"; //reserved
static final String T_TIME = "TIME"; //reserved
static final String T_TIMESTAMP = "TIMESTAMP"; //reserved
static final String T_TIMEZONE_HOUR = "TIMEZONE_HOUR"; //reserved
static final String T_TIMEZONE_MINUTE = "TIMEZONE_MINUTE"; //reserved
static final String T_TO = "TO"; //reserved
static final String T_TRAILING = "TRAILING"; //reserved
static final String T_TRANSLATION = "TRANSLATION"; //reserved
static final String T_TREAT = "TREAT"; //reserved
static final String T_TRIGGER = "TRIGGER"; //reserved
static final String T_TRUE = "TRUE"; //reserved
static final String T_UNDO = "UNDO"; //reserved
static final String T_UNION = "UNION"; //reserved
static final String T_UNIQUE = "UNIQUE"; //reserved
static final String T_UNKNOWN = "UNKNOWN"; //reserved
static final String T_UNNEST = "UNNEST"; //reserved
static final String T_UNTIL = "UNTIL"; //reserved
static final String T_UPDATE = "UPDATE"; //reserved
static final String T_USER = "USER"; //reserved
static final String T_USING = "USING"; //reserved
static final String T_VALUE = "VALUE"; //reserved
static final String T_VALUES = "VALUES"; //reserved
static final String T_VARCHAR = "VARCHAR"; //reserved
static final String T_VARYING = "VARYING"; //reserved
static final String T_WHEN = "WHEN"; //reserved
static final String T_WHENEVER = "WHENEVER"; //reserved
static final String T_WHERE = "WHERE"; //reserved
static final String T_WHILE = "WHILE"; //reserved
static final String T_WINDOW = "WINDOW"; //reserved
static final String T_WITH = "WITH"; //reserved
static final String T_WITHIN = "WITHIN"; //reserved
static final String T_WITHOUT = "WITHOUT"; //reserved
static final String T_YEAR = "YEAR"; //reserved
// other tokens
static final String T_ALWAYS = "ALWAYS";
static final String T_ACTION = "ACTION";
static final String T_ADMIN = "ADMIN";
static final String T_AFTER = "AFTER";
static final String T_ALIAS = "ALIAS";
static final String T_ASC = "ASC";
static final String T_AUTOCOMMIT = "AUTOCOMMIT";
static final String T_AVG = "AVG";
static final String T_BEFORE = "BEFORE";
static final String T_CACHED = "CACHED";
static final String T_CASCADE = "CASCADE";
static final String T_CASEWHEN = "CASEWHEN";
static final String T_CHECKPOINT = "CHECKPOINT";
static final String T_CLASS = "CLASS";
static final String T_COALESCE = "COALESCE";
static final String T_COMPACT = "COMPACT";
public static final String T_COMPRESSED = "COMPRESSED";
static final String T_CONCAT = "CONCAT";
static final String T_CONVERT = "CONVERT";
static final String T_COUNT = "COUNT";
static final String T_DEFRAG = "DEFRAG";
static final String T_DESC = "DESC";
static final String T_EXPLAIN = "EXPLAIN";
static final String T_EXTRACT = "EXTRACT";
static final String T_GENERATED = "GENERATED";
static final String T_IFNULL = "IFNULL";
static final String T_IGNORECASE = "IGNORECASE";
static final String T_IMMEDIATELY = "IMMEDIATELY";
static final String T_INCREMENT = "INCREMENT";
static final String T_INDEX = "INDEX";
static final String T_KEY = "KEY";
static final String T_LIMIT = "LIMIT";
static final String T_LOGSIZE = "LOGSIZE";
static final String T_MAX = "MAX";
static final String T_MAXROWS = "MAXROWS";
static final String T_MEMORY = "MEMORY";
static final String T_MERGE = "MERGE";
static final String T_MIN = "MIN";
static final String T_MINUS = "MINUS";
static final String T_NOW = "NOW";
static final String T_NOWAIT = "NOWAIT";
static final String T_NULLIF = "NULLIF";
static final String T_PASSWORD = "PASSWORD";
static final String T_PLAN = "PLAN";
static final String T_POSITION = "POSITION";
static final String T_PROPERTY = "PROPERTY";
static final String T_PUBLIC = "PUBLIC";
static final String T_QUEUE = "QUEUE";
static final String T_READONLY = "READONLY";
static final String T_REFERENTIAL_INTEGRITY = "REFERENTIAL_INTEGRITY";
static final String T_RENAME = "RENAME";
static final String T_RESTART = "RESTART";
static final String T_RESTRICT = "RESTRICT";
static final String T_SCRIPT = "SCRIPT";
static final String T_SCRIPTFORMAT = "SCRIPTFORMAT";
static final String T_SEQUENCE = "SEQUENCE";
static final String T_SHUTDOWN = "SHUTDOWN";
static final String T_SOURCE = "SOURCE";
static final String T_SUBSTRING = "SUBSTRING";
static final String T_SUM = "SUM";
static final String T_SYSDATE = "SYSDATE";
static final String T_TEMP = "TEMP";
public static final String T_TEXT = "TEXT";
static final String T_TODAY = "TODAY";
static final String T_TOP = "TOP";
static final String T_TRIM = "TRIM";
static final String T_VIEW = "VIEW";
static final String T_WORK = "WORK";
static final String T_WRITE_DELAY = "WRITE_DELAY";
// SQL 200n token values
static final int ADD = 1;
static final int ALL = 2;
static final int ALLOCATE = 3;
static final int ALTER = 4;
static final int AND = 5;
static final int ANY = 6;
static final int ARE = 7;
static final int ARRAY = 8;
static final int AS = 9;
static final int ASENSITIVE = 10;
static final int ASYMMETRIC = 11;
static final int AT = 12;
static final int ATOMIC = 13;
static final int AUTHORIZATION = 14;
static final int BEGIN = 15;
static final int BETWEEN = 16;
static final int BIGINT = 17;
static final int BINARY = 18;
static final int BLOB = 19;
static final int BOOLEAN = 20;
static final int BOTH = 21;
static final int BY = 22;
public static final int CALL = 23;
static final int CALLED = 24;
static final int CASCADED = 25;
static final int CASE = 26;
static final int CAST = 27;
static final int CHAR = 28;
static final int CHARACTER = 29;
static final int CHECK = 30;
static final int CLOB = 31;
static final int CLOSE = 32;
static final int COLLATE = 33;
static final int COLUMN = 34;
static final int COMMIT = 35;
static final int CONDITION = 36;
static final int CONNECT = 37;
static final int CONSTRAINT = 38;
static final int CONTINUE = 39;
static final int CORRESPONDING = 40;
static final int CREATE = 41;
static final int CROSS = 42;
static final int CUBE = 43;
static final int CURRENT = 44;
static final int CURRENT_DATE = 45;
static final int CURRENT_DEFAULT_TRANSFORM_GRO = 46;
static final int CURRENT_PATH = 47;
static final int CURRENT_ROLE = 48;
static final int CURRENT_TIME = 49;
static final int CURRENT_TIMESTAMP = 50;
static final int CURRENT_TRANSFORM_GROUP_FOR_T = 51;
static final int CURRENT_USER = 52;
static final int CURSOR = 53;
static final int CYCLE = 54;
static final int DATE = 55;
static final int DAY = 56;
static final int DEALLOCATE = 57;
static final int DEC = 58;
static final int DECIMAL = 59;
static final int DECLARE = 60;
static final int DEFAULT = 61;
public static final int DELETE = 62;
static final int DEREF = 63;
static final int DESCRIBE = 64;
static final int DETERMINISTIC = 65;
static final int DISCONNECT = 66;
static final int DISTINCT = 67;
static final int DO = 68;
static final int DOUBLE = 69;
static final int DROP = 70;
static final int DYNAMIC = 71;
static final int EACH = 72;
static final int ELEMENT = 73;
static final int ELSE = 74;
static final int ELSEIF = 75;
static final int END = 76;
static final int ESCAPE = 77;
static final int EXCEPT = 78;
static final int EXEC = 79;
static final int EXECUTE = 80;
static final int EXISTS = 81;
static final int EXIT = 82;
static final int EXTERNAL = 83;
static final int FALSE = 84;
static final int FETCH = 85;
static final int FILTER = 86;
static final int FLOAT = 87;
static final int FOR = 88;
static final int FOREIGN = 89;
static final int FREE = 90;
static final int FROM = 91;
static final int FULL = 92;
static final int FUNCTION = 93;
static final int GET = 94;
static final int GLOBAL = 95;
static final int GRANT = 96;
static final int GROUP = 97;
static final int GROUPING = 98;
static final int HANDLER = 99;
static final int HAVING = 100;
static final int HOLD = 101;
static final int HOUR = 102;
static final int IDENTITY = 103;
static final int IF = 104;
static final int IMMEDIATE = 105;
static final int IN = 106;
static final int INDICATOR = 107;
static final int INNER = 108;
static final int INOUT = 109;
static final int INPUT = 110;
static final int INSENSITIVE = 111;
public static final int INSERT = 112;
static final int INT = 113;
static final int INTEGER = 114;
static final int INTERSECT = 115;
static final int INTERVAL = 116;
static final int INTO = 117;
static final int IS = 118;
static final int ITERATE = 119;
static final int JOIN = 120;
static final int LANGUAGE = 121;
static final int LARGE = 122;
static final int LATERAL = 123;
static final int LEADING = 124;
static final int LEAVE = 125;
static final int LEFT = 126;
static final int LIKE = 127;
static final int LOCAL = 128;
static final int LOCALTIME = 129;
static final int LOCALTIMESTAMP = 130;
static final int LOOP = 131;
static final int MATCH = 132;
static final int MEMBER = 133;
static final int MERGE = 134;
static final int METHOD = 135;
static final int MINUTE = 136;
static final int MODIFIES = 137;
static final int MODULE = 138;
static final int MONTH = 139;
static final int MULTISET = 140;
static final int NATIONAL = 141;
static final int NATURAL = 142;
static final int NCHAR = 143;
static final int NCLOB = 144;
static final int NEW = 145;
static final int NO = 146;
static final int NONE = 147;
static final int NOT = 148;
static final int NULL = 149;
static final int NUMERIC = 150;
static final int OF = 151;
static final int OLD = 152;
static final int ON = 153;
static final int ONLY = 154;
static final int OPEN = 155;
static final int OR = 156;
static final int ORDER = 157;
static final int OUT = 158;
static final int OUTER = 159;
static final int OUTPUT = 160;
static final int OVER = 161;
static final int OVERLAPS = 162;
static final int PARAMETER = 163;
static final int PARTITION = 164;
static final int PRECISION = 165;
static final int PREPARE = 166;
static final int PRIMARY = 167;
static final int PROCEDURE = 168;
static final int RANGE = 169;
static final int READS = 170;
static final int REAL = 171;
static final int RECURSIVE = 172;
static final int REF = 173;
static final int REFERENCES = 174;
static final int REFERENCING = 175;
static final int RELEASE = 176;
static final int REPEAT = 177;
static final int RESIGNAL = 178;
static final int RESULT = 179;
static final int RETURN = 180;
static final int RETURNS = 181;
static final int REVOKE = 182;
static final int RIGHT = 183;
static final int ROLLBACK = 184;
static final int ROLLUP = 185;
static final int ROW = 186;
static final int ROWS = 187;
static final int SAVEPOINT = 188;
static final int SCOPE = 189;
static final int SCROLL = 190;
static final int SEARCH = 191;
static final int SECOND = 192;
public static final int SELECT = 193;
static final int SENSITIVE = 194;
static final int SESSION_USER = 195;
static final int SET = 196;
static final int SIGNAL = 197;
static final int SIMILAR = 198;
static final int SMALLINT = 199;
static final int SOME = 200;
static final int SPECIFIC = 201;
static final int SPECIFICTYPE = 202;
static final int SQL = 203;
static final int SQLEXCEPTION = 204;
static final int SQLSTATE = 205;
static final int SQLWARNING = 206;
static final int START = 207;
static final int STATIC = 208;
static final int SUBMULTISET = 209;
static final int SYMMETRIC = 210;
static final int SYSTEM = 211;
static final int SYSTEM_USER = 212;
static final int TABLE = 213;
static final int TABLESAMPLE = 214;
static final int THEN = 215;
static final int TIME = 216;
static final int TIMESTAMP = 217;
static final int TIMEZONE_HOUR = 218;
static final int TIMEZONE_MINUTE = 219;
static final int TO = 220;
static final int TRAILING = 221;
static final int TRANSLATION = 222;
static final int TREAT = 223;
static final int TRIGGER = 224;
static final int TRUE = 225;
static final int UNDO = 226;
static final int UNION = 227;
static final int UNIQUE = 228;
static final int UNKNOWN = 229;
static final int UNNEST = 220;
static final int UNTIL = 221;
public static final int UPDATE = 222;
static final int USER = 223;
static final int USING = 224;
static final int VALUE = 225;
static final int VALUES = 226;
static final int VARCHAR = 227;
static final int VARYING = 228;
static final int WHEN = 229;
static final int WHENEVER = 230;
static final int WHERE = 231;
static final int WHILE = 232;
static final int WINDOW = 233;
static final int WITH = 234;
static final int WITHIN = 235;
static final int WITHOUT = 236;
static final int YEAR = 237;
// other token values used as switch cases
public static final int UNKNOWNTOKEN = -1;
static final int ALIAS = 300;
static final int AUTOCOMMIT = 301;
static final int CACHED = 302;
static final int CHECKPOINT = 303;
static final int EXPLAIN = 304;
static final int IGNORECASE = 305;
static final int INDEX = 306;
static final int LOGSIZE = 307;
static final int MAXROWS = 308;
static final int MEMORY = 309;
static final int MINUS = 310;
static final int NEXT = 311;
static final int OPENBRACKET = 312;
static final int PASSWORD = 313;
static final int PLAN = 314;
static final int PROPERTY = 315;
static final int READONLY = 316;
static final int REFERENTIAL_INTEGRITY = 317;
static final int RENAME = 318;
static final int SCRIPT = 319;
static final int SCRIPTFORMAT = 320;
static final int SEMICOLON = 321;
static final int SEQUENCE = 322;
static final int SHUTDOWN = 323;
static final int SOURCE = 324;
static final int TEMP = 325;
static final int TEXT = 326;
static final int VIEW = 327;
static final int WRITE_DELAY = 328;
//
static {
commandSet = newCommandSet();
}
/**
* Retrieves a new map from set of string tokens to numeric tokens for
* commonly encountered database command token occurences.
*
* @return a new map for the database command token set
*/
private static IntValueHashMap newCommandSet() {
IntValueHashMap commandSet;
commandSet = new IntValueHashMap(67);
commandSet.put(T_ADD, ADD);
commandSet.put(T_ALIAS, ALIAS);
commandSet.put(T_ALTER, ALTER);
commandSet.put(T_AUTOCOMMIT, AUTOCOMMIT);
commandSet.put(T_CACHED, CACHED);
commandSet.put(T_CALL, CALL);
commandSet.put(T_CHECK, CHECK);
commandSet.put(T_CHECKPOINT, CHECKPOINT);
commandSet.put(T_COLUMN, COLUMN);
commandSet.put(T_COMMIT, COMMIT);
commandSet.put(T_CONNECT, CONNECT);
commandSet.put(T_CONSTRAINT, CONSTRAINT);
commandSet.put(T_CREATE, CREATE);
commandSet.put(T_DELETE, DELETE);
commandSet.put(T_DISCONNECT, DISCONNECT);
commandSet.put(T_DROP, DROP);
commandSet.put(T_EXCEPT, EXCEPT);
commandSet.put(T_EXPLAIN, EXPLAIN);
commandSet.put(T_FOREIGN, FOREIGN);
commandSet.put(T_GRANT, GRANT);
commandSet.put(T_IGNORECASE, IGNORECASE);
commandSet.put(T_INDEX, INDEX);
commandSet.put(T_INSERT, INSERT);
commandSet.put(T_INTERSECT, INTERSECT);
commandSet.put(T_LOGSIZE, LOGSIZE);
commandSet.put(T_MAXROWS, MAXROWS);
commandSet.put(T_MEMORY, MEMORY);
commandSet.put(T_MINUS, MINUS);
commandSet.put(T_NEXT, NEXT);
commandSet.put(T_NOT, NOT);
commandSet.put(T_OPENBRACKET, OPENBRACKET);
commandSet.put(T_PASSWORD, PASSWORD);
commandSet.put(T_PLAN, PLAN);
commandSet.put(T_PRIMARY, PRIMARY);
commandSet.put(T_PROPERTY, PROPERTY);
commandSet.put(T_READONLY, READONLY);
commandSet.put(T_REFERENTIAL_INTEGRITY, REFERENTIAL_INTEGRITY);
commandSet.put(T_RELEASE, RELEASE);
commandSet.put(T_RENAME, RENAME);
commandSet.put(T_REVOKE, REVOKE);
commandSet.put(T_ROLLBACK, ROLLBACK);
commandSet.put(T_SAVEPOINT, SAVEPOINT);
commandSet.put(T_SCRIPT, SCRIPT);
commandSet.put(T_SCRIPTFORMAT, SCRIPTFORMAT);
commandSet.put(T_SELECT, SELECT);
commandSet.put(T_SEMICOLON, SEMICOLON);
commandSet.put(T_SEQUENCE, SEQUENCE);
commandSet.put(T_SET, SET);
commandSet.put(T_SHUTDOWN, SHUTDOWN);
commandSet.put(T_SOURCE, SOURCE);
commandSet.put(T_TABLE, TABLE);
commandSet.put(T_TEMP, TEMP);
commandSet.put(T_TEXT, TEXT);
commandSet.put(T_TRIGGER, TRIGGER);
commandSet.put(T_UNIQUE, UNIQUE);
commandSet.put(T_UPDATE, UPDATE);
commandSet.put(T_UNION, UNION);
commandSet.put(T_USER, USER);
commandSet.put(T_VALUES, VALUES);
commandSet.put(T_VIEW, VIEW);
commandSet.put(T_WRITE_DELAY, WRITE_DELAY);
return commandSet;
}
public static int get(String token) {
return commandSet.get(token, -1);
}
private static HashSet keywords;
static IntValueHashMap valueTokens;
static {
// literals not allowed as table / column names
keywords = new HashSet(67);
// fredt - if we add MONTH, DAY, YEAR etc. MONTH(), DAY() et al will no longer work
// following tokens are values
/* "FALSE",*/
/* "TRUE",*/
/* "NULL", */
/** @todo perhaps rename LEFT() */
// following token is excluded to allow LEFT() function to work
/* "LEFT" ,*/
String keyword[] = {
Token.T_AS, Token.T_AND, Token.T_ALL, Token.T_AVG, Token.T_BY,
Token.T_BETWEEN, Token.T_BOTH, Token.T_CALL, Token.T_CASE,
Token.T_CASEWHEN, Token.T_CAST, Token.T_CONVERT, Token.T_CONCAT,
Token.T_COUNT, Token.T_COALESCE, Token.T_DISTINCT, Token.T_ELSE,
Token.T_END, Token.T_EXISTS, Token.T_EXCEPT, Token.T_EXTRACT,
Token.T_FOR, Token.T_FROM, Token.T_GROUP, Token.T_IF,
Token.T_INTO, Token.T_IFNULL, Token.T_IS, Token.T_IN,
Token.T_JOIN, Token.T_INTERSECT, Token.T_INNER, Token.T_LEADING,
Token.T_LIKE, Token.T_MAX, Token.T_MIN, Token.T_NEXT,
Token.T_NULLIF, Token.T_NOT, Token.T_MINUS, Token.T_ON,
Token.T_ORDER, Token.T_OR, Token.T_OUTER, Token.T_POSITION,
Token.T_PRIMARY, Token.T_SELECT, Token.T_SET, Token.T_SUBSTRING,
Token.T_SUM, Token.T_THEN, Token.T_TO, Token.T_TRAILING,
Token.T_TRIM, Token.T_UNIQUE, Token.T_UNION, Token.T_VALUES,
Token.T_WHEN, Token.T_WHERE, Token.T_HAVING
};
for (int i = 0; i < keyword.length; i++) {
keywords.add(keyword[i]);
}
}
public static boolean isKeyword(String token) {
return keywords.contains(token);
}
}
|