Use the ANSI SQL 2008 reserved words list in SQLTemplates

The list, taken from
https://github.com/jgornick/reservedwordsearch/blob/master/words/ansi-sql2008.json
list a total of 327 words.
This commit is contained in:
Ruben Dijkstra 2014-10-01 22:32:54 +02:00
parent 8f724ab21f
commit 170a42cdc5

View File

@ -40,12 +40,73 @@ import com.mysema.query.types.*;
*/
public class SQLTemplates extends Templates {
//TODO: Add all common SQL reserved words
protected static final ImmutableSet<String> SQL_RESERVED_WORDS
= ImmutableSet.<String>builder()
.add("FROM",
"SELECT")
.build();
= ImmutableSet.of(
"ABS", "ALL", "ALLOCATE", "ALTER", "AND", "ANY", "ARE",
"ARRAY", "ARRAY_AGG", "AS", "ASENSITIVE", "ASYMMETRIC",
"AT", "ATOMIC", "AUTHORIZATION", "AVG", "BEGIN", "BETWEEN",
"BIGINT", "BINARY", "BLOB", "BOOLEAN", "BOTH", "BY", "CALL",
"CALLED", "CARDINALITY", "CASCADED", "CASE", "CAST", "CEIL",
"CEILING", "CHAR", "CHARACTER", "CHARACTER_LENGTH",
"CHAR_LENGTH", "CHECK", "CLOB", "CLOSE", "COALESCE",
"COLLATE", "COLLECT", "COLUMN", "COMMIT", "CONDITION",
"CONNECT", "CONSTRAINT", "CONVERT", "CORR", "CORRESPONDING",
"COUNT", "COVAR_POP", "COVAR_SAMP", "CREATE", "CROSS",
"CUBE", "CUME_DIST", "CURRENT", "CURRENT_CATALOG",
"CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP",
"CURRENT_PATH", "CURRENT_ROLE", "CURRENT_SCHEMA",
"CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE",
"CURRENT_USER", "CURSOR", "CYCLE", "DATE", "DAY",
"DEALLOCATE", "DEC", "DECIMAL", "DECLARE", "DEFAULT",
"DELETE", "DENSE_RANK", "DEREF", "DESCRIBE",
"DETERMINISTIC", "DISCONNECT", "DISTINCT", "DOUBLE",
"DROP", "DYNAMIC", "EACH", "ELEMENT", "ELSE", "END",
"END-EXEC", "ESCAPE", "EVERY", "EXCEPT", "EXEC", "EXECUTE",
"EXISTS", "EXP", "EXTERNAL", "EXTRACT", "FALSE", "FETCH",
"FILTER", "FIRST_VALUE", "FLOAT", "FLOOR", "FOR", "FOREIGN",
"FREE", "FROM", "FULL", "FUNCTION", "FUSION", "GET",
"GLOBAL", "GRANT", "GROUP", "GROUPING", "HAVING", "HOLD",
"HOUR", "IDENTITY", "IN", "INDICATOR", "INNER", "INOUT",
"INSENSITIVE", "INSERT", "INT", "INTEGER", "INTERSECT",
"INTERSECTION", "INTERVAL", "INTO", "IS", "JOIN", "LAG",
"LANGUAGE", "LARGE", "LAST_VALUE", "LATERAL", "LEAD",
"LEADING", "LEFT", "LIKE", "LIKE_REGEX", "LN", "LOCAL",
"LOCALTIME", "LOCALTIMESTAMP", "LOWER", "MATCH", "MAX",
"MAX_CARDINALITY", "MEMBER", "MERGE", "METHOD", "MIN",
"MINUTE", "MOD", "MODIFIES", "MODULE", "MONTH", "MULTISET",
"NATIONAL", "NATURAL", "NCHAR", "NCLOB", "NEW", "NO",
"NONE", "NORMALIZE", "NOT", "NTH_VALUE", "NTILE", "NULL",
"NULLIF", "NUMERIC", "OCCURRENCES_REGEX", "OCTET_LENGTH",
"OF", "OFFSET", "OLD", "ON", "ONLY", "OPEN", "OR", "ORDER",
"OUT", "OUTER", "OVER", "OVERLAPS", "OVERLAY", "PARAMETER",
"PARTITION", "PERCENTILE_CONT", "PERCENTILE_DISC",
"PERCENT_RANK", "POSITION", "POSITION_REGEX", "POWER",
"PRECISION", "PREPARE", "PRIMARY", "PROCEDURE", "RANGE",
"RANK", "READS", "REAL", "RECURSIVE", "REF", "REFERENCES",
"REFERENCING", "REGR_AVGX", "REGR_AVGY", "REGR_COUNT",
"REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE", "REGR_SXX",
"REGR_SXY", "REGR_SYY", "RELEASE", "RESULT", "RETURN",
"RETURNS", "REVOKE", "RIGHT", "ROLLBACK", "ROLLUP",
"ROW", "ROWS", "ROW_NUMBER", "SAVEPOINT", "SCOPE", "SCROLL",
"SEARCH", "SECOND", "SELECT", "SENSITIVE", "SESSION_USER",
"SET", "SIMILAR", "SMALLINT", "SOME", "SPECIFIC",
"SPECIFICTYPE", "SQL", "SQLEXCEPTION", "SQLSTATE",
"SQLWARNING", "SQRT", "START", "STATIC", "STDDEV_POP",
"STDDEV_SAMP", "SUBMULTISET", "SUBSTRING", "SUBSTRING_REGEX",
"SUM", "SYMMETRIC", "SYSTEM", "SYSTEM_USER", "TABLE",
"TABLESAMPLE", "THEN", "TIME", "TIMESTAMP", "TIMEZONE_HOUR",
"TIMEZONE_MINUTE", "TO", "TRAILING", "TRANSLATE",
"TRANSLATE_REGEX", "TRANSLATION", "TREAT", "TRIGGER", "TRIM",
"TRIM_ARRAY", "TRUE", "TRUNCATE", "UESCAPE", "UNION",
"UNIQUE", "UNKNOWN", "UNNEST", "UPDATE", "UPPER", "USER",
"USING", "VALUE", "VALUES", "VARBINARY", "VARCHAR",
"VARYING", "VAR_POP", "VAR_SAMP", "WHEN", "WHENEVER",
"WHERE", "WIDTH_BUCKET", "WINDOW", "WITH", "WITHIN",
"WITHOUT", "XML", "XMLAGG", "XMLATTRIBUTES", "XMLBINARY",
"XMLCAST", "XMLCOMMENT", "XMLCONCAT", "XMLDOCUMENT",
"XMLELEMENT", "XMLEXISTS", "XMLFOREST", "XMLITERATE",
"XMLNAMESPACES", "XMLPARSE", "XMLPI", "XMLQUERY",
"XMLSERIALIZE", "XMLTABLE", "XMLTEXT", "XMLVALIDATE", "YEAR");
public static final Expression<?> RECURSIVE = TemplateExpressionImpl.create(Object.class, "");