| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| { |
| # Generated parser implementation class package and name |
| package: "org.apache.drill.exec.planner.sql.parser.impl", |
| class: "DrillParserImpl", |
| |
| # List of import statements. |
| imports: [ |
| "org.apache.drill.exec.planner.sql.parser.*", |
| "org.apache.calcite.util.*", |
| "java.util.*" |
| ] |
| |
| # List of keywords. |
| keywords: [ |
| "DATABASES", |
| "SCHEMAS", |
| "TABLES", |
| "USE", |
| "FILES", |
| "REFRESH", |
| "METADATA", |
| "IF", |
| "JAR", |
| "PROPERTIES", |
| "ANALYZE", |
| "COMPUTE", |
| "ESTIMATE", |
| "STATISTICS", |
| "SAMPLE", |
| "COLUMNS", |
| "REMOVE", |
| "ALIAS", |
| "ALIASES", |
| "STORAGE" |
| ] |
| |
| # List of methods for parsing custom SQL statements. |
| statementParserMethods: [ |
| "SqlShowTables()", |
| "SqlShowSchemas()", |
| "SqlDescribeSchema()" |
| "SqlDescribeTable()", |
| "SqlUseSchema()", |
| "SqlCreateOrReplace()" |
| "SqlDropAlias()", |
| "SqlDropAllAliases()", |
| "SqlDrop()", |
| "SqlShowFiles()", |
| "SqlRefreshMetadata()", |
| "SqlCreateFunction()", |
| "SqlDropFunction()", |
| "SqlAnalyzeTable()", |
| "DrillSqlSetOption(Span.of(), null)", |
| "DrillSqlResetOption(Span.of(), null)", |
| "SqlAlterSchema()" |
| ] |
| |
| # List of methods for parsing custom literals. |
| # Example: ParseJsonLiteral(). |
| literalParserMethods: [ |
| ] |
| |
| # List of methods for parsing custom data types. |
| dataTypeParserMethods: [ |
| ] |
| |
| # Binary operators tokens |
| binaryOperatorsTokens: [ |
| ] |
| |
| # Binary operators initialization |
| extraBinaryExpressions: [ |
| ] |
| |
| # List of files in @includes directory that have parser method |
| # implementations for custom SQL statements, literals or types |
| # given as part of "statementParserMethods", "literalParserMethods" or |
| # "dataTypeParserMethods". |
| implementationFiles: [ |
| "parserImpls.ftl" |
| ] |
| |
| # 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: [ |
| "DrillSqlSetOption", |
| "DrillSqlResetOption" |
| ] |
| |
| # List of methods for parsing extensions to "DROP" calls. |
| # Each must accept arguments "(SqlParserPos pos)". |
| dropStatementParserMethods: [ |
| ] |
| |
| # List of keywords from "keywords" section that are not reserved. |
| # Copied from calcite-core config.fmpp |
| # For details please see comment under CALCITE-2405. |
| nonReservedKeywords: [ |
| "A" |
| "ABSENT" |
| "ABSOLUTE" |
| "ACTION" |
| "ADA" |
| "ADD" |
| "ADMIN" |
| "AFTER" |
| "ALWAYS" |
| "APPLY" |
| "ARRAY_AGG" |
| "ARRAY_CONCAT_AGG" |
| "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" |
| "DATE_TRUNC" |
| "DATETIME_INTERVAL_CODE" |
| "DATETIME_INTERVAL_PRECISION" |
| "DAYS" |
| "DECADE" |
| "DEFAULTS" |
| "DEFERRABLE" |
| "DEFERRED" |
| "DEFINED" |
| "DEFINER" |
| "DEGREE" |
| "DEPTH" |
| "DERIVED" |
| "DESC" |
| "DESCRIPTION" |
| "DESCRIPTOR" |
| "DIAGNOSTICS" |
| "DISPATCH" |
| "DOMAIN" |
| "DOW" |
| "DOY" |
| "DOT_FORMAT" |
| "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" |
| "GROUP_CONCAT" |
| "HIERARCHY" |
| "HOP" |
| "HOURS" |
| "IGNORE" |
| "ILIKE" |
| "IMMEDIATE" |
| "IMMEDIATELY" |
| "IMPLEMENTATION" |
| "INCLUDE" |
| "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" |
| "MINUTES" |
| "MINVALUE" |
| "MONTHS" |
| "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" |
| "PIVOT" |
| "PLACING" |
| "PLAN" |
| "PLI" |
| "PRECEDING" |
| "PRESERVE" |
| "PRIOR" |
| "PRIVILEGES" |
| "PUBLIC" |
| "QUARTER" |
| "QUARTERS" |
| "READ" |
| "RELATIVE" |
| "REPEATABLE" |
| "REPLACE" |
| "RESPECT" |
| "RESTART" |
| "RESTRICT" |
| "RETURNED_CARDINALITY" |
| "RETURNED_LENGTH" |
| "RETURNED_OCTET_LENGTH" |
| "RETURNED_SQLSTATE" |
| "RETURNING" |
| "RLIKE" |
| "ROLE" |
| "ROUTINE" |
| "ROUTINE_CATALOG" |
| "ROUTINE_NAME" |
| "ROUTINE_SCHEMA" |
| "ROW_COUNT" |
| "SCALAR" |
| "SCALE" |
| "SCHEMA" |
| "SCHEMA_NAME" |
| "SCOPE_CATALOGS" |
| "SCOPE_NAME" |
| "SCOPE_SCHEMA" |
| "SECONDS" |
| "SECTION" |
| "SECURITY" |
| "SELF" |
| "SEPARATOR" |
| "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" |
| "STRING_AGG" |
| "STRUCTURE" |
| "STYLE" |
| "SUBCLASS_ORIGIN" |
| "SUBSTITUTE" |
| "TABLE_NAME" |
| "TEMPORARY" |
| "TIES" |
| "TIME_DIFF" |
| "TIME_TRUNC" |
| "TIMESTAMPADD" |
| "TIMESTAMPDIFF" |
| "TIMESTAMP_DIFF" |
| "TIMESTAMP_TRUNC" |
| "TOP_LEVEL_COUNT" |
| "TRANSACTION" |
| "TRANSACTIONS_ACTIVE" |
| "TRANSACTIONS_COMMITTED" |
| "TRANSACTIONS_ROLLED_BACK" |
| "TRANSFORM" |
| "TRANSFORMS" |
| "TRIGGER_CATALOG" |
| "TRIGGER_NAME" |
| "TRIGGER_SCHEMA" |
| "TUMBLE" |
| "TYPE" |
| "UNBOUNDED" |
| "UNCOMMITTED" |
| "UNCONDITIONAL" |
| "UNDER" |
| "UNPIVOT" |
| "UNNAMED" |
| "USAGE" |
| "USER_DEFINED_TYPE_CATALOG" |
| "USER_DEFINED_TYPE_CODE" |
| "USER_DEFINED_TYPE_NAME" |
| "USER_DEFINED_TYPE_SCHEMA" |
| "UTF16" |
| "UTF32" |
| "UTF8" |
| "VERSION" |
| "VIEW" |
| "WEEK" |
| "WEEKS" |
| "WORK" |
| "WRAPPER" |
| "WRITE" |
| "XML" |
| "YEARS" |
| "ZONE" |
| |
| # 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" |
| "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", |
| "IDENTITY" |
| "ILIKE" |
| "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" |
| "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" |
| "RLIKE" |
| "ROLE" |
| "ROLLBACK" |
| # "ROLLUP" |
| "ROUTINE" |
| # "ROW" |
| # "ROWS" |
| "ROW_NUMBER" |
| "RUNNING" |
| "SAVEPOINT" |
| "SCHEMA" |
| "SCOPE" |
| "SCROLL" |
| "SEARCH" |
| "SECOND" |
| "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" |
| "TIME_DIFF" |
| "TIME_TRUNC" |
| # "TIMESTAMP" |
| "TIMESTAMP_DIFF" |
| "TIMESTAMP_TRUNC" |
| "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" |
| "ZONE" |
| ] |
| |
| # List of non-reserved keywords to add; |
| # items in this list become non-reserved |
| nonReservedKeywordsToAdd: [ |
| "ALIAS" |
| "ALIASES" |
| "COLUMNS" |
| "DATETIME" |
| "HOURS" |
| "STORAGE" |
| "REMOVE" |
| ] |
| |
| # 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. |
| # Example: LeftSemiJoin() |
| joinTypes: [ |
| ] |
| |
| # List of methods for parsing builtin function calls. |
| # Return type of method implementation should be "SqlNode". |
| # Example: DateFunctionCall(). |
| builtinFunctionCallMethods: [ |
| ] |
| |
| includePosixOperators: false, |
| includeCompoundIdentifier: false, |
| includeBraces: true, |
| includeAdditionalDeclarations: false, |
| includeParsingStringLiteralAsArrayLiteral: false, |
| |
| identifierMaxLength: 1024 |
| |
| } |