# 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.

data: {
  # Data declarations for this parser.
  #
  # Default declarations are in default_config.fmpp; if you do not include a
  # declaration ('imports' or 'nonReservedKeywords', for example) in this file,
  # FMPP will use the declaration from default_config.fmpp.
  parser: {
    # Generated parser implementation class package and name
    package: "org.apache.calcite.sql.parser.dingo",
    class: "DingoSqlParserImpl",

    # List of import statements.
    imports: [
      "io.dingodb.common.partition.PartitionDetailDefinition"
      "io.dingodb.common.partition.PartitionDefinition"
      "io.dingodb.calcite.grammar.ddl.ColumnOption"
      "io.dingodb.calcite.grammar.ddl.Constraint"
      "io.dingodb.calcite.grammar.ddl.DingoSqlDdlNodes"
      "io.dingodb.calcite.grammar.ddl.SqlBeginTx"
      "io.dingodb.calcite.grammar.ddl.SqlBlock"
      "io.dingodb.calcite.grammar.ddl.SqlCommit"
      "io.dingodb.calcite.grammar.ddl.SqlAdmin"
      "io.dingodb.calcite.grammar.ddl.SqlRollback"
      "io.dingodb.calcite.grammar.ddl.SqlAdminRollback"
      "io.dingodb.calcite.grammar.ddl.SqlAdminResetAutoInc"
      "io.dingodb.calcite.grammar.ddl.SqlAlterAutoIncrement"
      "io.dingodb.calcite.grammar.ddl.SqlAlterAddColumn"
      "io.dingodb.calcite.grammar.ddl.SqlAlterAddIndex"
      "io.dingodb.calcite.grammar.ddl.SqlAlterAddConstraint"
      "io.dingodb.calcite.grammar.ddl.SqlAlterAddForeign"
      "io.dingodb.calcite.grammar.ddl.SqlAlterDropIndex"
      "io.dingodb.calcite.grammar.ddl.SqlAlterDropColumn"
      "io.dingodb.calcite.grammar.ddl.SqlAlterDropConstraint"
      "io.dingodb.calcite.grammar.ddl.SqlAlterDropForeign"
      "io.dingodb.calcite.grammar.ddl.SqlAlterDropPart"
      "io.dingodb.calcite.grammar.ddl.SqlAlterExchangePart"
      "io.dingodb.calcite.grammar.ddl.SqlAlterModifyColumn"
      "io.dingodb.calcite.grammar.ddl.SqlAlterChangeColumn"
      "io.dingodb.calcite.grammar.ddl.SqlAlterRenameTable"
      "io.dingodb.calcite.grammar.ddl.SqlAlterRenameIndex"
      "io.dingodb.calcite.grammar.ddl.SqlAlterColumn"
      "io.dingodb.calcite.grammar.ddl.SqlAlterIndex"
      "io.dingodb.calcite.grammar.ddl.SqlAlterIndexVisible"
      "io.dingodb.calcite.grammar.ddl.SqlAlterConvertCharset"
      "io.dingodb.calcite.grammar.ddl.SqlAlterConstraint"
      "io.dingodb.calcite.grammar.ddl.SqlAlterUser"
      "io.dingodb.calcite.grammar.ddl.SqlAlterTable"
      "io.dingodb.calcite.grammar.ddl.SqlAlterTableAddPart"
      "io.dingodb.calcite.grammar.ddl.SqlAlterTableComment"
      "io.dingodb.calcite.grammar.ddl.SqlAlterTenant"
      "io.dingodb.calcite.grammar.ddl.SqlAlterTableDistribution"
      "io.dingodb.calcite.grammar.ddl.SqlAlterTruncatePart"
      "io.dingodb.calcite.grammar.ddl.SqlAlterSchema"
      "io.dingodb.calcite.grammar.ddl.SqlAnalyze"
      "io.dingodb.calcite.grammar.ddl.SqlCreateTenant"
      "io.dingodb.calcite.grammar.ddl.SqlCreateSchema"
      "io.dingodb.calcite.grammar.ddl.DingoSqlCreateView"
      "io.dingodb.calcite.grammar.ddl.SqlCreateUser"
      "io.dingodb.calcite.grammar.ddl.SqlCreateIndex"
      "io.dingodb.calcite.grammar.ddl.SqlCreateVectorIndex"
      "io.dingodb.calcite.grammar.ddl.SqlCreateDocumentIndex"
      "io.dingodb.calcite.grammar.ddl.SqlCreateSequence"
      "io.dingodb.calcite.grammar.dql.SqlDesc"
      "io.dingodb.calcite.grammar.dql.SqlDescTable"
      "io.dingodb.calcite.grammar.ddl.SqlDropUser"
      "io.dingodb.calcite.grammar.ddl.SqlDropIndex"
      "io.dingodb.calcite.grammar.ddl.SqlDropTenant"
      "io.dingodb.calcite.grammar.ddl.SqlDropSequence"
      "io.dingodb.calcite.grammar.ddl.SqlEnd"
      "io.dingodb.calcite.grammar.ddl.SqlFlashBack"
      "io.dingodb.calcite.grammar.ddl.SqlFlashBackTable"
      "io.dingodb.calcite.grammar.ddl.SqlFlashBackSchema"
      "io.dingodb.calcite.grammar.ddl.SqlFlushPrivileges"
      "io.dingodb.calcite.grammar.ddl.SqlForeign"
      "io.dingodb.calcite.grammar.ddl.SqlGrant"
      "io.dingodb.calcite.grammar.ddl.SqlIndexDeclaration"
      "io.dingodb.calcite.grammar.ddl.SqlKill"
      "io.dingodb.calcite.grammar.ddl.SqlKillConnection"
      "io.dingodb.calcite.grammar.ddl.SqlKillQuery"
      "io.dingodb.calcite.grammar.ddl.SqlLoadData"
      "io.dingodb.calcite.grammar.ddl.SqlLock"
      "io.dingodb.calcite.grammar.ddl.SqlLockBlock"
      "io.dingodb.calcite.grammar.ddl.SqlLockTable"
      "io.dingodb.calcite.grammar.dql.SqlNextAutoIncrement"
      "io.dingodb.calcite.grammar.ddl.SqlRecoverTable"
      "io.dingodb.calcite.grammar.ddl.SqlRevoke"
      "io.dingodb.calcite.grammar.ddl.SqlSetPassword"
      "io.dingodb.calcite.grammar.ddl.SqlTruncate"
      "io.dingodb.calcite.grammar.ddl.SqlUseSchema"
      "io.dingodb.calcite.grammar.ddl.SqlUnLock"
      "io.dingodb.calcite.grammar.ddl.SqlUnLockTable"
      "io.dingodb.calcite.grammar.ddl.SqlUnLockBlock"
      "io.dingodb.calcite.grammar.dql.FlashBackSqlIdentifier"
      "io.dingodb.calcite.grammar.dql.SqlShow"
      "io.dingodb.calcite.grammar.dql.SqlShowCharset"
      "io.dingodb.calcite.grammar.dql.SqlShowColumns"
      "io.dingodb.calcite.grammar.dql.SqlShowCollation"
      "io.dingodb.calcite.grammar.dql.SqlShowCreateTable"
      "io.dingodb.calcite.grammar.dql.SqlShowCreateUser"
      "io.dingodb.calcite.grammar.dql.SqlShowDatabases"
      "io.dingodb.calcite.grammar.dql.SqlShowEngines"
      "io.dingodb.calcite.grammar.dql.SqlShowGrants"
      "io.dingodb.calcite.grammar.dql.SqlShowTableIndex"
      "io.dingodb.calcite.grammar.dql.SqlShowIndexFromTable"
      "io.dingodb.calcite.grammar.dql.SqlShowLocks"
      "io.dingodb.calcite.grammar.dql.SqlShowTableDistribution"
      "io.dingodb.calcite.grammar.dql.SqlShowTables"
      "io.dingodb.calcite.grammar.dql.SqlShowTenants"
      "io.dingodb.calcite.grammar.dql.SqlShowExecutors"
      "io.dingodb.calcite.grammar.dql.SqlShowTableStatus"
      "io.dingodb.calcite.grammar.dql.SqlShowPlugins"
      "io.dingodb.calcite.grammar.dql.SqlShowProcessList"
      "io.dingodb.calcite.grammar.dql.SqlShowFullTables"
      "io.dingodb.calcite.grammar.dql.SqlShowVariables"
      "io.dingodb.calcite.grammar.dql.SqlShowWarnings"
      "io.dingodb.calcite.grammar.dql.SqlShowTriggers"
      "io.dingodb.calcite.grammar.dql.SqlShowStartTs"
      "io.dingodb.calcite.grammar.dql.SqlShowStatus"
      "io.dingodb.calcite.grammar.dql.SqlSelect"
      "io.dingodb.calcite.grammar.dql.SqlStartGc"
      "io.dingodb.calcite.grammar.dql.SqlBackUpTsoPoint"
      "io.dingodb.calcite.grammar.dql.SqlBackUpTimePoint"
      "io.dingodb.calcite.grammar.dql.ExportOptions"
      "io.dingodb.calcite.grammar.dml.SqlExecute"
      "io.dingodb.calcite.grammar.dml.SqlPrepare"
      "io.dingodb.calcite.grammar.SqlUserDefinedOperators"
      "org.apache.calcite.avatica.util.DateTimeUtils"
      "org.apache.calcite.schema.ColumnStrategy"
      "org.apache.calcite.sql.SqlCreate"
      "org.apache.calcite.sql.SqlDateLiteral"
      "org.apache.calcite.sql.SqlDrop"
      "org.apache.calcite.sql.SqlFunction"
      "org.apache.calcite.sql.SqlIntervalLiteral"
      "org.apache.calcite.sql.SqlTimeLiteral"
      "org.apache.calcite.sql.SqlTimestampLiteral"
      "org.apache.calcite.sql.ddl.SqlDdlNodes"
      "org.apache.calcite.sql.ddl.DingoSqlColumn"
      "org.apache.calcite.sql.ddl.DingoSqlKeyConstraint"
      "org.apache.calcite.sql.ddl.SqlFloatTypeNameSpec"
      "org.apache.calcite.sql2rel.SqlLikeBinaryOperator"
      "org.apache.calcite.sql2rel.SqlFunctionScanOperator"
      "org.apache.calcite.util.NlsString"
      "static io.dingodb.calcite.utils.ParseValueUtils.*"
      "java.util.Properties"
      "java.util.Calendar"
      "java.math.BigInteger"
    ]

  # List of new keywords. Example: "DATABASES", "TABLES". If the keyword is
  # not a reserved keyword, add it to the 'nonReservedKeywords' section.
  keywords: [
      "ALGORITHM"
      "AUTO_RANDOM"
      "INPLACE"
      "IF"
      "COPY"
      "MATERIALIZED"
      "STORED"
      "VIRTUAL"
      "JAR"
      "FILE"
      "FLASHBACK"
      "ARCHIVE"
      "ACCOUNT"
      "AUTO_INCREMENT"
      "COLUMNS"
      "CLUSTERED"
      "NONCLUSTERED"
      "DATABASES"
      "DISTRIBUTION"
      "ENCLOSED"
      "ENGINE"
      "ENGINES"
      "EXCHANGE"
      "EXCLUSIVE"
      "EXECUTOR"
      "EXECUTORS"
      "ENFORCED"
      "EXPIRE"
      "ENCRYPTION"
      "ESCAPED"
      "FIELDS"
      "FLUSH"
      "GRANTS"
      "IDENTIFIED"
      "INDEX"
      "INFILE"
      "INVISIBLE"
      "LESS"
      "LINES"
      "LOAD"
      "LOCK"
      "NEXT_AUTO_INCREMENT"
      "PARAMETERS"
      "PARTITIONS"
      "PASSWORD"
      "PLUGINS"
      "PREPARE"
      "PROCESSLIST"
      "RECOVER"
      "RELOAD"
      "REPLICA"
      "REQUIRE"
      "SCAN"
      "SSL"
      "SERIAL"
      "STARTING"
      "SHARED"
      "STATUS"
      "STORAGE"
      "TABLES"
      "STARTTS"
      "TERMINATED"
      "THAN"
      "TTL"
      "TRACE"
      "TSO"
      "UNLOCK"
      "USE"
      "VARIABLES"
      "VECTOR"
      "VISIBLE"
      "WARNINGS"
      "ANALYZE"
      "BUCKETS"
      "CMSKETCH"
      "SAMPLES"
      "SAMPLERATE"
      "PESSIMISTIC"
      "PARSER"
      "OPTIMISTIC"
      "BLOCKS"
      "HASH"
      "LOCKS"
      "COMMENT"
      "CHARSET"
      "KILL"
      "QUERY"
      "UNSIGNED"
      "TEXT"
      "LONGTEXT"
      "OUTFILE"
      "TRIGGERS"
      "MONITOR"
      "REGIONS"
      "TENANT"
      "TENANTS"
      "REMARKS"
      "RENAME"
      "TEXT_SEARCH"
      "HYBRID_SEARCH"
      "DISK"
      "DISK_ANN_BUILD"
      "DISK_ANN_LOAD"
      "DISK_ANN_STATUS"
      "DISK_ANN_RESET"
      "DISK_ANN_COUNT_MEMORY"
      "BACK_UP_TIME_POINT"
      "BACK_UP_TSO_POINT"
      "START_GC"
      "CACHE"
      "MODIFY"
      "CHANGE"
      "SPATIAL"
      "FULLTEXT"
      "KEY_BLOCK_SIZE"
      "BTREE"
      "RTREE"
      "UNDEFINED"
      "TEMPTABLE"
      "FIXED"
      "MEMORY"
      "COLUMN_FORMAT"
    ]

    # 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 methods for parsing extensions to "CREATE [OR REPLACE]" calls.
    # Each must accept arguments "(SqlParserPos pos, boolean replace)".
    # Example: "SqlCreateForeignSchema".
    createStatementParserMethods: [
      "SqlCreateForeignSchema"
      "SqlCreateMaterializedView"
      "SqlCreateSchema"
      "SqlCreateTable"
      "SqlCreateType"
      "SqlCreateView"
      "SqlCreateFunction"
      "SqlCreateIndex"
      "SqlCreateTenant"
      "SqlCreateVectorIndex"
      "SqlCreateDocumentIndex"
      "SqlCreateSequence"
    ]

    # List of methods for parsing extensions to "DROP" calls.
    # Each must accept arguments "(SqlParserPos pos)".
    # Example: "SqlDropSchema".
    dropStatementParserMethods: [
      "SqlDropMaterializedView"
      "SqlDropSchema"
      "SqlDropTable"
      "SqlDropType"
      "SqlDropView"
      "SqlDropFunction"
      "SqlDropUser"
      "SqlDropIndex"
      "SqlDropTenant"
      "SqlDropSequence"
    ]

    alterStatementParserMethods: [
       "SqlAlterTable"
       "SqlAlterUser"
       "SqlAlterTenant"
       "SqlAlterSchema"
       "SqlAlterIgnoreTable"
    ]

    statementParserMethods: [
        "SqlTraceSelect"
        "SqlTraceInsert"
        "SqlDescTable"
        "SqlTruncate"
        "SqlGrant"
        "SqlRevoke"
        "SqlFlush"
        "SqlShow"
        "SqlCommit"
        "SqlRollback"
        "SqlUseSchema"
        "SqlPrepare"
        "SqlExecute"
        "SqlAnalyze"
        "SqlStartTx"
        "SqlBegin"
        "SqlLock"
        "SqlEnd"
        "SqlUnLock"
        "SqlKill"
        "SqlLoadData"
        "SqlCall"
        "SqlAdmin"
        "SqlFlashBack"
        "SqlRecoverTable"
        "SqlRenameTable"
    ]

    sqlTypeNameMethods: [
        "SqlFloatTypeName"
        "SqlDateTimeTypeName"
        "SqlTextTypeName"
        "SqlLongTextTypeName"
    ]

    functionCallMethods: [
        "TableFunctionCall"
    ]

    # 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".
    # Example: "parserImpls.ftl".
    implementationFiles: [
      "parserImpls.ftl"
      "AlterTable.ftl"
      "Show.ftl"
      "Analyze.ftl"
      "Grant.ftl"
      "Transaction.ftl"
      "SqlType.ftl"
      "Kill.ftl"
      "LoadData.ftl"
      "Call.ftl"
      "Tenant.ftl"
      "Admin.ftl"
      "Flashback.ftl"
    ]

    includePosixOperators: false
    includeCompoundIdentifier: true
    includeBraces: true
    includeAdditionalDeclarations: false
    includeParsingStringLiteralAsArrayLiteral: false

  # List of keywords from "keywords" section that are not reserved.
  nonReservedKeywords: [
    "A"
    "ABSENT"
    "ABSOLUTE"
    "ACCOUNT"
    "AUTO_INCREMENT"
    "ACTION"
    "ADA"
    "ADD"
    "ADMIN"
    "AFTER"
    "ALWAYS"
    "APPLY"
    "ARRAY_AGG"
    "ARRAY_CONCAT_AGG"
    "ASC"
    "ASSERTION"
    "ASSIGNMENT"
    "ATTRIBUTE"
    "ATTRIBUTES"
    "BLOB"
    "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"
    "COLUMNS"
    "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"
    "ENGINE"
    "EXCEPTION"
    "EXCLUDE"
    "EXCLUDING"
    "EXPIRE"
    "FINAL"
    "FIRST"
    "FOLLOWING"
    "FORMAT"
    "FORTRAN"
    "FOUND"
    "FRAC_SECOND"
    "G"
    "GENERAL"
    "GENERATED"
    "GEOMETRY"
    "GLOBAL"
    "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_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"
    "PARTITIONS"
    "PASCAL"
    "PASSING"
    "PASSTHROUGH"
    "PASSWORD"
    "PAST"
    "PATH"
    "PIVOT"
    "PLACING"
    "PLAN"
    "PLI"
    "PRECEDING"
    "PRESERVE"
    "PRIOR"
    "PRIVILEGES"
    "PUBLIC"
    "QUARTER"
    "QUARTERS"
    "READ"
    "RELATIVE"
    "REMARKS"
    "REPEATABLE"
    "REPLACE"
    "REPLICA"
    "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"
    "STATUS"
    "STATEMENT"
    "STRING_AGG"
    "STRUCTURE"
    "STYLE"
    "SUBCLASS_ORIGIN"
    "SUBSTITUTE"
    "TABLES"
    "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"
    "TRIGGERS"
    "TRIGGER_CATALOG"
    "TRIGGER_NAME"
    "TRIGGER_SCHEMA"
    "TUMBLE"
    "TYPE"
    "UNBOUNDED"
    "UNCOMMITTED"
    "UNCONDITIONAL"
    "UNDER"
    "UNPIVOT"
    "UNNAMED"
    "USAGE"
    "USER"
    "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"
  ]
  }
}

freemarkerLinks: {
  includes: includes/
}
