This is an automated email from the ASF dual-hosted git repository. jhyde pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/calcite.git
commit 05a086bc6b453baa5d761c6198d496ffe361aafe Author: Julian Hyde <[email protected]> AuthorDate: Wed Oct 9 16:16:44 2019 -0700 Re-format and re-organize config.fmpp files that customize the SQL parser Re-indent, standardizing on indent 2 so that we can easily diff the (almost identical) files in core, core/test, babel, server. Also remove trailing commas, and sort lists. Add two new lists, nonReservedKeywordsToAdd and nonReservedKeywordsToRemove, to allow sub-projects to add and remove keywords without chaning the list inherited from core. --- babel/src/main/codegen/config.fmpp | 1711 +++++++++++++++-------------- core/src/main/codegen/config.fmpp | 616 ++++++----- core/src/main/codegen/templates/Parser.jj | 6 +- core/src/test/codegen/config.fmpp | 761 ++++++------- server/src/main/codegen/config.fmpp | 812 +++++++------- 5 files changed, 1975 insertions(+), 1931 deletions(-) diff --git a/babel/src/main/codegen/config.fmpp b/babel/src/main/codegen/config.fmpp index baa88fb..c120557 100644 --- a/babel/src/main/codegen/config.fmpp +++ b/babel/src/main/codegen/config.fmpp @@ -14,875 +14,884 @@ # limitations under the License. data: { - parser: { - # Generated parser implementation class package and name - package: "org.apache.calcite.sql.parser.babel", - class: "SqlBabelParserImpl", + parser: { + # Generated parser implementation class package and name + package: "org.apache.calcite.sql.parser.babel", + class: "SqlBabelParserImpl", - # List of import statements. - imports: [ - ] + # List of import statements. + imports: [ + ] - # List of keywords. - keywords: [ - "SEMI" - ] + # List of keywords. + keywords: [ + "SEMI" + ] - # List of keywords from "keywords" section that are not reserved. - nonReservedKeywords: [ - "A" - "ABSENT" - "ABSOLUTE" - "ACTION" - "ADA" - "ADD" - "ADMIN" - "AFTER" - "ALWAYS" - "APPLY" - "ASC" - "ASSERTION" - "ASSIGNMENT" - "ATTRIBUTE" - "ATTRIBUTES" - "BEFORE" - "BERNOULLI" - "BREADTH" - "C" - "CASCADE" - "CATALOG" - "CATALOG_NAME" - "CENTURY" - "CHAIN" - "CHARACTER_SET_CATALOG" - "CHARACTER_SET_NAME" - "CHARACTER_SET_SCHEMA" - "CHARACTERISTICS" - "CHARACTERS" - "CLASS_ORIGIN" - "COBOL" - "COLLATION" - "COLLATION_CATALOG" - "COLLATION_NAME" - "COLLATION_SCHEMA" - "COLUMN_NAME" - "COMMAND_FUNCTION" - "COMMAND_FUNCTION_CODE" - "COMMITTED" - "CONDITION_NUMBER" - "CONDITIONAL" - "CONNECTION" - "CONNECTION_NAME" - "CONSTRAINT_CATALOG" - "CONSTRAINT_NAME" - "CONSTRAINT_SCHEMA" - "CONSTRAINTS" - "CONSTRUCTOR" - "CONTINUE" - "CURSOR_NAME" - "DATA" - "DATABASE" - "DATETIME_INTERVAL_CODE" - "DATETIME_INTERVAL_PRECISION" - "DECADE" - "DEFAULTS" - "DEFERRABLE" - "DEFERRED" - "DEFINED" - "DEFINER" - "DEGREE" - "DEPTH" - "DERIVED" - "DESC" - "DESCRIPTION" - "DESCRIPTOR" - "DIAGNOSTICS" - "DISPATCH" - "DOMAIN" - "DOW" - "DOY" - "DYNAMIC_FUNCTION" - "DYNAMIC_FUNCTION_CODE" - "ENCODING" - "EPOCH" - "ERROR" - "EXCEPTION" - "EXCLUDE" - "EXCLUDING" - "FINAL" - "FIRST" - "FOLLOWING" - "FORMAT" - "FORTRAN" - "FOUND" - "FRAC_SECOND" - "G" - "GENERAL" - "GENERATED" - "GEOMETRY" - "GO" - "GOTO" - "GRANTED" - "HIERARCHY" - "IGNORE" - "IMMEDIATE" - "IMMEDIATELY" - "IMPLEMENTATION" - "INCLUDING" - "INCREMENT" - "INITIALLY" - "INPUT" - "INSTANCE" - "INSTANTIABLE" - "INVOKER" - "ISODOW" - "ISOYEAR" - "ISOLATION" - "JAVA" - "JSON" - "K" - "KEY" - "KEY_MEMBER" - "KEY_TYPE" - "LABEL" - "LAST" - "LENGTH" - "LEVEL" - "LIBRARY" - "LOCATOR" - "M" - "MAP" - "MATCHED" - "MAXVALUE" - "MICROSECOND" - "MESSAGE_LENGTH" - "MESSAGE_OCTET_LENGTH" - "MESSAGE_TEXT" - "MILLISECOND" - "MILLENNIUM" - "MINVALUE" - "MORE_" - "MUMPS" - "NAME" - "NAMES" - "NANOSECOND" - "NESTING" - "NORMALIZED" - "NULLABLE" - "NULLS" - "NUMBER" - "OBJECT" - "OCTETS" - "OPTION" - "OPTIONS" - "ORDERING" - "ORDINALITY" - "OTHERS" - "OUTPUT" - "OVERRIDING" - "PAD" - "PARAMETER_MODE" - "PARAMETER_NAME" - "PARAMETER_ORDINAL_POSITION" - "PARAMETER_SPECIFIC_CATALOG" - "PARAMETER_SPECIFIC_NAME" - "PARAMETER_SPECIFIC_SCHEMA" - "PARTIAL" - "PASCAL" - "PASSING" - "PASSTHROUGH" - "PAST" - "PATH" - "PLACING" - "PLAN" - "PLI" - "PRECEDING" - "PRESERVE" - "PRIOR" - "PRIVILEGES" - "PUBLIC" - "QUARTER" - "READ" - "RELATIVE" - "REPEATABLE" - "REPLACE" - "RESPECT" - "RESTART" - "RESTRICT" - "RETURNED_CARDINALITY" - "RETURNED_LENGTH" - "RETURNED_OCTET_LENGTH" - "RETURNED_SQLSTATE" - "RETURNING" - "ROLE" - "ROUTINE" - "ROUTINE_CATALOG" - "ROUTINE_NAME" - "ROUTINE_SCHEMA" - "ROW_COUNT" - "SCALAR" - "SCALE" - "SCHEMA" - "SCHEMA_NAME" - "SCOPE_CATALOGS" - "SCOPE_NAME" - "SCOPE_SCHEMA" - "SECTION" - "SECURITY" - "SELF" - "SEQUENCE" - "SERIALIZABLE" - "SERVER" - "SERVER_NAME" - "SESSION" - "SETS" - "SIMPLE" - "SIZE" - "SOURCE" - "SPACE" - "SPECIFIC_NAME" - "SQL_BIGINT" - "SQL_BINARY" - "SQL_BIT" - "SQL_BLOB" - "SQL_BOOLEAN" - "SQL_CHAR" - "SQL_CLOB" - "SQL_DATE" - "SQL_DECIMAL" - "SQL_DOUBLE" - "SQL_FLOAT" - "SQL_INTEGER" - "SQL_INTERVAL_DAY" - "SQL_INTERVAL_DAY_TO_HOUR" - "SQL_INTERVAL_DAY_TO_MINUTE" - "SQL_INTERVAL_DAY_TO_SECOND" - "SQL_INTERVAL_HOUR" - "SQL_INTERVAL_HOUR_TO_MINUTE" - "SQL_INTERVAL_HOUR_TO_SECOND" - "SQL_INTERVAL_MINUTE" - "SQL_INTERVAL_MINUTE_TO_SECOND" - "SQL_INTERVAL_MONTH" - "SQL_INTERVAL_SECOND" - "SQL_INTERVAL_YEAR" - "SQL_INTERVAL_YEAR_TO_MONTH" - "SQL_LONGVARBINARY" - "SQL_LONGVARNCHAR" - "SQL_LONGVARCHAR" - "SQL_NCHAR" - "SQL_NCLOB" - "SQL_NUMERIC" - "SQL_NVARCHAR" - "SQL_REAL" - "SQL_SMALLINT" - "SQL_TIME" - "SQL_TIMESTAMP" - "SQL_TINYINT" - "SQL_TSI_DAY" - "SQL_TSI_FRAC_SECOND" - "SQL_TSI_HOUR" - "SQL_TSI_MICROSECOND" - "SQL_TSI_MINUTE" - "SQL_TSI_MONTH" - "SQL_TSI_QUARTER" - "SQL_TSI_SECOND" - "SQL_TSI_WEEK" - "SQL_TSI_YEAR" - "SQL_VARBINARY" - "SQL_VARCHAR" - "STATE" - "STATEMENT" - "STRUCTURE" - "STYLE" - "SUBCLASS_ORIGIN" - "SUBSTITUTE" - "TABLE_NAME" - "TEMPORARY" - "TIES" - "TIMESTAMPADD" - "TIMESTAMPDIFF" - "TOP_LEVEL_COUNT" - "TRANSACTION" - "TRANSACTIONS_ACTIVE" - "TRANSACTIONS_COMMITTED" - "TRANSACTIONS_ROLLED_BACK" - "TRANSFORM" - "TRANSFORMS" - "TRIGGER_CATALOG" - "TRIGGER_NAME" - "TRIGGER_SCHEMA" - "TYPE" - "UNBOUNDED" - "UNCOMMITTED" - "UNCONDITIONAL" - "UNDER" - "UNNAMED" - "USAGE" - "USER_DEFINED_TYPE_CATALOG" - "USER_DEFINED_TYPE_CODE" - "USER_DEFINED_TYPE_NAME" - "USER_DEFINED_TYPE_SCHEMA" - "UTF8" - "UTF16" - "UTF32" - "VERSION" - "VIEW" - "WEEK" - "WRAPPER" - "WORK" - "WRITE" - "XML" - "ZONE" + # List of keywords from "keywords" section that are not reserved. + nonReservedKeywords: [ + "A" + "ABSENT" + "ABSOLUTE" + "ACTION" + "ADA" + "ADD" + "ADMIN" + "AFTER" + "ALWAYS" + "APPLY" + "ASC" + "ASSERTION" + "ASSIGNMENT" + "ATTRIBUTE" + "ATTRIBUTES" + "BEFORE" + "BERNOULLI" + "BREADTH" + "C" + "CASCADE" + "CATALOG" + "CATALOG_NAME" + "CENTURY" + "CHAIN" + "CHARACTERISTICS" + "CHARACTERS" + "CHARACTER_SET_CATALOG" + "CHARACTER_SET_NAME" + "CHARACTER_SET_SCHEMA" + "CLASS_ORIGIN" + "COBOL" + "COLLATION" + "COLLATION_CATALOG" + "COLLATION_NAME" + "COLLATION_SCHEMA" + "COLUMN_NAME" + "COMMAND_FUNCTION" + "COMMAND_FUNCTION_CODE" + "COMMITTED" + "CONDITIONAL" + "CONDITION_NUMBER" + "CONNECTION" + "CONNECTION_NAME" + "CONSTRAINT_CATALOG" + "CONSTRAINT_NAME" + "CONSTRAINTS" + "CONSTRAINT_SCHEMA" + "CONSTRUCTOR" + "CONTINUE" + "CURSOR_NAME" + "DATA" + "DATABASE" + "DATETIME_INTERVAL_CODE" + "DATETIME_INTERVAL_PRECISION" + "DECADE" + "DEFAULTS" + "DEFERRABLE" + "DEFERRED" + "DEFINED" + "DEFINER" + "DEGREE" + "DEPTH" + "DERIVED" + "DESC" + "DESCRIPTION" + "DESCRIPTOR" + "DIAGNOSTICS" + "DISPATCH" + "DOMAIN" + "DOW" + "DOY" + "DYNAMIC_FUNCTION" + "DYNAMIC_FUNCTION_CODE" + "ENCODING" + "EPOCH" + "ERROR" + "EXCEPTION" + "EXCLUDE" + "EXCLUDING" + "FINAL" + "FIRST" + "FOLLOWING" + "FORMAT" + "FORTRAN" + "FOUND" + "FRAC_SECOND" + "G" + "GENERAL" + "GENERATED" + "GEOMETRY" + "GO" + "GOTO" + "GRANTED" + "HIERARCHY" + "IGNORE" + "IMMEDIATE" + "IMMEDIATELY" + "IMPLEMENTATION" + "INCLUDING" + "INCREMENT" + "INITIALLY" + "INPUT" + "INSTANCE" + "INSTANTIABLE" + "INVOKER" + "ISODOW" + "ISOLATION" + "ISOYEAR" + "JAVA" + "JSON" + "K" + "KEY" + "KEY_MEMBER" + "KEY_TYPE" + "LABEL" + "LAST" + "LENGTH" + "LEVEL" + "LIBRARY" + "LOCATOR" + "M" + "MAP" + "MATCHED" + "MAXVALUE" + "MESSAGE_LENGTH" + "MESSAGE_OCTET_LENGTH" + "MESSAGE_TEXT" + "MICROSECOND" + "MILLENNIUM" + "MILLISECOND" + "MINVALUE" + "MORE_" + "MUMPS" + "NAME" + "NAMES" + "NANOSECOND" + "NESTING" + "NORMALIZED" + "NULLABLE" + "NULLS" + "NUMBER" + "OBJECT" + "OCTETS" + "OPTION" + "OPTIONS" + "ORDERING" + "ORDINALITY" + "OTHERS" + "OUTPUT" + "OVERRIDING" + "PAD" + "PARAMETER_MODE" + "PARAMETER_NAME" + "PARAMETER_ORDINAL_POSITION" + "PARAMETER_SPECIFIC_CATALOG" + "PARAMETER_SPECIFIC_NAME" + "PARAMETER_SPECIFIC_SCHEMA" + "PARTIAL" + "PASCAL" + "PASSING" + "PASSTHROUGH" + "PAST" + "PATH" + "PLACING" + "PLAN" + "PLI" + "PRECEDING" + "PRESERVE" + "PRIOR" + "PRIVILEGES" + "PUBLIC" + "QUARTER" + "READ" + "RELATIVE" + "REPEATABLE" + "REPLACE" + "RESPECT" + "RESTART" + "RESTRICT" + "RETURNED_CARDINALITY" + "RETURNED_LENGTH" + "RETURNED_OCTET_LENGTH" + "RETURNED_SQLSTATE" + "RETURNING" + "ROLE" + "ROUTINE" + "ROUTINE_CATALOG" + "ROUTINE_NAME" + "ROUTINE_SCHEMA" + "ROW_COUNT" + "SCALAR" + "SCALE" + "SCHEMA" + "SCHEMA_NAME" + "SCOPE_CATALOGS" + "SCOPE_NAME" + "SCOPE_SCHEMA" + "SECTION" + "SECURITY" + "SELF" + "SEQUENCE" + "SERIALIZABLE" + "SERVER" + "SERVER_NAME" + "SESSION" + "SETS" + "SIMPLE" + "SIZE" + "SOURCE" + "SPACE" + "SPECIFIC_NAME" + "SQL_BIGINT" + "SQL_BINARY" + "SQL_BIT" + "SQL_BLOB" + "SQL_BOOLEAN" + "SQL_CHAR" + "SQL_CLOB" + "SQL_DATE" + "SQL_DECIMAL" + "SQL_DOUBLE" + "SQL_FLOAT" + "SQL_INTEGER" + "SQL_INTERVAL_DAY" + "SQL_INTERVAL_DAY_TO_HOUR" + "SQL_INTERVAL_DAY_TO_MINUTE" + "SQL_INTERVAL_DAY_TO_SECOND" + "SQL_INTERVAL_HOUR" + "SQL_INTERVAL_HOUR_TO_MINUTE" + "SQL_INTERVAL_HOUR_TO_SECOND" + "SQL_INTERVAL_MINUTE" + "SQL_INTERVAL_MINUTE_TO_SECOND" + "SQL_INTERVAL_MONTH" + "SQL_INTERVAL_SECOND" + "SQL_INTERVAL_YEAR" + "SQL_INTERVAL_YEAR_TO_MONTH" + "SQL_LONGVARBINARY" + "SQL_LONGVARCHAR" + "SQL_LONGVARNCHAR" + "SQL_NCHAR" + "SQL_NCLOB" + "SQL_NUMERIC" + "SQL_NVARCHAR" + "SQL_REAL" + "SQL_SMALLINT" + "SQL_TIME" + "SQL_TIMESTAMP" + "SQL_TINYINT" + "SQL_TSI_DAY" + "SQL_TSI_FRAC_SECOND" + "SQL_TSI_HOUR" + "SQL_TSI_MICROSECOND" + "SQL_TSI_MINUTE" + "SQL_TSI_MONTH" + "SQL_TSI_QUARTER" + "SQL_TSI_SECOND" + "SQL_TSI_WEEK" + "SQL_TSI_YEAR" + "SQL_VARBINARY" + "SQL_VARCHAR" + "STATE" + "STATEMENT" + "STRUCTURE" + "STYLE" + "SUBCLASS_ORIGIN" + "SUBSTITUTE" + "TABLE_NAME" + "TEMPORARY" + "TIES" + "TIMESTAMPADD" + "TIMESTAMPDIFF" + "TOP_LEVEL_COUNT" + "TRANSACTION" + "TRANSACTIONS_ACTIVE" + "TRANSACTIONS_COMMITTED" + "TRANSACTIONS_ROLLED_BACK" + "TRANSFORM" + "TRANSFORMS" + "TRIGGER_CATALOG" + "TRIGGER_NAME" + "TRIGGER_SCHEMA" + "TYPE" + "UNBOUNDED" + "UNCOMMITTED" + "UNCONDITIONAL" + "UNDER" + "UNNAMED" + "USAGE" + "USER_DEFINED_TYPE_CATALOG" + "USER_DEFINED_TYPE_CODE" + "USER_DEFINED_TYPE_NAME" + "USER_DEFINED_TYPE_SCHEMA" + "UTF16" + "UTF32" + "UTF8" + "VERSION" + "VIEW" + "WEEK" + "WORK" + "WRAPPER" + "WRITE" + "XML" + "ZONE" + ] - # not in core, added in babel - "SEMI", + # List of non-reserved keywords to remove; + # items in this list become reserved + nonReservedKeywordsToRemove: [ + ] - # The following keywords are reserved in core Calcite, - # are reserved in some version of SQL, - # but are not reserved in Babel. - # - # Words that are commented out (e.g. "AND") are still reserved. - # These are the most important reserved words, and SQL cannot be - # unambiguously parsed if they are not reserved. For example, if - # "INNER" is not reserved then in the query - # - # select * from emp inner join dept using (deptno)" - # - # "inner" could be a table alias for "emp". - # - "ABS", - "ABSOLUTE", - "ACTION", - "ADD", - "AFTER", - "ALL", - "ALLOCATE", - "ALLOW", - "ALTER", - "AND", -# "ANY", - "ARE", - "ARRAY", -# "ARRAY_AGG", # not a keyword in Calcite - "ARRAY_MAX_CARDINALITY", - "AS", - "ASC", - "ASENSITIVE", - "ASSERTION", - "ASYMMETRIC", - "AT", - "ATOMIC", - "AUTHORIZATION", - "AVG", - "BEFORE", - "BEGIN", - "BEGIN_FRAME", - "BEGIN_PARTITION", - "BETWEEN", - "BIGINT", - "BINARY", - "BIT", -# "BIT_LENGTH", # not a keyword in Calcite - "BLOB", - "BOOLEAN", - "BOTH", - "BREADTH", - "BY", -# "CALL", - "CALLED", - "CARDINALITY", - "CASCADE", - "CASCADED", -# "CASE", - "CAST", - "CATALOG", - "CEIL", - "CEILING", - "CHAR", - "CHARACTER", - "CHARACTER_LENGTH", - "CHAR_LENGTH", - "CHECK", - "CLASSIFIER", - "CLOB", - "CLOSE", - "COALESCE", - "COLLATE", - "COLLATION", - "COLLECT", - "COLUMN", - "COMMIT", - "CONDITION", - "CONNECT", - "CONNECTION", - "CONSTRAINT", - "CONSTRAINTS", - "CONSTRUCTOR", - "CONTAINS", - "CONTINUE", - "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_ROW", - "CURRENT_SCHEMA", - "CURRENT_TIME", - "CURRENT_TIMESTAMP", - "CURRENT_TRANSFORM_GROUP_FOR_TYPE", - "CURRENT_USER", -# "CURSOR", - "CYCLE", - "DATA", -# "DATE", - "DAY", -# "DAYS", # not a keyword in Calcite - "DEALLOCATE", - "DEC", - "DECIMAL", - "DECLARE", -# "DEFAULT", - "DEFERRABLE", - "DEFERRED", -# "DEFINE", -# "DELETE", - "DENSE_RANK", - "DEPTH", - "DEREF", - "DESC", -# "DESCRIBE", # must be reserved - "DESCRIPTOR", - "DETERMINISTIC", - "DIAGNOSTICS", - "DISALLOW", - "DISCONNECT", -# "DISTINCT", -# "DO", # not a keyword in Calcite - "DOMAIN", - "DOUBLE", -# "DROP", # probably must be reserved - "DYNAMIC", - "EACH", - "ELEMENT", - "ELSE", -# "ELSEIF", # not a keyword in Calcite - "EMPTY", - "END", -# "END-EXEC", # not a keyword in Calcite, and contains '-' - "END_FRAME", - "END_PARTITION", - "EQUALS", - "ESCAPE", - "EVERY", -# "EXCEPT", # must be reserved - "EXCEPTION", - "EXEC", - "EXECUTE", - "EXISTS", -# "EXIT", # not a keyword in Calcite - "EXP", -# "EXPLAIN", # must be reserved - "EXTEND", - "EXTERNAL", - "EXTRACT", - "FALSE", -# "FETCH", - "FILTER", - "FIRST", - "FIRST_VALUE", - "FLOAT", - "FLOOR", - "FOR", - "FOREIGN", -# "FOREVER", # not a keyword in Calcite - "FOUND", - "FRAME_ROW", - "FREE", -# "FROM", # must be reserved -# "FULL", # must be reserved - "FUNCTION", - "FUSION", - "GENERAL", - "GET", - "GLOBAL", - "GO", - "GOTO", -# "GRANT", -# "GROUP", -# "GROUPING", - "GROUPS", -# "HANDLER", # not a keyword in Calcite -# "HAVING", - "HOLD", - "HOUR", -# "HOURS", # not a keyword in Calcite - "IDENTITY", -# "IF", # not a keyword in Calcite - "IMMEDIATE", - "IMMEDIATELY", - "IMPORT", -# "IN", - "INDICATOR", - "INITIAL", - "INITIALLY", -# "INNER", - "INOUT", - "INPUT", - "INSENSITIVE", -# "INSERT", - "INT", - "INTEGER", -# "INTERSECT", - "INTERSECTION", -# "INTERVAL", -# "INTO", - "IS", - "ISOLATION", -# "ITERATE", # not a keyword in Calcite -# "JOIN", - "JSON_ARRAY", - "JSON_ARRAYAGG", - "JSON_EXISTS", - "JSON_OBJECT", - "JSON_OBJECTAGG", - "JSON_QUERY", - "JSON_VALUE", -# "KEEP", # not a keyword in Calcite - "KEY", - "LAG", - "LANGUAGE", - "LARGE", - "LAST", - "LAST_VALUE", -# "LATERAL", - "LEAD", - "LEADING", -# "LEAVE", # not a keyword in Calcite -# "LEFT", - "LEVEL", - "LIKE", - "LIKE_REGEX", -# "LIMIT", - "LN", - "LOCAL", - "LOCALTIME", - "LOCALTIMESTAMP", - "LOCATOR", -# "LOOP", # not a keyword in Calcite - "LOWER", - "MAP", - "MATCH", - "MATCHES", - "MATCH_NUMBER", -# "MATCH_RECOGNIZE", - "MAX", -# "MAX_CARDINALITY", # not a keyword in Calcite - "MEASURES", - "MEMBER", -# "MERGE", - "METHOD", - "MIN", -# "MINUS", - "MINUTE", -# "MINUTES", # not a keyword in Calcite - "MOD", - "MODIFIES", - "MODULE", - "MONTH", - "MULTISET", - "NAMES", - "NATIONAL", -# "NATURAL", - "NCHAR", - "NCLOB", -# "NEW", -# "NEXT", - "NO", - "NONE", - "NORMALIZE", - "NOT", - "NTH_VALUE", - "NTILE", -# "NULL", - "NULLIF", - "NUMERIC", - "OBJECT", - "OCCURRENCES_REGEX", - "OCTET_LENGTH", - "OF", -# "OFFSET", - "OLD", - "OMIT", -# "ON", - "ONE", - "ONLY", - "OPEN", - "OPTION", - "OR", -# "ORDER", - "ORDINALITY", - "OUT", -# "OUTER", - "OUTPUT", -# "OVER", - "OVERLAPS", - "OVERLAY", - "PAD", - "PARAMETER", - "PARTIAL", -# "PARTITION", - "PATH", -# "PATTERN", - "PER", - "PERCENT", - "PERCENTILE_CONT", - "PERCENTILE_DISC", - "PERCENT_RANK", - "PERIOD", - "PERMUTE", - "PORTION", - "POSITION", - "POSITION_REGEX", - "POWER", - "PRECEDES", - "PRECISION", - "PREPARE", - "PRESERVE", - "PREV", - "PRIMARY", - "PRIOR", - "PRIVILEGES", - "PROCEDURE", - "PUBLIC", -# "RANGE", - "RANK", - "READ", - "READS", - "REAL", - "RECURSIVE", - "REF", - "REFERENCES", - "REFERENCING", - "REGR_AVGX", - "REGR_AVGY", - "REGR_COUNT", - "REGR_INTERCEPT", - "REGR_R2", - "REGR_SLOPE", - "REGR_SXX", - "REGR_SXY", - "REGR_SYY", - "RELATIVE", - "RELEASE", -# "REPEAT", # not a keyword in Calcite - "RESET", -# "RESIGNAL", # not a keyword in Calcite - "RESTRICT", - "RESULT", - "RETURN", - "RETURNS", - "REVOKE", -# "RIGHT", - "ROLE", - "ROLLBACK", -# "ROLLUP", - "ROUTINE", -# "ROW", -# "ROWS", - "ROW_NUMBER", - "RUNNING", - "SAVEPOINT", - "SCHEMA", - "SCOPE", - "SCROLL", - "SEARCH", - "SECOND", -# "SECONDS", # not a keyword in Calcite - "SECTION", - "SEEK", -# "SELECT", - "SENSITIVE", - "SESSION", - "SESSION_USER", -# "SET", -# "SETS", - "SHOW", -# "SIGNAL", # not a keyword in Calcite - "SIMILAR", - "SIZE", -# "SKIP", # messes with JavaCC's <SKIP> token - "SMALLINT", -# "SOME", - "SPACE", - "SPECIFIC", - "SPECIFICTYPE", - "SQL", -# "SQLCODE", # not a keyword in Calcite -# "SQLERROR", # not a keyword in Calcite - "SQLEXCEPTION", - "SQLSTATE", - "SQLWARNING", - "SQRT", - "START", - "STATE", - "STATIC", - "STDDEV_POP", - "STDDEV_SAMP", -# "STREAM", - "SUBMULTISET", - "SUBSET", - "SUBSTRING", - "SUBSTRING_REGEX", - "SUCCEEDS", - "SUM", - "SYMMETRIC", - "SYSTEM", - "SYSTEM_TIME", - "SYSTEM_USER", -# "TABLE", -# "TABLESAMPLE", - "TEMPORARY", -# "THEN", -# "TIME", -# "TIMESTAMP", - "TIMEZONE_HOUR", - "TIMEZONE_MINUTE", - "TINYINT", - "TO", - "TRAILING", - "TRANSACTION", - "TRANSLATE", - "TRANSLATE_REGEX", - "TRANSLATION", - "TREAT", - "TRIGGER", - "TRIM", - "TRIM_ARRAY", - "TRUE", - "TRUNCATE", - "UESCAPE", - "UNDER", -# "UNDO", # not a keyword in Calcite -# "UNION", - "UNIQUE", - "UNKNOWN", -# "UNNEST", -# "UNTIL", # not a keyword in Calcite -# "UPDATE", - "UPPER", - "UPSERT", - "USAGE", - "USER", -# "USING", - "VALUE", -# "VALUES", - "VALUE_OF", - "VARBINARY", - "VARCHAR", - "VARYING", - "VAR_POP", - "VAR_SAMP", - "VERSION", - "VERSIONING", -# "VERSIONS", # not a keyword in Calcite - "VIEW", -# "WHEN", - "WHENEVER", -# "WHERE", -# "WHILE", # not a keyword in Calcite - "WIDTH_BUCKET", -# "WINDOW", -# "WITH", - "WITHIN", - "WITHOUT", - "WORK", - "WRITE", - "YEAR", -# "YEARS", # not a keyword in Calcite - "ZONE", - ] + # List of non-reserved keywords to add; + # items in this list become non-reserved + nonReservedKeywordsToAdd: [ + # not in core, added in babel + "SEMI" - # List of additional join types. Each is a method with no arguments. - # Example: LeftSemiJoin() - joinTypes: [ - "LeftSemiJoin" - ] + # The following keywords are reserved in core Calcite, + # are reserved in some version of SQL, + # but are not reserved in Babel. + # + # Words that are commented out (e.g. "AND") are still reserved. + # These are the most important reserved words, and SQL cannot be + # unambiguously parsed if they are not reserved. For example, if + # "INNER" is not reserved then in the query + # + # select * from emp inner join dept using (deptno)" + # + # "inner" could be a table alias for "emp". + # + "ABS" + "ABSOLUTE" + "ACTION" + "ADD" + "AFTER" + "ALL" + "ALLOCATE" + "ALLOW" + "ALTER" + "AND" +# "ANY" + "ARE" + "ARRAY" +# "ARRAY_AGG" # not a keyword in Calcite + "ARRAY_MAX_CARDINALITY" + "AS" + "ASC" + "ASENSITIVE" + "ASSERTION" + "ASYMMETRIC" + "AT" + "ATOMIC" + "AUTHORIZATION" + "AVG" + "BEFORE" + "BEGIN" + "BEGIN_FRAME" + "BEGIN_PARTITION" + "BETWEEN" + "BIGINT" + "BINARY" + "BIT" +# "BIT_LENGTH" # not a keyword in Calcite + "BLOB" + "BOOLEAN" + "BOTH" + "BREADTH" + "BY" +# "CALL" + "CALLED" + "CARDINALITY" + "CASCADE" + "CASCADED" +# "CASE" + "CAST" + "CATALOG" + "CEIL" + "CEILING" + "CHAR" + "CHARACTER" + "CHARACTER_LENGTH" + "CHAR_LENGTH" + "CHECK" + "CLASSIFIER" + "CLOB" + "CLOSE" + "COALESCE" + "COLLATE" + "COLLATION" + "COLLECT" + "COLUMN" + "COMMIT" + "CONDITION" + "CONNECT" + "CONNECTION" + "CONSTRAINT" + "CONSTRAINTS" + "CONSTRUCTOR" + "CONTAINS" + "CONTINUE" + "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_ROW" + "CURRENT_SCHEMA" + "CURRENT_TIME" + "CURRENT_TIMESTAMP" + "CURRENT_TRANSFORM_GROUP_FOR_TYPE" + "CURRENT_USER" +# "CURSOR" + "CYCLE" + "DATA" +# "DATE" + "DAY" +# "DAYS" # not a keyword in Calcite + "DEALLOCATE" + "DEC" + "DECIMAL" + "DECLARE" +# "DEFAULT" + "DEFERRABLE" + "DEFERRED" +# "DEFINE" +# "DELETE" + "DENSE_RANK" + "DEPTH" + "DEREF" + "DESC" +# "DESCRIBE" # must be reserved + "DESCRIPTOR" + "DETERMINISTIC" + "DIAGNOSTICS" + "DISALLOW" + "DISCONNECT" +# "DISTINCT" +# "DO" # not a keyword in Calcite + "DOMAIN" + "DOUBLE" +# "DROP" # probably must be reserved + "DYNAMIC" + "EACH" + "ELEMENT" + "ELSE" +# "ELSEIF" # not a keyword in Calcite + "EMPTY" + "END" +# "END-EXEC" # not a keyword in Calcite, and contains '-' + "END_FRAME" + "END_PARTITION" + "EQUALS" + "ESCAPE" + "EVERY" +# "EXCEPT" # must be reserved + "EXCEPTION" + "EXEC" + "EXECUTE" + "EXISTS" +# "EXIT" # not a keyword in Calcite + "EXP" +# "EXPLAIN" # must be reserved + "EXTEND" + "EXTERNAL" + "EXTRACT" + "FALSE" +# "FETCH" + "FILTER" + "FIRST" + "FIRST_VALUE" + "FLOAT" + "FLOOR" + "FOR" + "FOREIGN" +# "FOREVER" # not a keyword in Calcite + "FOUND" + "FRAME_ROW" + "FREE" +# "FROM" # must be reserved +# "FULL" # must be reserved + "FUNCTION" + "FUSION" + "GENERAL" + "GET" + "GLOBAL" + "GO" + "GOTO" +# "GRANT" +# "GROUP" +# "GROUPING" + "GROUPS" +# "HANDLER" # not a keyword in Calcite +# "HAVING" + "HOLD" + "HOUR" +# "HOURS" # not a keyword in Calcite + "IDENTITY" +# "IF" # not a keyword in Calcite + "IMMEDIATE" + "IMMEDIATELY" + "IMPORT" +# "IN" + "INDICATOR" + "INITIAL" + "INITIALLY" +# "INNER" + "INOUT" + "INPUT" + "INSENSITIVE" +# "INSERT" + "INT" + "INTEGER" +# "INTERSECT" + "INTERSECTION" +# "INTERVAL" +# "INTO" + "IS" + "ISOLATION" +# "ITERATE" # not a keyword in Calcite +# "JOIN" + "JSON_ARRAY" + "JSON_ARRAYAGG" + "JSON_EXISTS" + "JSON_OBJECT" + "JSON_OBJECTAGG" + "JSON_QUERY" + "JSON_VALUE" +# "KEEP" # not a keyword in Calcite + "KEY" + "LAG" + "LANGUAGE" + "LARGE" + "LAST" + "LAST_VALUE" +# "LATERAL" + "LEAD" + "LEADING" +# "LEAVE" # not a keyword in Calcite +# "LEFT" + "LEVEL" + "LIKE" + "LIKE_REGEX" +# "LIMIT" + "LN" + "LOCAL" + "LOCALTIME" + "LOCALTIMESTAMP" + "LOCATOR" +# "LOOP" # not a keyword in Calcite + "LOWER" + "MAP" + "MATCH" + "MATCHES" + "MATCH_NUMBER" +# "MATCH_RECOGNIZE" + "MAX" +# "MAX_CARDINALITY" # not a keyword in Calcite + "MEASURES" + "MEMBER" +# "MERGE" + "METHOD" + "MIN" +# "MINUS" + "MINUTE" +# "MINUTES" # not a keyword in Calcite + "MOD" + "MODIFIES" + "MODULE" + "MONTH" + "MULTISET" + "NAMES" + "NATIONAL" +# "NATURAL" + "NCHAR" + "NCLOB" +# "NEW" +# "NEXT" + "NO" + "NONE" + "NORMALIZE" + "NOT" + "NTH_VALUE" + "NTILE" +# "NULL" + "NULLIF" + "NUMERIC" + "OBJECT" + "OCCURRENCES_REGEX" + "OCTET_LENGTH" + "OF" +# "OFFSET" + "OLD" + "OMIT" +# "ON" + "ONE" + "ONLY" + "OPEN" + "OPTION" + "OR" +# "ORDER" + "ORDINALITY" + "OUT" +# "OUTER" + "OUTPUT" +# "OVER" + "OVERLAPS" + "OVERLAY" + "PAD" + "PARAMETER" + "PARTIAL" +# "PARTITION" + "PATH" +# "PATTERN" + "PER" + "PERCENT" + "PERCENTILE_CONT" + "PERCENTILE_DISC" + "PERCENT_RANK" + "PERIOD" + "PERMUTE" + "PORTION" + "POSITION" + "POSITION_REGEX" + "POWER" + "PRECEDES" + "PRECISION" + "PREPARE" + "PRESERVE" + "PREV" + "PRIMARY" + "PRIOR" + "PRIVILEGES" + "PROCEDURE" + "PUBLIC" +# "RANGE" + "RANK" + "READ" + "READS" + "REAL" + "RECURSIVE" + "REF" + "REFERENCES" + "REFERENCING" + "REGR_AVGX" + "REGR_AVGY" + "REGR_COUNT" + "REGR_INTERCEPT" + "REGR_R2" + "REGR_SLOPE" + "REGR_SXX" + "REGR_SXY" + "REGR_SYY" + "RELATIVE" + "RELEASE" +# "REPEAT" # not a keyword in Calcite + "RESET" +# "RESIGNAL" # not a keyword in Calcite + "RESTRICT" + "RESULT" + "RETURN" + "RETURNS" + "REVOKE" +# "RIGHT" + "ROLE" + "ROLLBACK" +# "ROLLUP" + "ROUTINE" +# "ROW" +# "ROWS" + "ROW_NUMBER" + "RUNNING" + "SAVEPOINT" + "SCHEMA" + "SCOPE" + "SCROLL" + "SEARCH" + "SECOND" +# "SECONDS" # not a keyword in Calcite + "SECTION" + "SEEK" +# "SELECT" + "SENSITIVE" + "SESSION" + "SESSION_USER" +# "SET" +# "SETS" + "SHOW" +# "SIGNAL" # not a keyword in Calcite + "SIMILAR" + "SIZE" +# "SKIP" # messes with JavaCC's <SKIP> token + "SMALLINT" +# "SOME" + "SPACE" + "SPECIFIC" + "SPECIFICTYPE" + "SQL" +# "SQLCODE" # not a keyword in Calcite +# "SQLERROR" # not a keyword in Calcite + "SQLEXCEPTION" + "SQLSTATE" + "SQLWARNING" + "SQRT" + "START" + "STATE" + "STATIC" + "STDDEV_POP" + "STDDEV_SAMP" +# "STREAM" + "SUBMULTISET" + "SUBSET" + "SUBSTRING" + "SUBSTRING_REGEX" + "SUCCEEDS" + "SUM" + "SYMMETRIC" + "SYSTEM" + "SYSTEM_TIME" + "SYSTEM_USER" +# "TABLE" +# "TABLESAMPLE" + "TEMPORARY" +# "THEN" +# "TIME" +# "TIMESTAMP" + "TIMEZONE_HOUR" + "TIMEZONE_MINUTE" + "TINYINT" + "TO" + "TRAILING" + "TRANSACTION" + "TRANSLATE" + "TRANSLATE_REGEX" + "TRANSLATION" + "TREAT" + "TRIGGER" + "TRIM" + "TRIM_ARRAY" + "TRUE" + "TRUNCATE" + "UESCAPE" + "UNDER" +# "UNDO" # not a keyword in Calcite +# "UNION" + "UNIQUE" + "UNKNOWN" +# "UNNEST" +# "UNTIL" # not a keyword in Calcite +# "UPDATE" + "UPPER" + "UPSERT" + "USAGE" + "USER" +# "USING" + "VALUE" +# "VALUES" + "VALUE_OF" + "VARBINARY" + "VARCHAR" + "VARYING" + "VAR_POP" + "VAR_SAMP" + "VERSION" + "VERSIONING" +# "VERSIONS" # not a keyword in Calcite + "VIEW" +# "WHEN" + "WHENEVER" +# "WHERE" +# "WHILE" # not a keyword in Calcite + "WIDTH_BUCKET" +# "WINDOW" +# "WITH" + "WITHIN" + "WITHOUT" + "WORK" + "WRITE" + "YEAR" +# "YEARS" # not a keyword in Calcite + "ZONE" + ] - # List of methods for parsing custom SQL statements. - statementParserMethods: [ - ] + # List of additional join types. Each is a method with no arguments. + # Example: LeftSemiJoin() + joinTypes: [ + "LeftSemiJoin" + ] - # List of methods for parsing custom literals. - # Return type of method implementation should be "SqlNode". - # Example: ParseJsonLiteral(). - literalParserMethods: [ - ] + # List of methods for parsing custom SQL statements. + statementParserMethods: [ + ] - # List of methods for parsing custom data types. - # Return type of method implementation should be "SqlIdentifier". - # Example: SqlParseTimeStampZ(). - dataTypeParserMethods: [ - ] + # List of methods for parsing custom literals. + # Return type of method implementation should be "SqlNode". + # Example: ParseJsonLiteral(). + literalParserMethods: [ + ] - # List of methods for parsing builtin function calls. - # Return type of method implementation should be "SqlNode". - # Example: DateFunctionCall(). - builtinFunctionCallMethods: [ - "DateFunctionCall()" - "DateaddFunctionCall()" - ] + # List of methods for parsing custom data types. + # Return type of method implementation should be "SqlTypeNameSpec". + # Example: SqlParseTimeStampZ(). + dataTypeParserMethods: [ + ] - # List of methods for parsing extensions to "ALTER <scope>" calls. - # Each must accept arguments "(SqlParserPos pos, String scope)". - alterStatementParserMethods: [ - ] + # List of methods for parsing builtin function calls. + # Return type of method implementation should be "SqlNode". + # Example: DateFunctionCall(). + builtinFunctionCallMethods: [ + "DateFunctionCall()" + "DateaddFunctionCall()" + ] - # List of methods for parsing extensions to "CREATE [OR REPLACE]" calls. - # Each must accept arguments "(SqlParserPos pos, boolean replace)". - createStatementParserMethods: [ - ] + # List of methods for parsing extensions to "ALTER <scope>" calls. + # Each must accept arguments "(SqlParserPos pos, String scope)". + alterStatementParserMethods: [ + ] - # List of methods for parsing extensions to "DROP" calls. - # Each must accept arguments "(SqlParserPos pos)". - dropStatementParserMethods: [ - ] + # List of methods for parsing extensions to "CREATE [OR REPLACE]" calls. + # Each must accept arguments "(SqlParserPos pos, boolean replace)". + createStatementParserMethods: [ + ] - # Binary operators tokens - binaryOperatorsTokens: [ - "< INFIX_CAST: \"::\" >" - ] + # List of methods for parsing extensions to "DROP" calls. + # Each must accept arguments "(SqlParserPos pos)". + dropStatementParserMethods: [ + ] - # Binary operators initialization - extraBinaryExpressions: [ - "InfixCast" - ] + # Binary operators tokens + binaryOperatorsTokens: [ + "< INFIX_CAST: \"::\" >" + ] - # List of files in @includes directory that have parser method - # implementations for parsing custom SQL statements, literals or types - # given as part of "statementParserMethods", "literalParserMethods" or - # "dataTypeParserMethods". - implementationFiles: [ - "parserImpls.ftl" - ] + # Binary operators initialization + extraBinaryExpressions: [ + "InfixCast" + ] - includePosixOperators: true - includeCompoundIdentifier: true - includeBraces: true - includeAdditionalDeclarations: false + # List of files in @includes directory that have parser method + # implementations for parsing custom SQL statements, literals or types + # given as part of "statementParserMethods", "literalParserMethods" or + # "dataTypeParserMethods". + implementationFiles: [ + "parserImpls.ftl" + ] - } + includePosixOperators: true + includeCompoundIdentifier: true + includeBraces: true + includeAdditionalDeclarations: false + } } + freemarkerLinks: { - includes: includes/ + includes: includes/ } diff --git a/core/src/main/codegen/config.fmpp b/core/src/main/codegen/config.fmpp index a44b8b7..e2bde0f 100644 --- a/core/src/main/codegen/config.fmpp +++ b/core/src/main/codegen/config.fmpp @@ -50,309 +50,319 @@ data: { # List of keywords from "keywords" section that are not reserved. nonReservedKeywords: [ - "A" - "ABSENT" - "ABSOLUTE" - "ACTION" - "ADA" - "ADD" - "ADMIN" - "AFTER" - "ALWAYS" - "APPLY" - "ASC" - "ASSERTION" - "ASSIGNMENT" - "ATTRIBUTE" - "ATTRIBUTES" - "BEFORE" - "BERNOULLI" - "BREADTH" - "C" - "CASCADE" - "CATALOG" - "CATALOG_NAME" - "CENTURY" - "CHAIN" - "CHARACTER_SET_CATALOG" - "CHARACTER_SET_NAME" - "CHARACTER_SET_SCHEMA" - "CHARACTERISTICS" - "CHARACTERS" - "CLASS_ORIGIN" - "COBOL" - "COLLATION" - "COLLATION_CATALOG" - "COLLATION_NAME" - "COLLATION_SCHEMA" - "COLUMN_NAME" - "COMMAND_FUNCTION" - "COMMAND_FUNCTION_CODE" - "COMMITTED" - "CONDITION_NUMBER" - "CONDITIONAL" - "CONNECTION" - "CONNECTION_NAME" - "CONSTRAINT_CATALOG" - "CONSTRAINT_NAME" - "CONSTRAINT_SCHEMA" - "CONSTRAINTS" - "CONSTRUCTOR" - "CONTINUE" - "CURSOR_NAME" - "DATA" - "DATABASE" - "DATETIME_INTERVAL_CODE" - "DATETIME_INTERVAL_PRECISION" - "DECADE" - "DEFAULTS" - "DEFERRABLE" - "DEFERRED" - "DEFINED" - "DEFINER" - "DEGREE" - "DEPTH" - "DERIVED" - "DESC" - "DESCRIPTION" - "DESCRIPTOR" - "DIAGNOSTICS" - "DISPATCH" - "DOMAIN" - "DOW" - "DOY" - "DYNAMIC_FUNCTION" - "DYNAMIC_FUNCTION_CODE" - "ENCODING" - "EPOCH" - "ERROR" - "EXCEPTION" - "EXCLUDE" - "EXCLUDING" - "FINAL" - "FIRST" - "FOLLOWING" - "FORMAT" - "FORTRAN" - "FOUND" - "FRAC_SECOND" - "G" - "GENERAL" - "GENERATED" - "GEOMETRY" - "GO" - "GOTO" - "GRANTED" - "HIERARCHY" - "IGNORE" - "IMMEDIATE" - "IMMEDIATELY" - "IMPLEMENTATION" - "INCLUDING" - "INCREMENT" - "INITIALLY" - "INPUT" - "INSTANCE" - "INSTANTIABLE" - "INVOKER" - "ISODOW" - "ISOYEAR" - "ISOLATION" - "JAVA" - "JSON" - "K" - "KEY" - "KEY_MEMBER" - "KEY_TYPE" - "LABEL" - "LAST" - "LENGTH" - "LEVEL" - "LIBRARY" - "LOCATOR" - "M" - "MAP" - "MATCHED" - "MAXVALUE" - "MICROSECOND" - "MESSAGE_LENGTH" - "MESSAGE_OCTET_LENGTH" - "MESSAGE_TEXT" - "MILLISECOND" - "MILLENNIUM" - "MINVALUE" - "MORE_" - "MUMPS" - "NAME" - "NAMES" - "NANOSECOND" - "NESTING" - "NORMALIZED" - "NULLABLE" - "NULLS" - "NUMBER" - "OBJECT" - "OCTETS" - "OPTION" - "OPTIONS" - "ORDERING" - "ORDINALITY" - "OTHERS" - "OUTPUT" - "OVERRIDING" - "PAD" - "PARAMETER_MODE" - "PARAMETER_NAME" - "PARAMETER_ORDINAL_POSITION" - "PARAMETER_SPECIFIC_CATALOG" - "PARAMETER_SPECIFIC_NAME" - "PARAMETER_SPECIFIC_SCHEMA" - "PARTIAL" - "PASCAL" - "PASSING" - "PASSTHROUGH" - "PAST" - "PATH" - "PLACING" - "PLAN" - "PLI" - "PRECEDING" - "PRESERVE" - "PRIOR" - "PRIVILEGES" - "PUBLIC" - "QUARTER" - "READ" - "RELATIVE" - "REPEATABLE" - "REPLACE" - "RESPECT" - "RESTART" - "RESTRICT" - "RETURNED_CARDINALITY" - "RETURNED_LENGTH" - "RETURNED_OCTET_LENGTH" - "RETURNED_SQLSTATE" - "RETURNING" - "ROLE" - "ROUTINE" - "ROUTINE_CATALOG" - "ROUTINE_NAME" - "ROUTINE_SCHEMA" - "ROW_COUNT" - "SCALAR" - "SCALE" - "SCHEMA" - "SCHEMA_NAME" - "SCOPE_CATALOGS" - "SCOPE_NAME" - "SCOPE_SCHEMA" - "SECTION" - "SECURITY" - "SELF" - "SEQUENCE" - "SERIALIZABLE" - "SERVER" - "SERVER_NAME" - "SESSION" - "SETS" - "SIMPLE" - "SIZE" - "SOURCE" - "SPACE" - "SPECIFIC_NAME" - "SQL_BIGINT" - "SQL_BINARY" - "SQL_BIT" - "SQL_BLOB" - "SQL_BOOLEAN" - "SQL_CHAR" - "SQL_CLOB" - "SQL_DATE" - "SQL_DECIMAL" - "SQL_DOUBLE" - "SQL_FLOAT" - "SQL_INTEGER" - "SQL_INTERVAL_DAY" - "SQL_INTERVAL_DAY_TO_HOUR" - "SQL_INTERVAL_DAY_TO_MINUTE" - "SQL_INTERVAL_DAY_TO_SECOND" - "SQL_INTERVAL_HOUR" - "SQL_INTERVAL_HOUR_TO_MINUTE" - "SQL_INTERVAL_HOUR_TO_SECOND" - "SQL_INTERVAL_MINUTE" - "SQL_INTERVAL_MINUTE_TO_SECOND" - "SQL_INTERVAL_MONTH" - "SQL_INTERVAL_SECOND" - "SQL_INTERVAL_YEAR" - "SQL_INTERVAL_YEAR_TO_MONTH" - "SQL_LONGVARBINARY" - "SQL_LONGVARNCHAR" - "SQL_LONGVARCHAR" - "SQL_NCHAR" - "SQL_NCLOB" - "SQL_NUMERIC" - "SQL_NVARCHAR" - "SQL_REAL" - "SQL_SMALLINT" - "SQL_TIME" - "SQL_TIMESTAMP" - "SQL_TINYINT" - "SQL_TSI_DAY" - "SQL_TSI_FRAC_SECOND" - "SQL_TSI_HOUR" - "SQL_TSI_MICROSECOND" - "SQL_TSI_MINUTE" - "SQL_TSI_MONTH" - "SQL_TSI_QUARTER" - "SQL_TSI_SECOND" - "SQL_TSI_WEEK" - "SQL_TSI_YEAR" - "SQL_VARBINARY" - "SQL_VARCHAR" - "STATE" - "STATEMENT" - "STRUCTURE" - "STYLE" - "SUBCLASS_ORIGIN" - "SUBSTITUTE" - "TABLE_NAME" - "TEMPORARY" - "TIES" - "TIMESTAMPADD" - "TIMESTAMPDIFF" - "TOP_LEVEL_COUNT" - "TRANSACTION" - "TRANSACTIONS_ACTIVE" - "TRANSACTIONS_COMMITTED" - "TRANSACTIONS_ROLLED_BACK" - "TRANSFORM" - "TRANSFORMS" - "TRIGGER_CATALOG" - "TRIGGER_NAME" - "TRIGGER_SCHEMA" - "TYPE" - "UNBOUNDED" - "UNCOMMITTED" - "UNCONDITIONAL" - "UNDER" - "UNNAMED" - "USAGE" - "USER_DEFINED_TYPE_CATALOG" - "USER_DEFINED_TYPE_CODE" - "USER_DEFINED_TYPE_NAME" - "USER_DEFINED_TYPE_SCHEMA" - "UTF8" - "UTF16" - "UTF32" - "VERSION" - "VIEW" - "WEEK" - "WRAPPER" - "WORK" - "WRITE" - "XML" - "ZONE" + "A" + "ABSENT" + "ABSOLUTE" + "ACTION" + "ADA" + "ADD" + "ADMIN" + "AFTER" + "ALWAYS" + "APPLY" + "ASC" + "ASSERTION" + "ASSIGNMENT" + "ATTRIBUTE" + "ATTRIBUTES" + "BEFORE" + "BERNOULLI" + "BREADTH" + "C" + "CASCADE" + "CATALOG" + "CATALOG_NAME" + "CENTURY" + "CHAIN" + "CHARACTERISTICS" + "CHARACTERS" + "CHARACTER_SET_CATALOG" + "CHARACTER_SET_NAME" + "CHARACTER_SET_SCHEMA" + "CLASS_ORIGIN" + "COBOL" + "COLLATION" + "COLLATION_CATALOG" + "COLLATION_NAME" + "COLLATION_SCHEMA" + "COLUMN_NAME" + "COMMAND_FUNCTION" + "COMMAND_FUNCTION_CODE" + "COMMITTED" + "CONDITIONAL" + "CONDITION_NUMBER" + "CONNECTION" + "CONNECTION_NAME" + "CONSTRAINT_CATALOG" + "CONSTRAINT_NAME" + "CONSTRAINTS" + "CONSTRAINT_SCHEMA" + "CONSTRUCTOR" + "CONTINUE" + "CURSOR_NAME" + "DATA" + "DATABASE" + "DATETIME_INTERVAL_CODE" + "DATETIME_INTERVAL_PRECISION" + "DECADE" + "DEFAULTS" + "DEFERRABLE" + "DEFERRED" + "DEFINED" + "DEFINER" + "DEGREE" + "DEPTH" + "DERIVED" + "DESC" + "DESCRIPTION" + "DESCRIPTOR" + "DIAGNOSTICS" + "DISPATCH" + "DOMAIN" + "DOW" + "DOY" + "DYNAMIC_FUNCTION" + "DYNAMIC_FUNCTION_CODE" + "ENCODING" + "EPOCH" + "ERROR" + "EXCEPTION" + "EXCLUDE" + "EXCLUDING" + "FINAL" + "FIRST" + "FOLLOWING" + "FORMAT" + "FORTRAN" + "FOUND" + "FRAC_SECOND" + "G" + "GENERAL" + "GENERATED" + "GEOMETRY" + "GO" + "GOTO" + "GRANTED" + "HIERARCHY" + "IGNORE" + "IMMEDIATE" + "IMMEDIATELY" + "IMPLEMENTATION" + "INCLUDING" + "INCREMENT" + "INITIALLY" + "INPUT" + "INSTANCE" + "INSTANTIABLE" + "INVOKER" + "ISODOW" + "ISOLATION" + "ISOYEAR" + "JAVA" + "JSON" + "K" + "KEY" + "KEY_MEMBER" + "KEY_TYPE" + "LABEL" + "LAST" + "LENGTH" + "LEVEL" + "LIBRARY" + "LOCATOR" + "M" + "MAP" + "MATCHED" + "MAXVALUE" + "MESSAGE_LENGTH" + "MESSAGE_OCTET_LENGTH" + "MESSAGE_TEXT" + "MICROSECOND" + "MILLENNIUM" + "MILLISECOND" + "MINVALUE" + "MORE_" + "MUMPS" + "NAME" + "NAMES" + "NANOSECOND" + "NESTING" + "NORMALIZED" + "NULLABLE" + "NULLS" + "NUMBER" + "OBJECT" + "OCTETS" + "OPTION" + "OPTIONS" + "ORDERING" + "ORDINALITY" + "OTHERS" + "OUTPUT" + "OVERRIDING" + "PAD" + "PARAMETER_MODE" + "PARAMETER_NAME" + "PARAMETER_ORDINAL_POSITION" + "PARAMETER_SPECIFIC_CATALOG" + "PARAMETER_SPECIFIC_NAME" + "PARAMETER_SPECIFIC_SCHEMA" + "PARTIAL" + "PASCAL" + "PASSING" + "PASSTHROUGH" + "PAST" + "PATH" + "PLACING" + "PLAN" + "PLI" + "PRECEDING" + "PRESERVE" + "PRIOR" + "PRIVILEGES" + "PUBLIC" + "QUARTER" + "READ" + "RELATIVE" + "REPEATABLE" + "REPLACE" + "RESPECT" + "RESTART" + "RESTRICT" + "RETURNED_CARDINALITY" + "RETURNED_LENGTH" + "RETURNED_OCTET_LENGTH" + "RETURNED_SQLSTATE" + "RETURNING" + "ROLE" + "ROUTINE" + "ROUTINE_CATALOG" + "ROUTINE_NAME" + "ROUTINE_SCHEMA" + "ROW_COUNT" + "SCALAR" + "SCALE" + "SCHEMA" + "SCHEMA_NAME" + "SCOPE_CATALOGS" + "SCOPE_NAME" + "SCOPE_SCHEMA" + "SECTION" + "SECURITY" + "SELF" + "SEQUENCE" + "SERIALIZABLE" + "SERVER" + "SERVER_NAME" + "SESSION" + "SETS" + "SIMPLE" + "SIZE" + "SOURCE" + "SPACE" + "SPECIFIC_NAME" + "SQL_BIGINT" + "SQL_BINARY" + "SQL_BIT" + "SQL_BLOB" + "SQL_BOOLEAN" + "SQL_CHAR" + "SQL_CLOB" + "SQL_DATE" + "SQL_DECIMAL" + "SQL_DOUBLE" + "SQL_FLOAT" + "SQL_INTEGER" + "SQL_INTERVAL_DAY" + "SQL_INTERVAL_DAY_TO_HOUR" + "SQL_INTERVAL_DAY_TO_MINUTE" + "SQL_INTERVAL_DAY_TO_SECOND" + "SQL_INTERVAL_HOUR" + "SQL_INTERVAL_HOUR_TO_MINUTE" + "SQL_INTERVAL_HOUR_TO_SECOND" + "SQL_INTERVAL_MINUTE" + "SQL_INTERVAL_MINUTE_TO_SECOND" + "SQL_INTERVAL_MONTH" + "SQL_INTERVAL_SECOND" + "SQL_INTERVAL_YEAR" + "SQL_INTERVAL_YEAR_TO_MONTH" + "SQL_LONGVARBINARY" + "SQL_LONGVARCHAR" + "SQL_LONGVARNCHAR" + "SQL_NCHAR" + "SQL_NCLOB" + "SQL_NUMERIC" + "SQL_NVARCHAR" + "SQL_REAL" + "SQL_SMALLINT" + "SQL_TIME" + "SQL_TIMESTAMP" + "SQL_TINYINT" + "SQL_TSI_DAY" + "SQL_TSI_FRAC_SECOND" + "SQL_TSI_HOUR" + "SQL_TSI_MICROSECOND" + "SQL_TSI_MINUTE" + "SQL_TSI_MONTH" + "SQL_TSI_QUARTER" + "SQL_TSI_SECOND" + "SQL_TSI_WEEK" + "SQL_TSI_YEAR" + "SQL_VARBINARY" + "SQL_VARCHAR" + "STATE" + "STATEMENT" + "STRUCTURE" + "STYLE" + "SUBCLASS_ORIGIN" + "SUBSTITUTE" + "TABLE_NAME" + "TEMPORARY" + "TIES" + "TIMESTAMPADD" + "TIMESTAMPDIFF" + "TOP_LEVEL_COUNT" + "TRANSACTION" + "TRANSACTIONS_ACTIVE" + "TRANSACTIONS_COMMITTED" + "TRANSACTIONS_ROLLED_BACK" + "TRANSFORM" + "TRANSFORMS" + "TRIGGER_CATALOG" + "TRIGGER_NAME" + "TRIGGER_SCHEMA" + "TYPE" + "UNBOUNDED" + "UNCOMMITTED" + "UNCONDITIONAL" + "UNDER" + "UNNAMED" + "USAGE" + "USER_DEFINED_TYPE_CATALOG" + "USER_DEFINED_TYPE_CODE" + "USER_DEFINED_TYPE_NAME" + "USER_DEFINED_TYPE_SCHEMA" + "UTF16" + "UTF32" + "UTF8" + "VERSION" + "VIEW" + "WEEK" + "WORK" + "WRAPPER" + "WRITE" + "XML" + "ZONE" + ] + + # List of non-reserved keywords to add; + # items in this list become non-reserved + nonReservedKeywordsToAdd: [ + ] + + # List of non-reserved keywords to remove; + # items in this list become reserved + nonReservedKeywordsToRemove: [ ] # List of additional join types. Each is a method with no arguments. diff --git a/core/src/main/codegen/templates/Parser.jj b/core/src/main/codegen/templates/Parser.jj index a063aa5..47a88bc 100644 --- a/core/src/main/codegen/templates/Parser.jj +++ b/core/src/main/codegen/templates/Parser.jj @@ -7147,7 +7147,7 @@ void NonReservedKeyWord0of3() : } { ( -<#list parser.nonReservedKeywords as keyword> +<#list parser.nonReservedKeywords + parser.nonReservedKeywordsToAdd as keyword> <#if keyword?index == 0> <${keyword}> <#elseif keyword?index % 3 == 0> @@ -7163,7 +7163,7 @@ void NonReservedKeyWord1of3() : } { ( -<#list parser.nonReservedKeywords as keyword> +<#list parser.nonReservedKeywords + parser.nonReservedKeywordsToAdd as keyword> <#if keyword?index == 1> <${keyword}> <#elseif keyword?index % 3 == 1> @@ -7179,7 +7179,7 @@ void NonReservedKeyWord2of3() : } { ( -<#list parser.nonReservedKeywords as keyword> +<#list parser.nonReservedKeywords + parser.nonReservedKeywordsToAdd as keyword> <#if keyword?index == 2> <${keyword}> <#elseif keyword?index % 3 == 2> diff --git a/core/src/test/codegen/config.fmpp b/core/src/test/codegen/config.fmpp index 5790d8e..5be63a4 100644 --- a/core/src/test/codegen/config.fmpp +++ b/core/src/test/codegen/config.fmpp @@ -14,396 +14,409 @@ # limitations under the License. data: { - parser: { - # Generated parser implementation class package and name - package: "org.apache.calcite.sql.parser.parserextensiontesting", - class: "ExtensionSqlParserImpl", + parser: { + # Generated parser implementation class package and name + package: "org.apache.calcite.sql.parser.parserextensiontesting", + class: "ExtensionSqlParserImpl", - # List of import statements. - imports: [ - "org.apache.calcite.sql.SqlCreate", - "org.apache.calcite.sql.parser.parserextensiontesting.SqlCreateTable", - "org.apache.calcite.sql.parser.parserextensiontesting.SqlUploadJarNode" - ] + # List of import statements. + imports: [ + "org.apache.calcite.sql.SqlCreate", + "org.apache.calcite.sql.parser.parserextensiontesting.SqlCreateTable", + "org.apache.calcite.sql.parser.parserextensiontesting.SqlUploadJarNode" + ] - # List of keywords. - keywords: [ - "UPLOAD" - "JAR" - ] + # List of keywords. + keywords: [ + "UPLOAD" + "JAR" + ] - # List of keywords from "keywords" section that are not reserved. - nonReservedKeywords: [ - "A" - "ABSENT" - "ABSOLUTE" - "ACTION" - "ADA" - "ADD" - "ADMIN" - "AFTER" - "ALWAYS" - "APPLY" - "ASC" - "ASSERTION" - "ASSIGNMENT" - "ATTRIBUTE" - "ATTRIBUTES" - "BEFORE" - "BERNOULLI" - "BREADTH" - "C" - "CASCADE" - "CATALOG" - "CATALOG_NAME" - "CENTURY" - "CHAIN" - "CHARACTER_SET_CATALOG" - "CHARACTER_SET_NAME" - "CHARACTER_SET_SCHEMA" - "CHARACTERISTICS" - "CHARACTERS" - "CLASS_ORIGIN" - "COBOL" - "COLLATION" - "COLLATION_CATALOG" - "COLLATION_NAME" - "COLLATION_SCHEMA" - "COLUMN_NAME" - "COMMAND_FUNCTION" - "COMMAND_FUNCTION_CODE" - "COMMITTED" - "CONDITION_NUMBER" - "CONDITIONAL" - "CONNECTION" - "CONNECTION_NAME" - "CONSTRAINT_CATALOG" - "CONSTRAINT_NAME" - "CONSTRAINT_SCHEMA" - "CONSTRAINTS" - "CONSTRUCTOR" - "CONTINUE" - "CURSOR_NAME" - "DATA" - "DATABASE" - "DATETIME_INTERVAL_CODE" - "DATETIME_INTERVAL_PRECISION" - "DECADE" - "DEFAULTS" - "DEFERRABLE" - "DEFERRED" - "DEFINED" - "DEFINER" - "DEGREE" - "DEPTH" - "DERIVED" - "DESC" - "DESCRIPTION" - "DESCRIPTOR" - "DIAGNOSTICS" - "DISPATCH" - "DOMAIN" - "DOW" - "DOY" - "DYNAMIC_FUNCTION" - "DYNAMIC_FUNCTION_CODE" - "ENCODING" - "EPOCH" - "ERROR" - "EXCEPTION" - "EXCLUDE" - "EXCLUDING" - "FINAL" - "FIRST" - "FOLLOWING" - "FORMAT" - "FORTRAN" - "FOUND" - "FRAC_SECOND" - "G" - "GENERAL" - "GENERATED" - "GEOMETRY" - "GO" - "GOTO" - "GRANTED" - "HIERARCHY" - "IGNORE" - "IMMEDIATE" - "IMMEDIATELY" - "IMPLEMENTATION" - "INCLUDING" - "INCREMENT" - "INITIALLY" - "INPUT" - "INSTANCE" - "INSTANTIABLE" - "INVOKER" - "ISODOW" - "ISOYEAR" - "ISOLATION" - "JAVA" - "JSON" - "K" - "KEY" - "KEY_MEMBER" - "KEY_TYPE" - "LABEL" - "LAST" - "LENGTH" - "LEVEL" - "LIBRARY" - "LOCATOR" - "M" - "MAP" - "MATCHED" - "MAXVALUE" - "MICROSECOND" - "MESSAGE_LENGTH" - "MESSAGE_OCTET_LENGTH" - "MESSAGE_TEXT" - "MILLISECOND" - "MILLENNIUM" - "MINVALUE" - "MORE_" - "MUMPS" - "NAME" - "NAMES" - "NANOSECOND" - "NESTING" - "NORMALIZED" - "NULLABLE" - "NULLS" - "NUMBER" - "OBJECT" - "OCTETS" - "OPTION" - "OPTIONS" - "ORDERING" - "ORDINALITY" - "OTHERS" - "OUTPUT" - "OVERRIDING" - "PAD" - "PARAMETER_MODE" - "PARAMETER_NAME" - "PARAMETER_ORDINAL_POSITION" - "PARAMETER_SPECIFIC_CATALOG" - "PARAMETER_SPECIFIC_NAME" - "PARAMETER_SPECIFIC_SCHEMA" - "PARTIAL" - "PASCAL" - "PASSING" - "PASSTHROUGH" - "PAST" - "PATH" - "PLACING" - "PLAN" - "PLI" - "PRECEDING" - "PRESERVE" - "PRIOR" - "PRIVILEGES" - "PUBLIC" - "QUARTER" - "READ" - "RELATIVE" - "REPEATABLE" - "REPLACE" - "RESPECT" - "RESTART" - "RESTRICT" - "RETURNED_CARDINALITY" - "RETURNED_LENGTH" - "RETURNED_OCTET_LENGTH" - "RETURNED_SQLSTATE" - "RETURNING" - "ROLE" - "ROUTINE" - "ROUTINE_CATALOG" - "ROUTINE_NAME" - "ROUTINE_SCHEMA" - "ROW_COUNT" - "SCALAR" - "SCALE" - "SCHEMA" - "SCHEMA_NAME" - "SCOPE_CATALOGS" - "SCOPE_NAME" - "SCOPE_SCHEMA" - "SECTION" - "SECURITY" - "SELF" - "SEQUENCE" - "SERIALIZABLE" - "SERVER" - "SERVER_NAME" - "SESSION" - "SETS" - "SIMPLE" - "SIZE" - "SOURCE" - "SPACE" - "SPECIFIC_NAME" - "SQL_BIGINT" - "SQL_BINARY" - "SQL_BIT" - "SQL_BLOB" - "SQL_BOOLEAN" - "SQL_CHAR" - "SQL_CLOB" - "SQL_DATE" - "SQL_DECIMAL" - "SQL_DOUBLE" - "SQL_FLOAT" - "SQL_INTEGER" - "SQL_INTERVAL_DAY" - "SQL_INTERVAL_DAY_TO_HOUR" - "SQL_INTERVAL_DAY_TO_MINUTE" - "SQL_INTERVAL_DAY_TO_SECOND" - "SQL_INTERVAL_HOUR" - "SQL_INTERVAL_HOUR_TO_MINUTE" - "SQL_INTERVAL_HOUR_TO_SECOND" - "SQL_INTERVAL_MINUTE" - "SQL_INTERVAL_MINUTE_TO_SECOND" - "SQL_INTERVAL_MONTH" - "SQL_INTERVAL_SECOND" - "SQL_INTERVAL_YEAR" - "SQL_INTERVAL_YEAR_TO_MONTH" - "SQL_LONGVARBINARY" - "SQL_LONGVARNCHAR" - "SQL_LONGVARCHAR" - "SQL_NCHAR" - "SQL_NCLOB" - "SQL_NUMERIC" - "SQL_NVARCHAR" - "SQL_REAL" - "SQL_SMALLINT" - "SQL_TIME" - "SQL_TIMESTAMP" - "SQL_TINYINT" - "SQL_TSI_DAY" - "SQL_TSI_FRAC_SECOND" - "SQL_TSI_HOUR" - "SQL_TSI_MICROSECOND" - "SQL_TSI_MINUTE" - "SQL_TSI_MONTH" - "SQL_TSI_QUARTER" - "SQL_TSI_SECOND" - "SQL_TSI_WEEK" - "SQL_TSI_YEAR" - "SQL_VARBINARY" - "SQL_VARCHAR" - "STATE" - "STATEMENT" - "STRUCTURE" - "STYLE" - "SUBCLASS_ORIGIN" - "SUBSTITUTE" - "TABLE_NAME" - "TEMPORARY" - "TIES" - "TIMESTAMPADD" - "TIMESTAMPDIFF" - "TOP_LEVEL_COUNT" - "TRANSACTION" - "TRANSACTIONS_ACTIVE" - "TRANSACTIONS_COMMITTED" - "TRANSACTIONS_ROLLED_BACK" - "TRANSFORM" - "TRANSFORMS" - "TRIGGER_CATALOG" - "TRIGGER_NAME" - "TRIGGER_SCHEMA" - "TYPE" - "UNBOUNDED" - "UNCOMMITTED" - "UNCONDITIONAL" - "UNDER" - "UNNAMED" - "USAGE" - "USER_DEFINED_TYPE_CATALOG" - "USER_DEFINED_TYPE_CODE" - "USER_DEFINED_TYPE_NAME" - "USER_DEFINED_TYPE_SCHEMA" - "UTF8" - "UTF16" - "UTF32" - "VERSION" - "VIEW" - "WEEK" - "WRAPPER" - "WORK" - "WRITE" - "XML" - "ZONE" - ] + # List of keywords from "keywords" section that are not reserved. + nonReservedKeywords: [ + "A" + "ABSENT" + "ABSOLUTE" + "ACTION" + "ADA" + "ADD" + "ADMIN" + "AFTER" + "ALWAYS" + "APPLY" + "ASC" + "ASSERTION" + "ASSIGNMENT" + "ATTRIBUTE" + "ATTRIBUTES" + "BEFORE" + "BERNOULLI" + "BREADTH" + "C" + "CASCADE" + "CATALOG" + "CATALOG_NAME" + "CENTURY" + "CHAIN" + "CHARACTERISTICS" + "CHARACTERS" + "CHARACTER_SET_CATALOG" + "CHARACTER_SET_NAME" + "CHARACTER_SET_SCHEMA" + "CLASS_ORIGIN" + "COBOL" + "COLLATION" + "COLLATION_CATALOG" + "COLLATION_NAME" + "COLLATION_SCHEMA" + "COLUMN_NAME" + "COMMAND_FUNCTION" + "COMMAND_FUNCTION_CODE" + "COMMITTED" + "CONDITIONAL" + "CONDITION_NUMBER" + "CONNECTION" + "CONNECTION_NAME" + "CONSTRAINT_CATALOG" + "CONSTRAINT_NAME" + "CONSTRAINTS" + "CONSTRAINT_SCHEMA" + "CONSTRUCTOR" + "CONTINUE" + "CURSOR_NAME" + "DATA" + "DATABASE" + "DATETIME_INTERVAL_CODE" + "DATETIME_INTERVAL_PRECISION" + "DECADE" + "DEFAULTS" + "DEFERRABLE" + "DEFERRED" + "DEFINED" + "DEFINER" + "DEGREE" + "DEPTH" + "DERIVED" + "DESC" + "DESCRIPTION" + "DESCRIPTOR" + "DIAGNOSTICS" + "DISPATCH" + "DOMAIN" + "DOW" + "DOY" + "DYNAMIC_FUNCTION" + "DYNAMIC_FUNCTION_CODE" + "ENCODING" + "EPOCH" + "ERROR" + "EXCEPTION" + "EXCLUDE" + "EXCLUDING" + "FINAL" + "FIRST" + "FOLLOWING" + "FORMAT" + "FORTRAN" + "FOUND" + "FRAC_SECOND" + "G" + "GENERAL" + "GENERATED" + "GEOMETRY" + "GO" + "GOTO" + "GRANTED" + "HIERARCHY" + "IGNORE" + "IMMEDIATE" + "IMMEDIATELY" + "IMPLEMENTATION" + "INCLUDING" + "INCREMENT" + "INITIALLY" + "INPUT" + "INSTANCE" + "INSTANTIABLE" + "INVOKER" + "ISODOW" + "ISOLATION" + "ISOYEAR" + "JAVA" + "JSON" + "K" + "KEY" + "KEY_MEMBER" + "KEY_TYPE" + "LABEL" + "LAST" + "LENGTH" + "LEVEL" + "LIBRARY" + "LOCATOR" + "M" + "MAP" + "MATCHED" + "MAXVALUE" + "MESSAGE_LENGTH" + "MESSAGE_OCTET_LENGTH" + "MESSAGE_TEXT" + "MICROSECOND" + "MILLENNIUM" + "MILLISECOND" + "MINVALUE" + "MORE_" + "MUMPS" + "NAME" + "NAMES" + "NANOSECOND" + "NESTING" + "NORMALIZED" + "NULLABLE" + "NULLS" + "NUMBER" + "OBJECT" + "OCTETS" + "OPTION" + "OPTIONS" + "ORDERING" + "ORDINALITY" + "OTHERS" + "OUTPUT" + "OVERRIDING" + "PAD" + "PARAMETER_MODE" + "PARAMETER_NAME" + "PARAMETER_ORDINAL_POSITION" + "PARAMETER_SPECIFIC_CATALOG" + "PARAMETER_SPECIFIC_NAME" + "PARAMETER_SPECIFIC_SCHEMA" + "PARTIAL" + "PASCAL" + "PASSING" + "PASSTHROUGH" + "PAST" + "PATH" + "PLACING" + "PLAN" + "PLI" + "PRECEDING" + "PRESERVE" + "PRIOR" + "PRIVILEGES" + "PUBLIC" + "QUARTER" + "READ" + "RELATIVE" + "REPEATABLE" + "REPLACE" + "RESPECT" + "RESTART" + "RESTRICT" + "RETURNED_CARDINALITY" + "RETURNED_LENGTH" + "RETURNED_OCTET_LENGTH" + "RETURNED_SQLSTATE" + "RETURNING" + "ROLE" + "ROUTINE" + "ROUTINE_CATALOG" + "ROUTINE_NAME" + "ROUTINE_SCHEMA" + "ROW_COUNT" + "SCALAR" + "SCALE" + "SCHEMA" + "SCHEMA_NAME" + "SCOPE_CATALOGS" + "SCOPE_NAME" + "SCOPE_SCHEMA" + "SECTION" + "SECURITY" + "SELF" + "SEQUENCE" + "SERIALIZABLE" + "SERVER" + "SERVER_NAME" + "SESSION" + "SETS" + "SIMPLE" + "SIZE" + "SOURCE" + "SPACE" + "SPECIFIC_NAME" + "SQL_BIGINT" + "SQL_BINARY" + "SQL_BIT" + "SQL_BLOB" + "SQL_BOOLEAN" + "SQL_CHAR" + "SQL_CLOB" + "SQL_DATE" + "SQL_DECIMAL" + "SQL_DOUBLE" + "SQL_FLOAT" + "SQL_INTEGER" + "SQL_INTERVAL_DAY" + "SQL_INTERVAL_DAY_TO_HOUR" + "SQL_INTERVAL_DAY_TO_MINUTE" + "SQL_INTERVAL_DAY_TO_SECOND" + "SQL_INTERVAL_HOUR" + "SQL_INTERVAL_HOUR_TO_MINUTE" + "SQL_INTERVAL_HOUR_TO_SECOND" + "SQL_INTERVAL_MINUTE" + "SQL_INTERVAL_MINUTE_TO_SECOND" + "SQL_INTERVAL_MONTH" + "SQL_INTERVAL_SECOND" + "SQL_INTERVAL_YEAR" + "SQL_INTERVAL_YEAR_TO_MONTH" + "SQL_LONGVARBINARY" + "SQL_LONGVARCHAR" + "SQL_LONGVARNCHAR" + "SQL_NCHAR" + "SQL_NCLOB" + "SQL_NUMERIC" + "SQL_NVARCHAR" + "SQL_REAL" + "SQL_SMALLINT" + "SQL_TIME" + "SQL_TIMESTAMP" + "SQL_TINYINT" + "SQL_TSI_DAY" + "SQL_TSI_FRAC_SECOND" + "SQL_TSI_HOUR" + "SQL_TSI_MICROSECOND" + "SQL_TSI_MINUTE" + "SQL_TSI_MONTH" + "SQL_TSI_QUARTER" + "SQL_TSI_SECOND" + "SQL_TSI_WEEK" + "SQL_TSI_YEAR" + "SQL_VARBINARY" + "SQL_VARCHAR" + "STATE" + "STATEMENT" + "STRUCTURE" + "STYLE" + "SUBCLASS_ORIGIN" + "SUBSTITUTE" + "TABLE_NAME" + "TEMPORARY" + "TIES" + "TIMESTAMPADD" + "TIMESTAMPDIFF" + "TOP_LEVEL_COUNT" + "TRANSACTION" + "TRANSACTIONS_ACTIVE" + "TRANSACTIONS_COMMITTED" + "TRANSACTIONS_ROLLED_BACK" + "TRANSFORM" + "TRANSFORMS" + "TRIGGER_CATALOG" + "TRIGGER_NAME" + "TRIGGER_SCHEMA" + "TYPE" + "UNBOUNDED" + "UNCOMMITTED" + "UNCONDITIONAL" + "UNDER" + "UNNAMED" + "USAGE" + "USER_DEFINED_TYPE_CATALOG" + "USER_DEFINED_TYPE_CODE" + "USER_DEFINED_TYPE_NAME" + "USER_DEFINED_TYPE_SCHEMA" + "UTF16" + "UTF32" + "UTF8" + "VERSION" + "VIEW" + "WEEK" + "WORK" + "WRAPPER" + "WRITE" + "XML" + "ZONE" + ] - # List of additional join types. Each is a method with no arguments. - # Example: LeftSemiJoin() - joinTypes: [ - ] + # List of non-reserved keywords to add; + # items in this list become non-reserved + nonReservedKeywordsToAdd: [ + ] - # List of methods for parsing custom SQL statements. - statementParserMethods: [ - "SqlDescribeSpacePower()" - ] + # List of non-reserved keywords to remove; + # items in this list become reserved + nonReservedKeywordsToRemove: [ + ] - # List of methods for parsing custom literals. - # Example: ParseJsonLiteral(). - literalParserMethods: [ - ] + # List of additional join types. Each is a method with no arguments. + # Example: LeftSemiJoin() + joinTypes: [ + ] - # List of methods for parsing custom data types. - dataTypeParserMethods: [ - ] + # List of methods for parsing custom SQL statements. + statementParserMethods: [ + "SqlDescribeSpacePower()" + ] - # List of methods for parsing builtin function calls. - # Return type of method implementation should be "SqlNode". - # Example: DateFunctionCall(). - builtinFunctionCallMethods: [ - ] + # List of methods for parsing custom literals. + # Return type of method implementation should be "SqlNode". + # Example: ParseJsonLiteral(). + literalParserMethods: [ + ] - # List of methods for parsing extensions to "ALTER <scope>" calls. - # Each must accept arguments "(SqlParserPos pos, String scope)". - alterStatementParserMethods: [ - "SqlUploadJarNode" - ] + # List of methods for parsing custom data types. + # Return type of method implementation should be "SqlTypeNameSpec". + # Example: SqlParseTimeStampZ(). + dataTypeParserMethods: [ + ] - # List of methods for parsing extensions to "CREATE [OR REPLACE]" calls. - # Each must accept arguments "(SqlParserPos pos, boolean replace)". - createStatementParserMethods: [ - "SqlCreateTable" - ] + # List of methods for parsing builtin function calls. + # Return type of method implementation should be "SqlNode". + # Example: DateFunctionCall(). + builtinFunctionCallMethods: [ + ] - # List of methods for parsing extensions to "DROP" calls. - # Each must accept arguments "(SqlParserPos pos)". - dropStatementParserMethods: [ - ] + # List of methods for parsing extensions to "ALTER <scope>" calls. + # Each must accept arguments "(SqlParserPos pos, String scope)". + alterStatementParserMethods: [ + "SqlUploadJarNode" + ] - # Binary operators tokens - binaryOperatorsTokens: [ - ] + # List of methods for parsing extensions to "CREATE [OR REPLACE]" calls. + # Each must accept arguments "(SqlParserPos pos, boolean replace)". + createStatementParserMethods: [ + "SqlCreateTable" + ] - # Binary operators initialization - extraBinaryExpressions: [ - ] + # List of methods for parsing extensions to "DROP" calls. + # Each must accept arguments "(SqlParserPos pos)". + dropStatementParserMethods: [ + ] - # List of files in @includes directory that have parser method - # implementations for parsing custom SQL statements, literals or types - # given as part of "statementParserMethods", "literalParserMethods" or - # "dataTypeParserMethods". - implementationFiles: [ - "parserImpls.ftl" - ] + # Binary operators tokens + binaryOperatorsTokens: [ + ] - includePosixOperators: false - includeCompoundIdentifier: true - includeBraces: true - includeAdditionalDeclarations: false + # Binary operators initialization + extraBinaryExpressions: [ + ] - } + # List of files in @includes directory that have parser method + # implementations for parsing custom SQL statements, literals or types + # given as part of "statementParserMethods", "literalParserMethods" or + # "dataTypeParserMethods". + implementationFiles: [ + "parserImpls.ftl" + ] + + includePosixOperators: false + includeCompoundIdentifier: true + includeBraces: true + includeAdditionalDeclarations: false + } } + freemarkerLinks: { - includes: includes/ + includes: includes/ } diff --git a/server/src/main/codegen/config.fmpp b/server/src/main/codegen/config.fmpp index 6ea921c..c2e9e2a 100644 --- a/server/src/main/codegen/config.fmpp +++ b/server/src/main/codegen/config.fmpp @@ -14,423 +14,435 @@ # limitations under the License. data: { - parser: { - # Generated parser implementation class package and name - package: "org.apache.calcite.sql.parser.ddl", - class: "SqlDdlParserImpl", + parser: { + # Generated parser implementation class package and name + package: "org.apache.calcite.sql.parser.ddl", + class: "SqlDdlParserImpl", - # List of import statements. - imports: [ - "org.apache.calcite.schema.ColumnStrategy" - "org.apache.calcite.sql.SqlCreate" - "org.apache.calcite.sql.SqlDrop" - "org.apache.calcite.sql.ddl.SqlDdlNodes" - "java.util.Map" - "java.util.HashMap" - ] + # List of import statements. + imports: [ + "org.apache.calcite.schema.ColumnStrategy" + "org.apache.calcite.sql.SqlCreate" + "org.apache.calcite.sql.SqlDrop" + "org.apache.calcite.sql.ddl.SqlDdlNodes" + "java.util.Map" + "java.util.HashMap" + ] - # List of keywords. - keywords: [ - "IF" - "MATERIALIZED" - "STORED" - "VIRTUAL" - "JAR" - "FILE" - "ARCHIVE" - ] + # List of keywords. + keywords: [ + "IF" + "MATERIALIZED" + "STORED" + "VIRTUAL" + "JAR" + "FILE" + "ARCHIVE" + ] - # List of keywords from "keywords" section that are not reserved. - nonReservedKeywords: [ - "A" - "ABSENT" - "ABSOLUTE" - "ACTION" - "ADA" - "ADD" - "ADMIN" - "AFTER" - "ALWAYS" - "APPLY" - "ASC" - "ASSERTION" - "ASSIGNMENT" - "ATTRIBUTE" - "ATTRIBUTES" - "BEFORE" - "BERNOULLI" - "BREADTH" - "C" - "CASCADE" - "CATALOG" - "CATALOG_NAME" - "CENTURY" - "CHAIN" - "CHARACTER_SET_CATALOG" - "CHARACTER_SET_NAME" - "CHARACTER_SET_SCHEMA" - "CHARACTERISTICS" - "CHARACTERS" - "CLASS_ORIGIN" - "COBOL" - "COLLATION" - "COLLATION_CATALOG" - "COLLATION_NAME" - "COLLATION_SCHEMA" - "COLUMN_NAME" - "COMMAND_FUNCTION" - "COMMAND_FUNCTION_CODE" - "COMMITTED" - "CONDITION_NUMBER" - "CONDITIONAL" - "CONNECTION" - "CONNECTION_NAME" - "CONSTRAINT_CATALOG" - "CONSTRAINT_NAME" - "CONSTRAINT_SCHEMA" - "CONSTRAINTS" - "CONSTRUCTOR" - "CONTINUE" - "CURSOR_NAME" - "DATA" - "DATABASE" - "DATETIME_INTERVAL_CODE" - "DATETIME_INTERVAL_PRECISION" - "DECADE" - "DEFAULTS" - "DEFERRABLE" - "DEFERRED" - "DEFINED" - "DEFINER" - "DEGREE" - "DEPTH" - "DERIVED" - "DESC" - "DESCRIPTION" - "DESCRIPTOR" - "DIAGNOSTICS" - "DISPATCH" - "DOMAIN" - "DOW" - "DOY" - "DYNAMIC_FUNCTION" - "DYNAMIC_FUNCTION_CODE" - "ENCODING" - "EPOCH" - "ERROR" - "EXCEPTION" - "EXCLUDE" - "EXCLUDING" - "FINAL" - "FIRST" - "FOLLOWING" - "FORMAT" - "FORTRAN" - "FOUND" - "FRAC_SECOND" - "G" - "GENERAL" - "GENERATED" - "GEOMETRY" - "GO" - "GOTO" - "GRANTED" - "HIERARCHY" - "IGNORE" - "IMMEDIATE" - "IMMEDIATELY" - "IMPLEMENTATION" - "INCLUDING" - "INCREMENT" - "INITIALLY" - "INPUT" - "INSTANCE" - "INSTANTIABLE" - "INVOKER" - "ISODOW" - "ISOYEAR" - "ISOLATION" - "JAVA" - "JSON" - "K" - "KEY" - "KEY_MEMBER" - "KEY_TYPE" - "LABEL" - "LAST" - "LENGTH" - "LEVEL" - "LIBRARY" - "LOCATOR" - "M" - "MAP" - "MATCHED" - "MAXVALUE" - "MICROSECOND" - "MESSAGE_LENGTH" - "MESSAGE_OCTET_LENGTH" - "MESSAGE_TEXT" - "MILLISECOND" - "MILLENNIUM" - "MINVALUE" - "MORE_" - "MUMPS" - "NAME" - "NAMES" - "NANOSECOND" - "NESTING" - "NORMALIZED" - "NULLABLE" - "NULLS" - "NUMBER" - "OBJECT" - "OCTETS" - "OPTION" - "OPTIONS" - "ORDERING" - "ORDINALITY" - "OTHERS" - "OUTPUT" - "OVERRIDING" - "PAD" - "PARAMETER_MODE" - "PARAMETER_NAME" - "PARAMETER_ORDINAL_POSITION" - "PARAMETER_SPECIFIC_CATALOG" - "PARAMETER_SPECIFIC_NAME" - "PARAMETER_SPECIFIC_SCHEMA" - "PARTIAL" - "PASCAL" - "PASSING" - "PASSTHROUGH" - "PAST" - "PATH" - "PLACING" - "PLAN" - "PLI" - "PRECEDING" - "PRESERVE" - "PRIOR" - "PRIVILEGES" - "PUBLIC" - "QUARTER" - "READ" - "RELATIVE" - "REPEATABLE" - "REPLACE" - "RESPECT" - "RESTART" - "RESTRICT" - "RETURNED_CARDINALITY" - "RETURNED_LENGTH" - "RETURNED_OCTET_LENGTH" - "RETURNED_SQLSTATE" - "RETURNING" - "ROLE" - "ROUTINE" - "ROUTINE_CATALOG" - "ROUTINE_NAME" - "ROUTINE_SCHEMA" - "ROW_COUNT" - "SCALAR" - "SCALE" - "SCHEMA" - "SCHEMA_NAME" - "SCOPE_CATALOGS" - "SCOPE_NAME" - "SCOPE_SCHEMA" - "SECTION" - "SECURITY" - "SELF" - "SEQUENCE" - "SERIALIZABLE" - "SERVER" - "SERVER_NAME" - "SESSION" - "SETS" - "SIMPLE" - "SIZE" - "SOURCE" - "SPACE" - "SPECIFIC_NAME" - "SQL_BIGINT" - "SQL_BINARY" - "SQL_BIT" - "SQL_BLOB" - "SQL_BOOLEAN" - "SQL_CHAR" - "SQL_CLOB" - "SQL_DATE" - "SQL_DECIMAL" - "SQL_DOUBLE" - "SQL_FLOAT" - "SQL_INTEGER" - "SQL_INTERVAL_DAY" - "SQL_INTERVAL_DAY_TO_HOUR" - "SQL_INTERVAL_DAY_TO_MINUTE" - "SQL_INTERVAL_DAY_TO_SECOND" - "SQL_INTERVAL_HOUR" - "SQL_INTERVAL_HOUR_TO_MINUTE" - "SQL_INTERVAL_HOUR_TO_SECOND" - "SQL_INTERVAL_MINUTE" - "SQL_INTERVAL_MINUTE_TO_SECOND" - "SQL_INTERVAL_MONTH" - "SQL_INTERVAL_SECOND" - "SQL_INTERVAL_YEAR" - "SQL_INTERVAL_YEAR_TO_MONTH" - "SQL_LONGVARBINARY" - "SQL_LONGVARNCHAR" - "SQL_LONGVARCHAR" - "SQL_NCHAR" - "SQL_NCLOB" - "SQL_NUMERIC" - "SQL_NVARCHAR" - "SQL_REAL" - "SQL_SMALLINT" - "SQL_TIME" - "SQL_TIMESTAMP" - "SQL_TINYINT" - "SQL_TSI_DAY" - "SQL_TSI_FRAC_SECOND" - "SQL_TSI_HOUR" - "SQL_TSI_MICROSECOND" - "SQL_TSI_MINUTE" - "SQL_TSI_MONTH" - "SQL_TSI_QUARTER" - "SQL_TSI_SECOND" - "SQL_TSI_WEEK" - "SQL_TSI_YEAR" - "SQL_VARBINARY" - "SQL_VARCHAR" - "STATE" - "STATEMENT" - "STRUCTURE" - "STYLE" - "SUBCLASS_ORIGIN" - "SUBSTITUTE" - "TABLE_NAME" - "TEMPORARY" - "TIES" - "TIMESTAMPADD" - "TIMESTAMPDIFF" - "TOP_LEVEL_COUNT" - "TRANSACTION" - "TRANSACTIONS_ACTIVE" - "TRANSACTIONS_COMMITTED" - "TRANSACTIONS_ROLLED_BACK" - "TRANSFORM" - "TRANSFORMS" - "TRIGGER_CATALOG" - "TRIGGER_NAME" - "TRIGGER_SCHEMA" - "TYPE" - "UNBOUNDED" - "UNCOMMITTED" - "UNCONDITIONAL" - "UNDER" - "UNNAMED" - "USAGE" - "USER_DEFINED_TYPE_CATALOG" - "USER_DEFINED_TYPE_CODE" - "USER_DEFINED_TYPE_NAME" - "USER_DEFINED_TYPE_SCHEMA" - "UTF8" - "UTF16" - "UTF32" - "VERSION" - "VIEW" - "WEEK" - "WRAPPER" - "WORK" - "WRITE" - "XML" - "ZONE" + # List of keywords from "keywords" section that are not reserved. + nonReservedKeywords: [ + "A" + "ABSENT" + "ABSOLUTE" + "ACTION" + "ADA" + "ADD" + "ADMIN" + "AFTER" + "ALWAYS" + "APPLY" + "ASC" + "ASSERTION" + "ASSIGNMENT" + "ATTRIBUTE" + "ATTRIBUTES" + "BEFORE" + "BERNOULLI" + "BREADTH" + "C" + "CASCADE" + "CATALOG" + "CATALOG_NAME" + "CENTURY" + "CHAIN" + "CHARACTERISTICS" + "CHARACTERS" + "CHARACTER_SET_CATALOG" + "CHARACTER_SET_NAME" + "CHARACTER_SET_SCHEMA" + "CLASS_ORIGIN" + "COBOL" + "COLLATION" + "COLLATION_CATALOG" + "COLLATION_NAME" + "COLLATION_SCHEMA" + "COLUMN_NAME" + "COMMAND_FUNCTION" + "COMMAND_FUNCTION_CODE" + "COMMITTED" + "CONDITIONAL" + "CONDITION_NUMBER" + "CONNECTION" + "CONNECTION_NAME" + "CONSTRAINT_CATALOG" + "CONSTRAINT_NAME" + "CONSTRAINTS" + "CONSTRAINT_SCHEMA" + "CONSTRUCTOR" + "CONTINUE" + "CURSOR_NAME" + "DATA" + "DATABASE" + "DATETIME_INTERVAL_CODE" + "DATETIME_INTERVAL_PRECISION" + "DECADE" + "DEFAULTS" + "DEFERRABLE" + "DEFERRED" + "DEFINED" + "DEFINER" + "DEGREE" + "DEPTH" + "DERIVED" + "DESC" + "DESCRIPTION" + "DESCRIPTOR" + "DIAGNOSTICS" + "DISPATCH" + "DOMAIN" + "DOW" + "DOY" + "DYNAMIC_FUNCTION" + "DYNAMIC_FUNCTION_CODE" + "ENCODING" + "EPOCH" + "ERROR" + "EXCEPTION" + "EXCLUDE" + "EXCLUDING" + "FINAL" + "FIRST" + "FOLLOWING" + "FORMAT" + "FORTRAN" + "FOUND" + "FRAC_SECOND" + "G" + "GENERAL" + "GENERATED" + "GEOMETRY" + "GO" + "GOTO" + "GRANTED" + "HIERARCHY" + "IGNORE" + "IMMEDIATE" + "IMMEDIATELY" + "IMPLEMENTATION" + "INCLUDING" + "INCREMENT" + "INITIALLY" + "INPUT" + "INSTANCE" + "INSTANTIABLE" + "INVOKER" + "ISODOW" + "ISOLATION" + "ISOYEAR" + "JAVA" + "JSON" + "K" + "KEY" + "KEY_MEMBER" + "KEY_TYPE" + "LABEL" + "LAST" + "LENGTH" + "LEVEL" + "LIBRARY" + "LOCATOR" + "M" + "MAP" + "MATCHED" + "MAXVALUE" + "MESSAGE_LENGTH" + "MESSAGE_OCTET_LENGTH" + "MESSAGE_TEXT" + "MICROSECOND" + "MILLENNIUM" + "MILLISECOND" + "MINVALUE" + "MORE_" + "MUMPS" + "NAME" + "NAMES" + "NANOSECOND" + "NESTING" + "NORMALIZED" + "NULLABLE" + "NULLS" + "NUMBER" + "OBJECT" + "OCTETS" + "OPTION" + "OPTIONS" + "ORDERING" + "ORDINALITY" + "OTHERS" + "OUTPUT" + "OVERRIDING" + "PAD" + "PARAMETER_MODE" + "PARAMETER_NAME" + "PARAMETER_ORDINAL_POSITION" + "PARAMETER_SPECIFIC_CATALOG" + "PARAMETER_SPECIFIC_NAME" + "PARAMETER_SPECIFIC_SCHEMA" + "PARTIAL" + "PASCAL" + "PASSING" + "PASSTHROUGH" + "PAST" + "PATH" + "PLACING" + "PLAN" + "PLI" + "PRECEDING" + "PRESERVE" + "PRIOR" + "PRIVILEGES" + "PUBLIC" + "QUARTER" + "READ" + "RELATIVE" + "REPEATABLE" + "REPLACE" + "RESPECT" + "RESTART" + "RESTRICT" + "RETURNED_CARDINALITY" + "RETURNED_LENGTH" + "RETURNED_OCTET_LENGTH" + "RETURNED_SQLSTATE" + "RETURNING" + "ROLE" + "ROUTINE" + "ROUTINE_CATALOG" + "ROUTINE_NAME" + "ROUTINE_SCHEMA" + "ROW_COUNT" + "SCALAR" + "SCALE" + "SCHEMA" + "SCHEMA_NAME" + "SCOPE_CATALOGS" + "SCOPE_NAME" + "SCOPE_SCHEMA" + "SECTION" + "SECURITY" + "SELF" + "SEQUENCE" + "SERIALIZABLE" + "SERVER" + "SERVER_NAME" + "SESSION" + "SETS" + "SIMPLE" + "SIZE" + "SOURCE" + "SPACE" + "SPECIFIC_NAME" + "SQL_BIGINT" + "SQL_BINARY" + "SQL_BIT" + "SQL_BLOB" + "SQL_BOOLEAN" + "SQL_CHAR" + "SQL_CLOB" + "SQL_DATE" + "SQL_DECIMAL" + "SQL_DOUBLE" + "SQL_FLOAT" + "SQL_INTEGER" + "SQL_INTERVAL_DAY" + "SQL_INTERVAL_DAY_TO_HOUR" + "SQL_INTERVAL_DAY_TO_MINUTE" + "SQL_INTERVAL_DAY_TO_SECOND" + "SQL_INTERVAL_HOUR" + "SQL_INTERVAL_HOUR_TO_MINUTE" + "SQL_INTERVAL_HOUR_TO_SECOND" + "SQL_INTERVAL_MINUTE" + "SQL_INTERVAL_MINUTE_TO_SECOND" + "SQL_INTERVAL_MONTH" + "SQL_INTERVAL_SECOND" + "SQL_INTERVAL_YEAR" + "SQL_INTERVAL_YEAR_TO_MONTH" + "SQL_LONGVARBINARY" + "SQL_LONGVARCHAR" + "SQL_LONGVARNCHAR" + "SQL_NCHAR" + "SQL_NCLOB" + "SQL_NUMERIC" + "SQL_NVARCHAR" + "SQL_REAL" + "SQL_SMALLINT" + "SQL_TIME" + "SQL_TIMESTAMP" + "SQL_TINYINT" + "SQL_TSI_DAY" + "SQL_TSI_FRAC_SECOND" + "SQL_TSI_HOUR" + "SQL_TSI_MICROSECOND" + "SQL_TSI_MINUTE" + "SQL_TSI_MONTH" + "SQL_TSI_QUARTER" + "SQL_TSI_SECOND" + "SQL_TSI_WEEK" + "SQL_TSI_YEAR" + "SQL_VARBINARY" + "SQL_VARCHAR" + "STATE" + "STATEMENT" + "STRUCTURE" + "STYLE" + "SUBCLASS_ORIGIN" + "SUBSTITUTE" + "TABLE_NAME" + "TEMPORARY" + "TIES" + "TIMESTAMPADD" + "TIMESTAMPDIFF" + "TOP_LEVEL_COUNT" + "TRANSACTION" + "TRANSACTIONS_ACTIVE" + "TRANSACTIONS_COMMITTED" + "TRANSACTIONS_ROLLED_BACK" + "TRANSFORM" + "TRANSFORMS" + "TRIGGER_CATALOG" + "TRIGGER_NAME" + "TRIGGER_SCHEMA" + "TYPE" + "UNBOUNDED" + "UNCOMMITTED" + "UNCONDITIONAL" + "UNDER" + "UNNAMED" + "USAGE" + "USER_DEFINED_TYPE_CATALOG" + "USER_DEFINED_TYPE_CODE" + "USER_DEFINED_TYPE_NAME" + "USER_DEFINED_TYPE_SCHEMA" + "UTF16" + "UTF32" + "UTF8" + "VERSION" + "VIEW" + "WEEK" + "WORK" + "WRAPPER" + "WRITE" + "XML" + "ZONE" + ] - # not in core, added in server - "IF" - "MATERIALIZED" - "STORED" - "VIRTUAL" - "JAR" - "FILE" - "ARCHIVE" - ] + # List of non-reserved keywords to add; + # items in this list become non-reserved + nonReservedKeywordsToAdd: [ + # not in core, added in server + "IF" + "MATERIALIZED" + "STORED" + "VIRTUAL" + "JAR" + "FILE" + "ARCHIVE" + ] - # List of additional join types. Each is a method with no arguments. - # Example: LeftSemiJoin() - joinTypes: [ - ] + # List of non-reserved keywords to remove; + # items in this list become reserved + nonReservedKeywordsToRemove: [ + ] - # List of methods for parsing custom SQL statements. - statementParserMethods: [ - ] + # List of additional join types. Each is a method with no arguments. + # Example: LeftSemiJoin() + joinTypes: [ + ] - # List of methods for parsing custom literals. - # Example: ParseJsonLiteral(). - literalParserMethods: [ - ] + # List of methods for parsing custom SQL statements. + statementParserMethods: [ + ] - # List of methods for parsing custom data types. - dataTypeParserMethods: [ - ] + # List of methods for parsing custom literals. + # Return type of method implementation should be "SqlNode". + # Example: ParseJsonLiteral(). + literalParserMethods: [ + ] - # List of methods for parsing builtin function calls. - # Return type of method implementation should be "SqlNode". - # Example: DateFunctionCall(). - builtinFunctionCallMethods: [ - ] + # List of methods for parsing custom data types. + # Return type of method implementation should be "SqlTypeNameSpec". + # Example: SqlParseTimeStampZ(). + dataTypeParserMethods: [ + ] - # List of methods for parsing extensions to "ALTER <scope>" calls. - # Each must accept arguments "(SqlParserPos pos, String scope)". - alterStatementParserMethods: [ - ] + # List of methods for parsing builtin function calls. + # Return type of method implementation should be "SqlNode". + # Example: DateFunctionCall(). + builtinFunctionCallMethods: [ + ] - # List of methods for parsing extensions to "CREATE [OR REPLACE]" calls. - # Each must accept arguments "(SqlParserPos pos, boolean replace)". - createStatementParserMethods: [ - "SqlCreateForeignSchema" - "SqlCreateMaterializedView" - "SqlCreateSchema" - "SqlCreateTable" - "SqlCreateType" - "SqlCreateView" - "SqlCreateFunction" - ] + # List of methods for parsing extensions to "ALTER <scope>" calls. + # Each must accept arguments "(SqlParserPos pos, String scope)". + alterStatementParserMethods: [ + ] - # List of methods for parsing extensions to "DROP" calls. - # Each must accept arguments "(SqlParserPos pos)". - dropStatementParserMethods: [ - "SqlDropMaterializedView" - "SqlDropSchema" - "SqlDropTable" - "SqlDropType" - "SqlDropView" - "SqlDropFunction" - ] + # List of methods for parsing extensions to "CREATE [OR REPLACE]" calls. + # Each must accept arguments "(SqlParserPos pos, boolean replace)". + createStatementParserMethods: [ + "SqlCreateForeignSchema" + "SqlCreateMaterializedView" + "SqlCreateSchema" + "SqlCreateTable" + "SqlCreateType" + "SqlCreateView" + "SqlCreateFunction" + ] - # Binary operators tokens - binaryOperatorsTokens: [ - ] + # List of methods for parsing extensions to "DROP" calls. + # Each must accept arguments "(SqlParserPos pos)". + dropStatementParserMethods: [ + "SqlDropMaterializedView" + "SqlDropSchema" + "SqlDropTable" + "SqlDropType" + "SqlDropView" + "SqlDropFunction" + ] - # Binary operators initialization - extraBinaryExpressions: [ - ] + # Binary operators tokens + binaryOperatorsTokens: [ + ] - # List of files in @includes directory that have parser method - # implementations for parsing custom SQL statements, literals or types - # given as part of "statementParserMethods", "literalParserMethods" or - # "dataTypeParserMethods". - implementationFiles: [ - "parserImpls.ftl" - ] + # Binary operators initialization + extraBinaryExpressions: [ + ] - includePosixOperators: false - includeCompoundIdentifier: true - includeBraces: true - includeAdditionalDeclarations: false + # List of files in @includes directory that have parser method + # implementations for parsing custom SQL statements, literals or types + # given as part of "statementParserMethods", "literalParserMethods" or + # "dataTypeParserMethods". + implementationFiles: [ + "parserImpls.ftl" + ] - } + includePosixOperators: false + includeCompoundIdentifier: true + includeBraces: true + includeAdditionalDeclarations: false + } } + freemarkerLinks: { - includes: includes/ + includes: includes/ }
