github.com/apache/beam/sdks/v2@v2.48.2/java/extensions/sql/src/main/codegen/config.fmpp (about)

     1  # Licensed to the Apache Software Foundation (ASF) under one or more
     2  # contributor license agreements.  See the NOTICE file distributed with
     3  # this work for additional information regarding copyright ownership.
     4  # The ASF licenses this file to you under the Apache License, Version 2.0
     5  # (the "License"); you may not use this file except in compliance with
     6  # the License.  You may obtain a copy of the License at
     7  #
     8  # http://www.apache.org/licenses/LICENSE-2.0
     9  #
    10  # Unless required by applicable law or agreed to in writing, software
    11  # distributed under the License is distributed on an "AS IS" BASIS,
    12  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  # See the License for the specific language governing permissions and
    14  # limitations under the License.
    15  
    16  data: {
    17      parser: {
    18        # Generated parser implementation class package and name
    19        package: "org.apache.beam.sdk.extensions.sql.impl.parser.impl",
    20        class: "BeamSqlParserImpl",
    21  
    22        # List of import statements.
    23        imports: [
    24          "org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.schema.ColumnStrategy"
    25          "org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.sql.SqlCreate"
    26          "org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.sql.SqlDrop"
    27          "org.apache.beam.vendor.calcite.v1_28_0.org.apache.calcite.sql.type.SqlTypeName"
    28          "org.apache.beam.sdk.extensions.sql.impl.parser.SqlCreateExternalTable"
    29          "org.apache.beam.sdk.extensions.sql.impl.parser.SqlCreateFunction"
    30          "org.apache.beam.sdk.extensions.sql.impl.parser.SqlDdlNodes"
    31          "org.apache.beam.sdk.extensions.sql.impl.parser.SqlSetOptionBeam"
    32          "org.apache.beam.sdk.extensions.sql.impl.utils.CalciteUtils"
    33          "org.apache.beam.sdk.schemas.Schema"
    34        ]
    35  
    36        # List of keywords.
    37        keywords: [
    38          "AGGREGATE"
    39          "COMMENT"
    40          "IF"
    41          "JAR"
    42          "LOCATION"
    43          "TBLPROPERTIES"
    44        ]
    45  
    46        # List of keywords from "keywords" section that are not reserved.
    47        nonReservedKeywords: [
    48          "A"
    49          "ABSENT"
    50          "ABSOLUTE"
    51          "ACTION"
    52          "ADA"
    53          "ADD"
    54          "ADMIN"
    55          "AFTER"
    56          "ALWAYS"
    57          "APPLY"
    58          "ASC"
    59          "ASSERTION"
    60          "ASSIGNMENT"
    61          "ATTRIBUTE"
    62          "ATTRIBUTES"
    63          "BEFORE"
    64          "BERNOULLI"
    65          "BREADTH"
    66          "C"
    67          "CASCADE"
    68          "CATALOG"
    69          "CATALOG_NAME"
    70          "CENTURY"
    71          "CHAIN"
    72          "CHARACTERISTICS"
    73          "CHARACTERS"
    74          "CHARACTER_SET_CATALOG"
    75          "CHARACTER_SET_NAME"
    76          "CHARACTER_SET_SCHEMA"
    77          "CLASS_ORIGIN"
    78          "COBOL"
    79          "COLLATION"
    80          "COLLATION_CATALOG"
    81          "COLLATION_NAME"
    82          "COLLATION_SCHEMA"
    83          "COLUMN_NAME"
    84          "COMMAND_FUNCTION"
    85          "COMMAND_FUNCTION_CODE"
    86          "COMMITTED"
    87          "CONDITIONAL"
    88          "CONDITION_NUMBER"
    89          "CONNECTION"
    90          "CONNECTION_NAME"
    91          "CONSTRAINT_CATALOG"
    92          "CONSTRAINT_NAME"
    93          "CONSTRAINTS"
    94          "CONSTRAINT_SCHEMA"
    95          "CONSTRUCTOR"
    96          "CONTINUE"
    97          "CURSOR_NAME"
    98          "DATA"
    99          "DATABASE"
   100          "DATETIME_INTERVAL_CODE"
   101          "DATETIME_INTERVAL_PRECISION"
   102          "DAYS"
   103          "DECADE"
   104          "DEFAULTS"
   105          "DEFERRABLE"
   106          "DEFERRED"
   107          "DEFINED"
   108          "DEFINER"
   109          "DEGREE"
   110          "DEPTH"
   111          "DERIVED"
   112          "DESC"
   113          "DESCRIPTION"
   114          "DESCRIPTOR"
   115          "DIAGNOSTICS"
   116          "DISPATCH"
   117          "DOMAIN"
   118          "DOW"
   119          "DOY"
   120          "DYNAMIC_FUNCTION"
   121          "DYNAMIC_FUNCTION_CODE"
   122          "ENCODING"
   123          "EPOCH"
   124          "ERROR"
   125          "EXCEPTION"
   126          "EXCLUDE"
   127          "EXCLUDING"
   128          "FINAL"
   129          "FIRST"
   130          "FOLLOWING"
   131          "FORMAT"
   132          "FORTRAN"
   133          "FOUND"
   134          "FRAC_SECOND"
   135          "G"
   136          "GENERAL"
   137          "GENERATED"
   138          "GEOMETRY"
   139          "GO"
   140          "GOTO"
   141          "GRANTED"
   142          "HIERARCHY"
   143          "HOP"
   144          "HOURS"
   145          "IGNORE"
   146          "IMMEDIATE"
   147          "IMMEDIATELY"
   148          "IMPLEMENTATION"
   149          "INCLUDING"
   150          "INCREMENT"
   151          "INITIALLY"
   152          "INPUT"
   153          "INSTANCE"
   154          "INSTANTIABLE"
   155          "INVOKER"
   156          "ISODOW"
   157          "ISOLATION"
   158          "ISOYEAR"
   159          "JAVA"
   160          "JSON"
   161          "K"
   162          "KEY"
   163          "KEY_MEMBER"
   164          "KEY_TYPE"
   165          "LABEL"
   166          "LAST"
   167          "LENGTH"
   168          "LEVEL"
   169          "LIBRARY"
   170          "LOCATOR"
   171          "M"
   172          "MAP"
   173          "MATCHED"
   174          "MAXVALUE"
   175          "MESSAGE_LENGTH"
   176          "MESSAGE_OCTET_LENGTH"
   177          "MESSAGE_TEXT"
   178          "MICROSECOND"
   179          "MILLENNIUM"
   180          "MILLISECOND"
   181          "MINUTES"
   182          "MINVALUE"
   183          "MONTHS"
   184          "MORE_"
   185          "MUMPS"
   186          "NAME"
   187          "NAMES"
   188          "NANOSECOND"
   189          "NESTING"
   190          "NORMALIZED"
   191          "NULLABLE"
   192          "NULLS"
   193          "NUMBER"
   194          "OBJECT"
   195          "OCTETS"
   196          "OPTION"
   197          "OPTIONS"
   198          "ORDERING"
   199          "ORDINALITY"
   200          "OTHERS"
   201          "OUTPUT"
   202          "OVERRIDING"
   203          "PAD"
   204          "PARAMETER_MODE"
   205          "PARAMETER_NAME"
   206          "PARAMETER_ORDINAL_POSITION"
   207          "PARAMETER_SPECIFIC_CATALOG"
   208          "PARAMETER_SPECIFIC_NAME"
   209          "PARAMETER_SPECIFIC_SCHEMA"
   210          "PARTIAL"
   211          "PASCAL"
   212          "PASSING"
   213          "PASSTHROUGH"
   214          "PAST"
   215          "PATH"
   216          "PLACING"
   217          "PLAN"
   218          "PLI"
   219          "PRECEDING"
   220          "PRESERVE"
   221          "PRIOR"
   222          "PRIVILEGES"
   223          "PUBLIC"
   224          "QUARTER"
   225          "READ"
   226          "RELATIVE"
   227          "REPEATABLE"
   228          "REPLACE"
   229          "RESPECT"
   230          "RESTART"
   231          "RESTRICT"
   232          "RETURNED_CARDINALITY"
   233          "RETURNED_LENGTH"
   234          "RETURNED_OCTET_LENGTH"
   235          "RETURNED_SQLSTATE"
   236          "RETURNING"
   237          "ROLE"
   238          "ROUTINE"
   239          "ROUTINE_CATALOG"
   240          "ROUTINE_NAME"
   241          "ROUTINE_SCHEMA"
   242          "ROW_COUNT"
   243          "SCALAR"
   244          "SCALE"
   245          "SCHEMA"
   246          "SCHEMA_NAME"
   247          "SCOPE_CATALOGS"
   248          "SCOPE_NAME"
   249          "SCOPE_SCHEMA"
   250          "SECONDS"
   251          "SECTION"
   252          "SECURITY"
   253          "SELF"
   254          "SEQUENCE"
   255          "SERIALIZABLE"
   256          "SERVER"
   257          "SERVER_NAME"
   258          "SESSION"
   259          "SETS"
   260          "SIMPLE"
   261          "SIZE"
   262          "SOURCE"
   263          "SPACE"
   264          "SPECIFIC_NAME"
   265          "SQL_BIGINT"
   266          "SQL_BINARY"
   267          "SQL_BIT"
   268          "SQL_BLOB"
   269          "SQL_BOOLEAN"
   270          "SQL_CHAR"
   271          "SQL_CLOB"
   272          "SQL_DATE"
   273          "SQL_DECIMAL"
   274          "SQL_DOUBLE"
   275          "SQL_FLOAT"
   276          "SQL_INTEGER"
   277          "SQL_INTERVAL_DAY"
   278          "SQL_INTERVAL_DAY_TO_HOUR"
   279          "SQL_INTERVAL_DAY_TO_MINUTE"
   280          "SQL_INTERVAL_DAY_TO_SECOND"
   281          "SQL_INTERVAL_HOUR"
   282          "SQL_INTERVAL_HOUR_TO_MINUTE"
   283          "SQL_INTERVAL_HOUR_TO_SECOND"
   284          "SQL_INTERVAL_MINUTE"
   285          "SQL_INTERVAL_MINUTE_TO_SECOND"
   286          "SQL_INTERVAL_MONTH"
   287          "SQL_INTERVAL_SECOND"
   288          "SQL_INTERVAL_YEAR"
   289          "SQL_INTERVAL_YEAR_TO_MONTH"
   290          "SQL_LONGVARBINARY"
   291          "SQL_LONGVARCHAR"
   292          "SQL_LONGVARNCHAR"
   293          "SQL_NCHAR"
   294          "SQL_NCLOB"
   295          "SQL_NUMERIC"
   296          "SQL_NVARCHAR"
   297          "SQL_REAL"
   298          "SQL_SMALLINT"
   299          "SQL_TIME"
   300          "SQL_TIMESTAMP"
   301          "SQL_TINYINT"
   302          "SQL_TSI_DAY"
   303          "SQL_TSI_FRAC_SECOND"
   304          "SQL_TSI_HOUR"
   305          "SQL_TSI_MICROSECOND"
   306          "SQL_TSI_MINUTE"
   307          "SQL_TSI_MONTH"
   308          "SQL_TSI_QUARTER"
   309          "SQL_TSI_SECOND"
   310          "SQL_TSI_WEEK"
   311          "SQL_TSI_YEAR"
   312          "SQL_VARBINARY"
   313          "SQL_VARCHAR"
   314          "STATE"
   315          "STATEMENT"
   316          "STRUCTURE"
   317          "STYLE"
   318          "SUBCLASS_ORIGIN"
   319          "SUBSTITUTE"
   320          "TABLE_NAME"
   321          "TEMPORARY"
   322          "TIES"
   323          "TIMESTAMPADD"
   324          "TIMESTAMPDIFF"
   325          "TOP_LEVEL_COUNT"
   326          "TRANSACTION"
   327          "TRANSACTIONS_ACTIVE"
   328          "TRANSACTIONS_COMMITTED"
   329          "TRANSACTIONS_ROLLED_BACK"
   330          "TRANSFORM"
   331          "TRANSFORMS"
   332          "TRIGGER_CATALOG"
   333          "TRIGGER_NAME"
   334          "TRIGGER_SCHEMA"
   335          "TUMBLE"
   336          "TYPE"
   337          "UNBOUNDED"
   338          "UNCOMMITTED"
   339          "UNCONDITIONAL"
   340          "UNDER"
   341          "UNNAMED"
   342          "USAGE"
   343          "USER_DEFINED_TYPE_CATALOG"
   344          "USER_DEFINED_TYPE_CODE"
   345          "USER_DEFINED_TYPE_NAME"
   346          "USER_DEFINED_TYPE_SCHEMA"
   347          "UTF16"
   348          "UTF32"
   349          "UTF8"
   350          "VERSION"
   351          "VIEW"
   352          "WEEK"
   353          "WORK"
   354          "WRAPPER"
   355          "WRITE"
   356          "XML"
   357          "YEARS"
   358          "ZONE"
   359  
   360          # added in Beam
   361          "AGGREGATE"
   362          "COMMENT"
   363          "IF"
   364          "JAR"
   365          "LOCATION"
   366          "TBLPROPERTIES"
   367        ]
   368  
   369        # List of non-reserved keywords to add;
   370        # items in this list become non-reserved
   371        nonReservedKeywordsToAdd: [
   372        ]
   373  
   374        # List of non-reserved keywords to remove;
   375        # items in this list become reserved
   376        nonReservedKeywordsToRemove: [
   377        ]
   378  
   379        # List of additional join types. Each is a method with no arguments.
   380        # Example: LeftSemiJoin()
   381        joinTypes: [
   382        ]
   383  
   384        # List of methods for parsing custom SQL statements.
   385        # Return type of method implementation should be 'SqlNode'.
   386        # Example: SqlShowDatabases(), SqlShowTables().
   387        statementParserMethods: [
   388          "SqlSetOptionBeam(Span.of(), null)"
   389        ]
   390  
   391        # List of methods for parsing custom literals.
   392        # Return type of method implementation should be "SqlNode".
   393        # Example: ParseJsonLiteral().
   394        literalParserMethods: [
   395        ]
   396  
   397        # List of methods for parsing custom data types.
   398        # Return type of method implementation should be "SqlTypeNameSpec".
   399        # Example: SqlParseTimeStampZ().
   400        dataTypeParserMethods: [
   401        ]
   402  
   403        # List of methods for parsing builtin function calls.
   404        # Return type of method implementation should be "SqlNode".
   405        # Example: DateFunctionCall().
   406        builtinFunctionCallMethods: [
   407        ]
   408  
   409        # List of methods for parsing extensions to "ALTER <scope>" calls.
   410        # Each must accept arguments "(SqlParserPos pos, String scope)".
   411        # Example: "SqlUploadJarNode"
   412        alterStatementParserMethods: [
   413          "SqlSetOptionBeam"
   414        ]
   415  
   416        # List of methods for parsing extensions to "CREATE [OR REPLACE]" calls.
   417        # Each must accept arguments "(SqlParserPos pos, boolean replace)".
   418        createStatementParserMethods: [
   419          "SqlCreateExternalTable"
   420          "SqlCreateFunction"
   421          "SqlCreateTableNotSupportedMessage"
   422        ]
   423  
   424        # List of methods for parsing extensions to "DROP" calls.
   425        # Each must accept arguments "(SqlParserPos pos)".
   426        dropStatementParserMethods: [
   427          "SqlDropTable"
   428        ]
   429  
   430        # Binary operators tokens
   431        binaryOperatorsTokens: [
   432        ]
   433  
   434        # Binary operators initialization
   435        extraBinaryExpressions: [
   436        ]
   437  
   438        # List of files in @includes directory that have parser method
   439        # implementations for parsing custom SQL statements, literals or types
   440        # given as part of "statementParserMethods", "literalParserMethods" or
   441        # "dataTypeParserMethods".
   442        implementationFiles: [
   443          "parserImpls.ftl"
   444        ]
   445  
   446        includePosixOperators: false
   447        includeCompoundIdentifier: true
   448        includeBraces: true
   449        includeAdditionalDeclarations: false
   450  
   451      }
   452  }
   453  
   454  freemarkerLinks: {
   455      includes: includes/
   456  }