/*
* The MIT License (MIT)
*
* Copyright (c) 2014-2017
[email protected]
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package tk.mybatis.mapper.util;
import java.util.HashSet;
import java.util.Set;
/**
* This class contains a somewhat comprehensive list of SQL reserved words.
* Since different databases have different reserved words, this list is
* inclusive of many different databases - so it may include words that are not
* reserved in some databases.
*
* <p>This list is based on the list from Drupal Handbook:
* http://drupal.org/node/141051 With additions for DB2
*
* @author Jeff Butler
*/
public class SqlReservedWords {
private static Set<String> RESERVED_WORDS;
static {
String[] words = {"A", //$NON-NLS-1$
"ABORT", //$NON-NLS-1$
"ABS", //$NON-NLS-1$
"ABSOLUTE", //$NON-NLS-1$
"ACCESS", //$NON-NLS-1$
"ACTION", //$NON-NLS-1$
"ADA", //$NON-NLS-1$
"ADD", // DB2 //$NON-NLS-1$
"ADMIN", //$NON-NLS-1$
"AFTER", // DB2 //$NON-NLS-1$
"AGGREGATE", //$NON-NLS-1$
"ALIAS", // DB2 //$NON-NLS-1$
"ALL", // DB2 //$NON-NLS-1$
"ALLOCATE", // DB2 //$NON-NLS-1$
"ALLOW", // DB2 //$NON-NLS-1$
"ALSO", //$NON-NLS-1$
"ALTER", // DB2 //$NON-NLS-1$
"ALWAYS", //$NON-NLS-1$
"ANALYSE", //$NON-NLS-1$
"ANALYZE", //$NON-NLS-1$
"AND", // DB2 //$NON-NLS-1$
"ANY", // DB2 //$NON-NLS-1$
"APPLICATION", // DB2 //$NON-NLS-1$
"ARE", //$NON-NLS-1$
"ARRAY", //$NON-NLS-1$
"AS", // DB2 //$NON-NLS-1$
"ASC", //$NON-NLS-1$
"ASENSITIVE", //$NON-NLS-1$
"ASSERTION", //$NON-NLS-1$
"ASSIGNMENT", //$NON-NLS-1$
"ASSOCIATE", // DB2 //$NON-NLS-1$
"ASUTIME", // DB2 //$NON-NLS-1$
"ASYMMETRIC", //$NON-NLS-1$
"AT", //$NON-NLS-1$
"ATOMIC", //$NON-NLS-1$
"ATTRIBUTE", //$NON-NLS-1$
"ATTRIBUTES", //$NON-NLS-1$
"AUDIT", // DB2 //$NON-NLS-1$
"AUTHORIZATION", // DB2 //$NON-NLS-1$
"AUTO_INCREMENT", //$NON-NLS-1$
"AUX", // DB2 //$NON-NLS-1$
"AUXILIARY", // DB2 //$NON-NLS-1$
"AVG", //$NON-NLS-1$
"AVG_ROW_LENGTH", //$NON-NLS-1$
"BACKUP", //$NON-NLS-1$
"BACKWARD", //$NON-NLS-1$
"BEFORE", // DB2 //$NON-NLS-1$
"BEGIN", // DB2 //$NON-NLS-1$
"BERNOULLI", //$NON-NLS-1$
"BETWEEN", // DB2 //$NON-NLS-1$
"BIGINT", //$NON-NLS-1$
"BINARY", // DB2 //$NON-NLS-1$
"BIT", //$NON-NLS-1$
"BIT_LENGTH", //$NON-NLS-1$
"BITVAR", //$NON-NLS-1$
"BLOB", //$NON-NLS-1$
"BOOL", //$NON-NLS-1$
"BOOLEAN", //$NON-NLS-1$
"BOTH", //$NON-NLS-1$
"BREADTH", //$NON-NLS-1$
"BREAK", //$NON-NLS-1$
"BROWSE", //$NON-NLS-1$
"BUFFERPOOL", // DB2 //$NON-NLS-1$
"BULK", //$NON-NLS-1$
"BY", // DB2 //$NON-NLS-1$
"C", //$NON-NLS-1$
"CACHE", // DB2 //$NON-NLS-1$
"CALL", // DB2 //$NON-NLS-1$
"CALLED", // DB2 //$NON-NLS-1$
"CAPTURE", // DB2 //$NON-NLS-1$
"CARDINALITY", // DB2 //$NON-NLS-1$
"CASCADE", //$NON-NLS-1$
"CASCADED", // DB2 //$NON-NLS-1$
"CASE", // DB2 //$NON-NLS-1$
"CAST", // DB2 //$NON-NLS-1$
"CATALOG", //$NON-NLS-1$
"CATALOG_NAME", //$NON-NLS-1$
"CCSID", // DB2 //$NON-NLS-1$
"CEIL", //$NON-NLS-1$
"CEILING", //$NON-NLS-1$
"CHAIN", //$NON-NLS-1$
"CHANGE", //$NON-NLS-1$
"CHAR", // DB2 //$NON-NLS-1$
"CHAR_LENGTH", //$NON-NLS-1$
"CHARACTER", // DB2 //$NON-NLS-1$
"CHARACTER_LENGTH", //$NON-NLS-1$
"CHARACTER_SET_CATALOG", //$NON-NLS-1$
"CHARACTER_SET_NAME", //$NON-NLS-1$
"CHARACTER_SET_SCHEMA", //$NON-NLS-1$
"CHARACTERISTICS", //$NON-NLS-1$
"CHARACTERS", //$NON-NLS-1$
"CHECK", // DB2 //$NON-NLS-1$
"CHECKED", //$NON-NLS-1$
"CHECKPOINT", //$NON-NLS-1$
"CHECKSUM", //$NON-NLS-1$
"CLASS", //$NON-NLS-1$
"CLASS_ORIGIN", //$NON-NLS-1$
"CLOB", //$NON-NLS-1$
"CLOSE", // DB2 //$NON-NLS-1$
"CLUSTER", // DB2 //$NON-NLS-1$
"CLUSTERED", //$NON-NLS-1$
"COALESCE", //$NON-NLS-1$
"COBOL", //$NON-NLS-1$
"COLLATE", //$NON-NLS-1$
"COLLATION", //$NON-NLS-1$
"COLLATION_CATALOG", //$NON-NLS-1$
"COLLATION_NAME", //$NON-NLS-1$
"COLLATION_SCHEMA", //$NON-NLS-1$
"COLLECT", //$NON-NLS-1$
"COLLECTION", // DB2 //$NON-NLS-1$
"COLLID", // DB2 //$NON-NLS-1$
"COLUMN", // DB2 //$NON-NLS-1$
"COLUMN_NAME", //$NON-NLS-1$
"COLUMNS", //$NON-NLS-1$
"COMMAND_FUNCTION", //$NON-NLS-1$
"COMMAND_FUNCTION_CODE", //$NON-NLS-1$
"COMMENT", // DB2 //$NON-NLS-1$
"COMMIT", // DB2 //$NON-NLS-1$
"COMMITTED", //$NON-NLS-1$
"COMPLETION", //$NON-NLS-1$
"COMPRESS", //$NON-NLS-1$
"COMPUTE", //$NON-NLS-1$
"CONCAT", // DB2 //$NON-NLS-1$
"CONDITION", // DB2 //$NON-NLS-1$
"CONDITION_NUMBER", //$NON-NLS-1$
"CONNECT", // DB2 //$NON-NLS-1$
"CONNECTION", // DB2 //$NON-NLS-1$
"CONNECTION_NAME", //$NON-NLS-1$
"CONSTRAINT", // DB2 //$NON-NLS-1$
"CONSTRAINT_CATALOG", //$NON-NLS-1$
"CONSTRAINT_NAME", //$NON-NLS-1$
"CONSTRAINT_SCHEMA", //$NON-NLS-1$
"CONSTRAINTS", //$NON-NLS-1$
"CONSTRUCTOR", //$NON-NLS-1$
"CONTAINS", // DB2 //$NON-NLS-1$
"CONTAINSTABLE", //$NON-NLS-1$
"CONTINUE", // DB2 //$NON-NLS-1$
"CONVERSION", //$NON-NLS-1$
"CONVERT", //$NON-NLS-1$
"COPY", //$NON-NLS-1$
"CORR", //$NON-NLS-1$