# 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: {
    parser: {
      # Generated parser implementation class package and name
      package: "org.apache.beam.sdk.extensions.sql.impl.parser.impl",
      class: "BeamSqlParserImpl",

      # List of import statements.
      imports: [
        "org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.schema.ColumnStrategy"
        "org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.sql.SqlCreate"
        "org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.sql.SqlDrop"
        "org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.sql.type.SqlTypeName"
        "org.apache.beam.vendor.calcite.v1_40_0.org.apache.calcite.util.NlsString"
        "org.apache.beam.sdk.extensions.sql.impl.parser.SqlCreateCatalog"
        "org.apache.beam.sdk.extensions.sql.impl.parser.SqlCreateDatabase"
        "org.apache.beam.sdk.extensions.sql.impl.parser.SqlCreateExternalTable"
        "org.apache.beam.sdk.extensions.sql.impl.parser.SqlCreateFunction"
        "org.apache.beam.sdk.extensions.sql.impl.parser.SqlDropCatalog"
        "org.apache.beam.sdk.extensions.sql.impl.parser.SqlDropDatabase"
        "org.apache.beam.sdk.extensions.sql.impl.parser.SqlDdlNodes"
        "org.apache.beam.sdk.extensions.sql.impl.parser.SqlUseCatalog"
        "org.apache.beam.sdk.extensions.sql.impl.parser.SqlUseDatabase"
        "org.apache.beam.sdk.extensions.sql.impl.parser.SqlSetOptionBeam"
        "org.apache.beam.sdk.extensions.sql.impl.parser.SqlAlterCatalog"
        "org.apache.beam.sdk.extensions.sql.impl.parser.SqlAlterTable"
        "org.apache.beam.sdk.extensions.sql.impl.utils.CalciteUtils"
        "org.apache.beam.sdk.schemas.Schema"
      ]

      # List of keywords.
      keywords: [
        "AGGREGATE"
        "COMMENT"
        "IF"
        "JAR"
        "LOCATION"
        "TBLPROPERTIES"
        "PROPERTIES"
        "PARTITIONED"
        "CATALOGS"
        "DATABASES"
        "TABLES"
        "COLUMNS"
        "PARTITIONS"
        "USE"
        "UNSET"
      ]

      # List of keywords from "keywords" section that are not reserved.
      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"
        "CONTAINS_SUBSTR"
        "CONTINUE"
        "CURSOR_NAME"
        "DATA"
        "DATABASE"
        "DATE_DIFF"
        "DATE_TRUNC"
        "DATETIME_DIFF"
        "DATETIME_INTERVAL_CODE"
        "DATETIME_INTERVAL_PRECISION"
        "DATETIME_TRUNC"
        "DAYOFWEEK"
        "DAYOFYEAR"
        "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"

        # added in Beam
        "AGGREGATE"
        "COMMENT"
        "IF"
        "JAR"
        "LOCATION"
        "TBLPROPERTIES"
        "PROPERTIES"
        "PARTITIONED"
        "USE"
      ]

      # 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.
      # Example: LeftSemiJoin()
      joinTypes: [
      ]

      # List of methods for parsing custom SQL statements.
      # Return type of method implementation should be 'SqlNode'.
      # Example: SqlShowDatabases(), SqlShowTables().
      statementParserMethods: [
        "SqlShowTables(Span.of())"
        "SqlShowDatabases(Span.of())"
        "SqlShowCatalogs(Span.of())"
        "SqlShowCurrent(Span.of())"
        "SqlUseCatalog(Span.of(), null)"
        "SqlUseDatabase(Span.of(), null)"
        "SqlSetOptionBeam(Span.of(), null)"
        "SqlAlterCatalog(Span.of(), null)"
        "SqlAlterTable(Span.of(), null)"
      ]

      # List of methods for parsing custom literals.
      # Return type of method implementation should be "SqlNode".
      # Example: ParseJsonLiteral().
      literalParserMethods: [
      ]

      # List of methods for parsing custom data types.
      # Return type of method implementation should be "SqlTypeNameSpec".
      # Example: SqlParseTimeStampZ().
      dataTypeParserMethods: [
      ]

      # 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 "ALTER <scope>" calls.
      # Each must accept arguments "(SqlParserPos pos, String scope)".
      # Example: "SqlUploadJarNode"
      alterStatementParserMethods: [
        "SqlSetOptionBeam"
      ]

      # List of methods for parsing extensions to "CREATE [OR REPLACE]" calls.
      # Each must accept arguments "(SqlParserPos pos, boolean replace)".
      createStatementParserMethods: [
        "SqlCreateCatalog"
        "SqlCreateDatabase"
        "SqlCreateExternalTable"
        "SqlCreateFunction"
        "SqlCreateTableNotSupportedMessage"
      ]

      # List of methods for parsing extensions to "DROP" calls.
      # Each must accept arguments "(SqlParserPos pos)".
      dropStatementParserMethods: [
        "SqlDropTable"
        "SqlDropDatabase"
        "SqlDropCatalog"
      ]

      # List of methods for parsing extensions to "TRUNCATE" calls.
      # Each must accept arguments "(SqlParserPos pos)".
      # Example: "SqlTruncate".
      truncateStatementParserMethods: [
      ]

      # Binary operators tokens
      binaryOperatorsTokens: [
      ]

      # 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"
      ]

      setOptionParserMethod: "SqlSetOption"
      includePosixOperators: false
      includeCompoundIdentifier: true
      includeBraces: true
      includeAdditionalDeclarations: false
      includeParsingStringLiteralAsArrayLiteral: false
    }
}

freemarkerLinks: {
    includes: includes/
}
