{
"name": "db3_sql",
"word": "_unquoted_identifier",
"rules": {
"source_file": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
"keyword_if_not_exists": {
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[iI][fF]"
},
{
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
{
"type": "PATTERN",
"value": "[eE][xX][iI][sS][tT][sS]"
}
]
},
"named": false,
"value": "IF_NOT_EXISTS"
},
"keyword_if_exists": {
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[iI][fF]"
},
{
"type": "PATTERN",
"value": "[eE][xX][iI][sS][tT][sS]"
}
]
},
"named": false,
"value": "IF_EXISTS"
},
"keyword_temporary": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][eE][mM][pP]"
},
"named": false,
"value": "TEMP"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][eE][mM][pP][oO][rR][aA][rR][yY]"
},
"named": false,
"value": "TEMPORARY"
}
]
},
"keyword_replace": {
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[oO][rR]"
},
{
"type": "PATTERN",
"value": "[rR][eE][pP][lL][aA][cC][eE]"
}
]
},
"named": false,
"value": "OR_REPLACE"
},
"_keyword_alter": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][lL][tT][eE][rR]"
},
"named": false,
"value": "ALTER"
},
"_keyword_format": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][oO][rR][mM][aA][tT]"
},
"named": false,
"value": "FORMAT"
},
"_keyword_delete": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][eE][lL][eE][tT][eE]"
},
"named": false,
"value": "DELETE"
},
"_keyword_tablesuffix": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[__][tT][aA][bB][lL][eE][__][sS][uU][fF][fF][iI][xX]"
},
"named": false,
"value": "_TABLE_SUFFIX"
},
"_keyword_begin": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[bB][eE][gG][iI][nN]"
},
"named": false,
"value": "BEGIN"
},
"_keyword_end": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[eE][nN][dD]"
},
"named": false,
"value": "END"
},
"_keyword_struct": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][tT][rR][uU][cC][tT]"
},
"named": false,
"value": "STRUCT"
},
"_keyword_array": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][rR][rR][aA][yY]"
},
"named": false,
"value": "ARRAY"
},
"_keyword_returns": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][eE][tT][uU][rR][nN][sS]"
},
"named": false,
"value": "RETURNS"
},
"_keyword_between": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[bB][eE][tT][wW][eE][eE][nN]"
},
"named": false,
"value": "BETWEEN"
},
"_keyword_case": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][aA][sS][eE]"
},
"named": false,
"value": "CASE"
},
"_keyword_when": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][hH][eE][nN]"
},
"named": false,
"value": "WHEN"
},
"_keyword_then": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][hH][eE][nN]"
},
"named": false,
"value": "THEN"
},
"_keyword_else": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[eE][lL][sS][eE]"
},
"named": false,
"value": "ELSE"
},
"_keyword_is": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][sS]"
},
"named": false,
"value": "IS"
},
"_keyword_in": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN]"
},
"named": false,
"value": "IN"
},
"_keyword_not": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
"named": false,
"value": "NOT"
},
"_keyword_and": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][nN][dD]"
},
"named": false,
"value": "AND"
},
"_keyword_or": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][rR]"
},
"named": false,
"value": "OR"
},
"_keyword_like": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[lL][iI][kK][eE]"
},
"named": false,
"value": "LIKE"
},
"_keyword_repeat": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][eE][pP][eE][aA][tT]"
},
"named": false,
"value": "REPEAT"
},
"_keyword_as": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][sS]"
},
"named": false,
"value": "AS"
},
"_keyword_cast": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][aA][sS][tT]"
},
"named": false,
"value": "CAST"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][aA][fF][eE][__][cC][aA][sS][tT]"
},
"named": false,
"value": "SAFE_CAST"
}
]
},
"_keyword_window": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][iI][nN][dD][oO][wW]"
},
"named": false,
"value": "WINDOW"
},
"_keyword_partition_by": {
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[pP][aA][rR][tT][iI][tT][iI][oO][nN]"
},
{
"type": "PATTERN",
"value": "[bB][yY]"
}
]
},
"named": false,
"value": "PARTITION_BY"
},
"_statement": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "create_schema_statement"
},
{
"type": "SYMBOL",
"name": "alter_schema_statement"
},
{
"type": "SYMBOL",
"name": "drop_schema_statement"
},
{
"type": "SYMBOL",
"name": "create_table_statement"
},
{
"type": "SYMBOL",
"name": "alter_table_statement"
},
{
"type": "SYMBOL",
"name": "alter_table_column_statement"
},
{
"type": "SYMBOL",
"name": "alter_table_rename_statement"
},
{
"type": "SYMBOL",
"name": "alter_column_set_options_statement"
},
{
"type": "SYMBOL",
"name": "alter_column_drop_not_nulls_statement"
},
{
"type": "SYMBOL",
"name": "alter_column_set_data_type_statement"
},
{
"type": "SYMBOL",
"name": "drop_table_statement"
},
{
"type": "SYMBOL",
"name": "create_function_statement"
},
{
"type": "SYMBOL",
"name": "drop_function_statement"
},
{
"type": "SYMBOL",
"name": "create_table_function_statement"
},
{
"type": "SYMBOL",
"name": "drop_table_function_statement"
},
{
"type": "SYMBOL",
"name": "create_procedure_statement"
},
{
"type": "SYMBOL",
"name": "drop_procedure_statement"
},
{
"type": "SYMBOL",
"name": "query_statement"
},
{
"type": "SYMBOL",
"name": "insert_statement"
},
{
"type": "SYMBOL",
"name": "delete_statement"
},
{
"type": "SYMBOL",
"name": "truncate_statement"
},
{
"type": "SYMBOL",
"name": "update_statement"
},
{
"type": "SYMBOL",
"name": "merge_statement"
},
{
"type": "SYMBOL",
"name": "declare_statement"
},
{
"type": "SYMBOL",
"name": "set_statement"
},
{
"type": "SYMBOL",
"name": "execute_immadiate_statement"
},
{
"type": "SYMBOL",
"name": "begin_end_statement"
},
{
"type": "SYMBOL",
"name": "begin_exception_end_statement"
},
{
"type": "SYMBOL",
"name": "if_statement"
},
{
"type": "SYMBOL",
"name": "loop_statement"
},
{
"type": "SYMBOL",
"name": "repeat_statement"
},
{
"type": "SYMBOL",
"name": "while_statement"
},
{
"type": "SYMBOL",
"name": "for_in_statement"
},
{
"type": "SYMBOL",
"name": "break_statement"
},
{
"type": "SYMBOL",
"name": "continue_statement"
},
{
"type": "SYMBOL",
"name": "iterate_statement"
},
{
"type": "SYMBOL",
"name": "leave_statement"
},
{
"type": "SYMBOL",
"name": "call_statement"
},
{
"type": "SYMBOL",
"name": "return_satement"
},
{
"type": "SYMBOL",
"name": "raise_statement"
},
{
"type": "SYMBOL",
"name": "assert_statement"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
"_statement_list": {
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
"declare_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][eE][cC][lL][aA][rR][eE]"
},
"named": false,
"value": "DECLARE"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
{
"type": "FIELD",
"name": "variable_type",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_unquoted_identifier"
},
"named": true,
"value": "variable_type"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][eE][fF][aA][uU][lL][tT]"
},
"named": false,
"value": "DEFAULT"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"named": true,
"value": "default_clause"
},
{
"type": "BLANK"
}
]
}
]
},
"set_statement": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][tT]"
},
"named": false,
"value": "SET"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[==]"
},
"named": false,
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][tT]"
},
"named": false,
"value": "SET"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[==]"
},
"named": false,
"value": "="
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"execute_immadiate_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE][xX][eE][cC][uU][tT][eE]"
},
{
"type": "PATTERN",
"value": "[iI][mM][mM][eE][dD][iI][aA][tT][eE]"
}
]
},
"named": false,
"value": "EXECUTE_IMMEDIATE"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "into_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "using_clause"
},
{
"type": "BLANK"
}
]
}
]
},
"into_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][tT][oO]"
},
"named": false,
"value": "INTO"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
}
]
},
"using_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][sS][iI][nN][gG]"
},
"named": false,
"value": "USING"
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_aliasable_expression"
},
"named": true,
"value": "using_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_aliasable_expression"
},
"named": true,
"value": "using_expression"
}
]
}
}
]
}
]
},
"return_satement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][eE][tT][uU][rR][nN]"
},
"named": false,
"value": "RETURN"
}
]
},
"call_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][aA][lL][lL]"
},
"named": false,
"value": "CALL"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"begin_end_statement": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[bB][eE][gG][iI][nN]"
},
"named": false,
"value": "BEGIN"
}
]
},
{
"type": "SYMBOL",
"name": "_statement_list"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[eE][nN][dD]"
},
"named": false,
"value": "END"
}
]
},
"begin_exception_end_statement": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[bB][eE][gG][iI][nN]"
},
"named": false,
"value": "BEGIN"
}
]
},
{
"type": "SYMBOL",
"name": "_statement_list"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE][xX][cC][eE][pP][tT][iI][oO][nN]"
},
{
"type": "PATTERN",
"value": "[wW][hH][eE][nN]"
},
{
"type": "PATTERN",
"value": "[eE][rR][rR][oO][rR]"
},
{
"type": "PATTERN",
"value": "[tT][hH][eE][nN]"
}
]
},
"named": false,
"value": "EXCEPTION_WHEN_ERROR_THEN"
},
{
"type": "SYMBOL",
"name": "_statement_list"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[eE][nN][dD]"
},
"named": false,
"value": "END"
}
]
},
"if_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][fF]"
},
"named": false,
"value": "IF"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][hH][eE][nN]"
},
"named": false,
"value": "THEN"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[eE][lL][sS][eE][iI][fF]"
},
"named": false,
"value": "ELSEIF"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][hH][eE][nN]"
},
"named": false,
"value": "THEN"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_statement_list"
},
{
"type": "BLANK"
}
]
}
]
},
"named": true,
"value": "elseif_statement"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[eE][lL][sS][eE]"
},
"named": false,
"value": "ELSE"
},
{
"type": "SYMBOL",
"name": "_statement_list"
}
]
},
"named": true,
"value": "else_statement"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE][nN][dD]"
},
{
"type": "PATTERN",
"value": "[iI][fF]"
}
]
},
"named": false,
"value": "END_IF"
}
]
},
"loop_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[lL][oO][oO][pP]"
},
"named": false,
"value": "LOOP"
},
{
"type": "SYMBOL",
"name": "_statement_list"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE][nN][dD]"
},
{
"type": "PATTERN",
"value": "[lL][oO][oO][pP]"
}
]
},
"named": false,
"value": "END_LOOP"
}
]
},
"repeat_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_repeat"
},
{
"type": "SYMBOL",
"name": "_statement_list"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][nN][tT][iI][lL]"
},
"named": false,
"value": "UNTIL"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"named": true,
"value": "until_clause"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE][nN][dD]"
},
{
"type": "PATTERN",
"value": "[rR][eE][pP][eE][aA][tT]"
}
]
},
"named": false,
"value": "END_REPEAT"
}
]
},
"while_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][hH][iI][lL][eE]"
},
"named": false,
"value": "WHILE"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][oO]"
},
"named": false,
"value": "DO"
},
{
"type": "SYMBOL",
"name": "_statement_list"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE][nN][dD]"
},
{
"type": "PATTERN",
"value": "[wW][hH][iI][lL][eE]"
}
]
},
"named": false,
"value": "END_WHILE"
}
]
},
"for_in_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][oO][rR]"
},
"named": false,
"value": "FOR"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "_keyword_in"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "query_statement"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][oO]"
},
"named": false,
"value": "DO"
},
{
"type": "SYMBOL",
"name": "_statement_list"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE][nN][dD]"
},
{
"type": "PATTERN",
"value": "[fF][oO][rR]"
}
]
},
"named": false,
"value": "END_FOR"
}
]
},
"break_statement": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[bB][rR][eE][aA][kK]"
},
"named": false,
"value": "BREAK"
},
"leave_statement": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[lL][eE][aA][vV][eE]"
},
"named": false,
"value": "LEAVE"
},
"continue_statement": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][oO][nN][tT][iI][nN][uU][eE]"
},
"named": false,
"value": "CONTINUE"
},
"iterate_statement": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][tT][eE][rR][aA][tT][eE]"
},
"named": false,
"value": "ITERATE"
},
"raise_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][aA][iI][sS][eE]"
},
"named": false,
"value": "RAISE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[uU][sS][iI][nN][gG]"
},
{
"type": "PATTERN",
"value": "[mM][eE][sS][sS][aA][gG][eE]"
}
]
},
"named": false,
"value": "USING_MESSAGE"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"assert_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][sS][sS][eE][rR][tT]"
},
"named": false,
"value": "ASSERT"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"create_schema_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
{
"type": "PATTERN",
"value": "[sS][cC][hH][eE][mM][aA]"
}
]
},
"named": false,
"value": "CREATE_SCHEMA"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_not_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "schema_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "option_list"
},
{
"type": "BLANK"
}
]
}
]
},
"alter_schema_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[aA][lL][tT][eE][rR]"
},
{
"type": "PATTERN",
"value": "[sS][cC][hH][eE][mM][aA]"
}
]
},
"named": false,
"value": "ALTER_SCHEMA"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "schema_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][tT]"
},
"named": false,
"value": "SET"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "option_list"
},
{
"type": "BLANK"
}
]
}
]
},
"drop_schema_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[dD][rR][oO][pP]"
},
{
"type": "PATTERN",
"value": "[sS][cC][hH][eE][mM][aA]"
}
]
},
"named": false,
"value": "DROP_SCHEMA"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "schema_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "drop_schema_option"
},
{
"type": "BLANK"
}
]
}
]
},
"drop_schema_option": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][aA][sS][cC][aA][dD][eE]"
},
"named": false,
"value": "CASCADE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][eE][sS][tT][rR][iI][cC][tT]"
},
"named": false,
"value": "RESTRICT"
}
]
},
"create_table_statement": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
"named": false,
"value": "CREATE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_replace"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_temporary"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
"named": false,
"value": "TABLE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[vV][iI][eE][wW]"
},
"named": false,
"value": "VIEW"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[mM][aA][tT][eE][rR][iI][aA][lL][iI][zZ][eE][dD]"
},
{
"type": "PATTERN",
"value": "[vV][iI][eE][wW]"
}
]
},
"named": false,
"value": "MATERIALIZED_VIEW"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_not_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "create_table_parameters"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "table_partition_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "table_cluster_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "option_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "SYMBOL",
"name": "query_statement"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"alter_table_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_alter"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
"named": false,
"value": "TABLE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[vV][iI][eE][wW]"
},
"named": false,
"value": "VIEW"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[mM][aA][tT][eE][rR][iI][aA][lL][iI][zZ][eE][dD]"
},
{
"type": "PATTERN",
"value": "[vV][iI][eE][wW]"
}
]
},
"named": false,
"value": "MATERIALIZED_VIEW"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][tT]"
},
"named": false,
"value": "SET"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "option_list"
},
{
"type": "BLANK"
}
]
}
]
},
"alter_table_column_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_alter"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
"named": false,
"value": "TABLE"
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[aA][dD][dD]"
},
{
"type": "PATTERN",
"value": "[cC][oO][lL][uU][mM][nN]"
}
]
},
"named": false,
"value": "ADD_COLUMN"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_not_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "column_definition"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[aA][dD][dD]"
},
{
"type": "PATTERN",
"value": "[cC][oO][lL][uU][mM][nN]"
}
]
},
"named": false,
"value": "ADD_COLUMN"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_not_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "column_definition"
}
]
}
]
}
}
]
}
]
},
"alter_table_rename_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_alter"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
"named": false,
"value": "TABLE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[rR][eE][nN][aA][mM][eE]"
},
{
"type": "PATTERN",
"value": "[tT][oO]"
}
]
},
"named": false,
"value": "RENAME_TO"
},
{
"type": "FIELD",
"name": "new_table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"alter_column_set_options_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_alter"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
"named": false,
"value": "TABLE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[aA][lL][tT][eE][rR]"
},
{
"type": "PATTERN",
"value": "[cC][oO][lL][uU][mM][nN]"
}
]
},
"named": false,
"value": "ALTER_COLUMN"
},
{
"type": "FIELD",
"name": "column_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][tT]"
},
"named": false,
"value": "SET"
},
{
"type": "SYMBOL",
"name": "option_list"
}
]
},
"alter_column_drop_not_nulls_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_alter"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
"named": false,
"value": "TABLE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[aA][lL][tT][eE][rR]"
},
{
"type": "PATTERN",
"value": "[cC][oO][lL][uU][mM][nN]"
}
]
},
"named": false,
"value": "ALTER_COLUMN"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "column_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[dD][rR][oO][pP]"
},
{
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
{
"type": "PATTERN",
"value": "[nN][uU][lL][lL]"
}
]
},
"named": false,
"value": "DROP_NOT_NULL"
}
]
},
"alter_column_set_data_type_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_alter"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
"named": false,
"value": "TABLE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[aA][lL][tT][eE][rR]"
},
{
"type": "PATTERN",
"value": "[cC][oO][lL][uU][mM][nN]"
}
]
},
"named": false,
"value": "ALTER_COLUMN"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "column_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[sS][eE][tT]"
},
{
"type": "PATTERN",
"value": "[dD][aA][tT][aA]"
},
{
"type": "PATTERN",
"value": "[tT][yY][pP][eE]"
}
]
},
"named": false,
"value": "SET_DATA_TYPE"
},
{
"type": "FIELD",
"name": "column_schema",
"content": {
"type": "SYMBOL",
"name": "column_type"
}
}
]
},
"drop_table_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][rR][oO][pP]"
},
"named": false,
"value": "DROP"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
"named": false,
"value": "TABLE"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[sS][nN][aA][pP][sS][hH][oO][tT]"
},
{
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
}
]
},
"named": false,
"value": "SNAPSHOT_TABLE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[vV][iI][eE][wW]"
},
"named": false,
"value": "VIEW"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[mM][aA][tT][eE][rR][iI][aA][lL][iI][zZ][eE][dD]"
},
{
"type": "PATTERN",
"value": "[vV][iI][eE][wW]"
}
]
},
"named": false,
"value": "MATERIALIZED_VIEW"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"create_table_parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "column_definition"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "column_definition"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"option_list": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][pP][tT][iI][oO][nN][sS]"
},
"named": false,
"value": "OPTIONS"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "option_item"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "option_item"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"option_item": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "key",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
"column_definition": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "column_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "FIELD",
"name": "column_type",
"content": {
"type": "SYMBOL",
"name": "column_type"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "option",
"content": {
"type": "SYMBOL",
"name": "option_list"
}
},
{
"type": "BLANK"
}
]
}
]
},
"column_type": {
"type": "CHOICE",
"members": [
{
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_unquoted_identifier"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "number"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
{
"type": "SYMBOL",
"name": "_column_definition_type_array"
},
{
"type": "SYMBOL",
"name": "_unquoted_identifier"
},
{
"type": "SYMBOL",
"name": "_column_definition_type_struct"
}
]
},
"_column_definition_type_array": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_array"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_unquoted_identifier"
},
{
"type": "SYMBOL",
"name": "_column_definition_type_struct"
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
"_column_definition_type_struct": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_struct"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "column_definition"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "column_definition"
}
]
}
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
"partition_expression": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[__][pP][aA][rR][tT][iI][tT][iI][oO][nN][dD][aA][tT][eE]"
},
"named": false,
"value": "_PARTITIONDATE"
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][aA][tT][eE]"
},
"named": false,
"value": "DATE"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[__][pP][aA][rR][tT][iI][tT][iI][oO][nN][tT][iI][mM][eE]"
},
"named": false,
"value": "_PARTITIONTIME"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][aA][tT][eE][tT][iI][mM][eE][__][tT][rR][uU][nN][cC]"
},
"named": false,
"value": "DATETIME_TRUNC"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][iI][mM][eE][sS][tT][aA][mM][pP][__][tT][rR][uU][nN][cC]"
},
"named": false,
"value": "TIMESTAMP_TRUNC"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][aA][tT][eE][__][tT][rR][uU][nN][cC]"
},
"named": false,
"value": "DATE_TRUNC"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][aA][yY]"
},
"named": false,
"value": "DAY"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[hH][oO][uU][rR]"
},
"named": false,
"value": "HOUR"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[hH][oO][uU][rR]"
},
"named": false,
"value": "HOUR"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[mM][oO][nN][tT][hH]"
},
"named": false,
"value": "MONTH"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[yY][eE][aA][rR]"
},
"named": false,
"value": "YEAR"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][aA][nN][gG][eE][__][bB][uU][cC][kK][eE][tT]"
},
"named": false,
"value": "RANGE_BUCKET"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[gG][eE][nN][eE][rR][aA][tT][eE][__][aA][rR][rR][aA][yY]"
},
"named": false,
"value": "GENERATE_ARRAY"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"table_partition_clause": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_partition_by"
},
{
"type": "SYMBOL",
"name": "partition_expression"
}
]
},
"table_cluster_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[cC][lL][uU][sS][tT][eE][rR]"
},
{
"type": "PATTERN",
"value": "[bB][yY]"
}
]
},
"named": false,
"value": "CLUSTER_BY"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
}
]
},
"create_function_statement": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
"named": false,
"value": "CREATE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_replace"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_temporary"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
},
"named": false,
"value": "FUNCTION"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_not_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "routine_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "SYMBOL",
"name": "create_function_parameters"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "option_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_returns"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
"named": false,
"value": "$.returns"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_returns"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
"named": false,
"value": "$.returns"
},
{
"type": "SYMBOL",
"name": "_function_language"
},
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "SYMBOL",
"name": "string"
}
]
}
]
}
]
}
},
"drop_function_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][rR][oO][pP]"
},
"named": false,
"value": "DROP"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
},
"named": false,
"value": "FUNCTION"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "routine_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"create_table_function_statement": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
"named": false,
"value": "CREATE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_replace"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
{
"type": "PATTERN",
"value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
}
]
},
"named": false,
"value": "TABLE_FUNCTION"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_not_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "routine_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "create_function_parameters"
},
"named": true,
"value": "create_table_function_parameters"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "option_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "create_table_function_returns"
},
{
"type": "BLANK"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "SYMBOL",
"name": "query_statement"
}
]
}
]
}
},
"drop_table_function_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][rR][oO][pP]"
},
"named": false,
"value": "DROP"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
{
"type": "PATTERN",
"value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
}
]
},
"named": false,
"value": "TABLE_FUNCTION"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "routine_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"create_table_function_returns": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_returns"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
"named": false,
"value": "TABLE"
},
{
"type": "STRING",
"value": "<"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "column_definition"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "column_definition"
}
]
}
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
"create_function_parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "create_function_parameter"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "create_function_parameter"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"_function_language": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[lL][aA][nN][gG][uU][aA][gG][eE]"
},
"named": false,
"value": "LANGUAGE"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_unquoted_identifier"
},
"named": true,
"value": "language"
}
]
},
"create_function_parameter": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type"
}
]
}
]
},
"function_body": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$$"
},
{
"type": "SYMBOL",
"name": "query_statement"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "$$"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "SYMBOL",
"name": "query_statement"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "'"
}
]
}
]
}
]
},
"create_procedure_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
"named": false,
"value": "CREATE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_replace"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[pP][rR][oO][cC][eE][dD][uU][rR][eE]"
},
"named": false,
"value": "PROCEDURE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_not_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "routine_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "procedure_argument"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "procedure_argument"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "option_list"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "BEGIN"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
{
"type": "STRING",
"value": "END"
}
]
},
"procedure_argument": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "argument_mode",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN]"
},
"named": false,
"value": "IN"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][uU][tT]"
},
"named": false,
"value": "OUT"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][oO][uU][tT]"
},
"named": false,
"value": "INOUT"
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "_type"
}
]
},
"drop_procedure_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][rR][oO][pP]"
},
"named": false,
"value": "DROP"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[pP][rR][oO][cC][eE][dD][uU][rR][eE]"
},
"named": false,
"value": "PROCEDURE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_if_exists"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "routine_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"query_statement": {
"type": "SYMBOL",
"name": "query_expr"
},
"set_operation": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "query_expr"
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[uU][nN][iI][oO][nN]"
},
{
"type": "PATTERN",
"value": "[aA][lL][lL]"
}
]
},
"named": false,
"value": "UNION_ALL"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[uU][nN][iI][oO][nN]"
},
{
"type": "PATTERN",
"value": "[dD][iI][sS][tT][iI][nN][cC][tT]"
}
]
},
"named": false,
"value": "UNION_DISTINCT"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[iI][nN][tT][eE][rR][sS][eE][cC][tT]"
},
{
"type": "PATTERN",
"value": "[dD][iI][sS][tT][iI][nN][cC][tT]"
}
]
},
"named": false,
"value": "INTERSECT_DISTINCT"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE][xX][cC][eE][pP][tT]"
},
{
"type": "PATTERN",
"value": "[dD][iI][sS][tT][iI][nN][cC][tT]"
}
]
},
"named": false,
"value": "EXCEPT_DISTINCT"
}
]
}
},
{
"type": "SYMBOL",
"name": "query_expr"
}
]
}
},
"query_expr": {
"type": "PREC",
"value": 10,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "cte_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "select"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "query_expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SYMBOL",
"name": "set_operation"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "order_by_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "limit_clause"
},
{
"type": "BLANK"
}
]
}
]
}
},
"select": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][lL][eE][cC][tT]"
},
"named": false,
"value": "SELECT"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "ALL"
},
{
"type": "STRING",
"value": "DISTINCT"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "STRUCT"
},
{
"type": "STRING",
"value": "VALUE"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "select_list"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "from_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "where_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "group_by_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "having_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "qualify_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "window_clause"
},
{
"type": "BLANK"
}
]
}
]
},
"select_list": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "select_all"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_aliasable_expression"
},
"named": true,
"value": "select_expression"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "select_all"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_aliasable_expression"
},
"named": true,
"value": "select_expression"
}
]
}
]
}
}
]
}
},
"select_all": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "asterisk_expression"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "select_all_except"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "select_all_replace"
},
{
"type": "BLANK"
}
]
}
]
}
},
"select_all_except": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[eE][xX][cC][eE][pP][tT]"
},
"named": false,
"value": "EXCEPT"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "except_key",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "except_key",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"select_all_replace": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][eE][pP][lL][aA][cC][eE]"
},
"named": false,
"value": "REPLACE"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "select_replace_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "select_replace_expression"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"select_replace_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "as_alias"
}
]
},
"select_expr": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "as_alias"
}
]
},
"having_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[hH][aA][vV][iI][nN][gG]"
},
"named": false,
"value": "HAVING"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"qualify_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[qQ][uU][aA][lL][iI][fF][yY]"
},
"named": false,
"value": "QUALIFY"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"limit_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[lL][iI][mM][iI][tT]"
},
"named": false,
"value": "LIMIT"
},
{
"type": "SYMBOL",
"name": "_integer"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][fF][fF][sS][eE][tT]"
},
"named": false,
"value": "OFFSET"
},
{
"type": "SYMBOL",
"name": "_integer"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"group_by_clause_body": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
"group_by_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[gG][rR][oO][uU][pP]"
},
{
"type": "PATTERN",
"value": "[bB][yY]"
}
]
},
"named": false,
"value": "GROUP_BY"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "group_by_clause_body"
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][oO][lL][lL][uU][pP]"
},
"named": false,
"value": "ROLLUP"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "group_by_clause_body"
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
]
},
"analytic_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][vV][eE][rR]"
},
"named": false,
"value": "OVER"
},
{
"type": "SYMBOL",
"name": "over_clause"
}
]
},
"over_clause": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "window_specification"
}
]
},
"window_specification": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "table_partition_clause"
},
"named": true,
"value": "partition_by"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "order_by_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "window_frame_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"window_frame_clause": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "rows_range"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "window_frame_start"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "window_frame_between"
}
]
}
]
},
"rows_range": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][oO][wW][sS]"
},
"named": false,
"value": "ROWS"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][aA][nN][gG][eE]"
},
"named": false,
"value": "RANGE"
}
]
},
"window_frame_start": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "window_numeric_preceding"
},
{
"type": "SYMBOL",
"name": "keyword_unbounded_preceding"
},
{
"type": "SYMBOL",
"name": "keyword_current_row"
}
]
}
]
},
"window_frame_between": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_between"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_unbounded_preceding"
},
{
"type": "SYMBOL",
"name": "window_numeric_preceding"
}
]
},
"named": true,
"value": "between_from"
},
{
"type": "SYMBOL",
"name": "_keyword_and"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_window_frame_end_a"
},
"named": true,
"value": "between_to"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "keyword_current_row"
},
"named": true,
"value": "between_from"
},
{
"type": "SYMBOL",
"name": "_keyword_and"
},
{
"type": "SYMBOL",
"name": "_window_frame_end_b"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "window_numeric_following"
},
"named": true,
"value": "between_from"
},
{
"type": "SYMBOL",
"name": "_keyword_and"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_window_frame_end_c"
},
"named": true,
"value": "between_to"
}
]
}
]
}
]
},
"_window_frame_end_a": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "window_numeric_preceding"
},
{
"type": "SYMBOL",
"name": "keyword_current_row"
},
{
"type": "SYMBOL",
"name": "window_numeric_following"
},
{
"type": "SYMBOL",
"name": "keyword_unbounded_preceding"
}
]
},
"_window_frame_end_b": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "keyword_current_row"
},
{
"type": "SYMBOL",
"name": "window_numeric_following"
},
{
"type": "SYMBOL",
"name": "keyword_unbounded_following"
}
]
},
"_window_frame_end_c": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "window_numeric_following"
},
{
"type": "SYMBOL",
"name": "keyword_unbounded_following"
}
]
},
"window_numeric_preceding": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[pP][rR][eE][cC][eE][dD][iI][nN][gG]"
},
"named": false,
"value": "PRECEDING"
}
]
},
"window_numeric_following": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][oO][lL][lL][oO][wW][iI][nN][gG]"
},
"named": false,
"value": "FOLLOWING"
}
]
},
"keyword_unbounded_preceding": {
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[uU][nN][bB][oO][uU][nN][dD][eE][dD]"
},
{
"type": "PATTERN",
"value": "[pP][rR][eE][cC][eE][dD][iI][nN][gG]"
}
]
},
"named": false,
"value": "UNBOUNDED_PRECEDING"
},
"keyword_unbounded_following": {
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[uU][nN][bB][oO][uU][nN][dD][eE][dD]"
},
{
"type": "PATTERN",
"value": "[fF][oO][lL][lL][oO][wW][iI][nN][gG]"
}
]
},
"named": false,
"value": "UNBOUNDED_FOLLOWING"
},
"keyword_current_row": {
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[cC][uU][rR][rR][eE][nN][tT]"
},
{
"type": "PATTERN",
"value": "[rR][oO][wW]"
}
]
},
"named": false,
"value": "CURRENT_ROW"
},
"named_window_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "window_specification"
}
]
}
]
},
"window_clause": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_window"
},
{
"type": "SYMBOL",
"name": "named_window_expression"
}
]
},
"order_by_clause_body": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_direction_keywords"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_nulls_preference"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_direction_keywords"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_nulls_preference"
},
{
"type": "BLANK"
}
]
}
]
}
]
}
}
]
},
"_direction_keywords": {
"type": "FIELD",
"name": "order",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][sS][cC]"
},
"named": false,
"value": "ASC"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][eE][sS][cC]"
},
"named": false,
"value": "DESC"
}
]
}
},
"_nulls_preference": {
"type": "FIELD",
"name": "nulls_preference",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[nN][uU][lL][lL][sS]"
},
{
"type": "PATTERN",
"value": "[fF][iI][rR][sS][tT]"
}
]
},
"named": false,
"value": "NULLS_FIRST"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[nN][uU][lL][lL][sS]"
},
{
"type": "PATTERN",
"value": "[lL][aA][sS][tT]"
}
]
},
"named": false,
"value": "NULLS_LAST"
}
]
}
},
"order_by_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[oO][rR][dD][eE][rR]"
},
{
"type": "PATTERN",
"value": "[bB][yY]"
}
]
},
"named": false,
"value": "ORDER_BY"
},
{
"type": "SYMBOL",
"name": "order_by_clause_body"
}
]
},
"where_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][hH][eE][rR][eE]"
},
"named": false,
"value": "WHERE"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"_aliasable_expression": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "as_alias"
},
{
"type": "BLANK"
}
]
}
]
}
},
"as_alias": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "alias_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"cte_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][iI][tT][hH]"
},
"named": false,
"value": "WITH"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "non_recursive_cte"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "non_recursive_cte"
}
]
}
}
]
}
]
},
"non_recursive_cte": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "alias_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "query_expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
"from_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][rR][oO][mM]"
},
"named": false,
"value": "FROM"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "from_item"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "pivot_operator"
},
{
"type": "SYMBOL",
"name": "unpivot_operator"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "tablesample_operator"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
"pivot_value": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "as_alias"
},
{
"type": "BLANK"
}
]
}
]
},
"pivot_operator": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[pP][iI][vV][oO][tT]"
},
"named": false,
"value": "PIVOT"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "pivot_value"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "pivot_value"
}
]
}
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][oO][rR]"
},
"named": false,
"value": "FOR"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "input_column"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN]"
},
"named": false,
"value": "IN"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_aliasable_expression"
},
"named": true,
"value": "pivot_column"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_aliasable_expression"
},
"named": true,
"value": "pivot_column"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "STRING",
"value": ")"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "as_alias"
},
{
"type": "BLANK"
}
]
}
]
},
"unpivot_operator": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][nN][pP][iI][vV][oO][tT]"
},
"named": false,
"value": "UNPIVOT"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[iI][nN][cC][lL][uU][dD][eE]"
},
{
"type": "PATTERN",
"value": "[nN][uU][lL][lL][sS]"
}
]
},
"named": false,
"value": "INCLUDE_NULLS"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE][xX][cC][lL][uU][dD][eE]"
},
{
"type": "PATTERN",
"value": "[nN][uU][lL][lL][sS]"
}
]
},
"named": false,
"value": "EXCLUDE_NULLS"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "single_column_unpivot"
},
{
"type": "SYMBOL",
"name": "multi_column_unpivot"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "as_alias"
},
{
"type": "BLANK"
}
]
}
]
},
"single_column_unpivot": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "unpivot_value"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][oO][rR]"
},
"named": false,
"value": "FOR"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "name_column"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN]"
},
"named": false,
"value": "IN"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "unpivot_column"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "unpivot_column"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"multi_column_unpivot": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "unpivot_value"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "unpivot_value"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][oO][rR]"
},
"named": false,
"value": "FOR"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "name_column"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN]"
},
"named": false,
"value": "IN"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "unpivot_column"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "unpivot_column"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"unpivot_column": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "struct"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "FIELD",
"name": "alias",
"content": {
"type": "SYMBOL",
"name": "string"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"tablesample_operator": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE][sS][aA][mM][pP][lL][eE]"
},
{
"type": "PATTERN",
"value": "[sS][yY][sS][tT][eE][mM]"
}
]
},
"named": false,
"value": "TABLESAMPLE_SYSTEM"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "sample_rate",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_integer"
},
{
"type": "SYMBOL",
"name": "query_parameter"
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[pP][eE][rR][cC][eE][nN][tT]"
},
"named": false,
"value": "PERCENT"
},
{
"type": "STRING",
"value": ")"
}
]
},
"from_item": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "as_alias"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "select_subexpression"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "as_alias"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "unnest_clause"
},
{
"type": "SYMBOL",
"name": "join_operation"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "join_operation"
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
]
},
"join_operation": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_cross_join_operation"
},
{
"type": "SYMBOL",
"name": "_condition_join_operator"
}
]
},
"join_type": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][nN][eE][rR]"
},
"named": false,
"value": "INNER"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[lL][eE][fF][tT]"
},
"named": false,
"value": "LEFT"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][iI][gG][hH][tT]"
},
"named": false,
"value": "RIGHT"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][uU][lL][lL]"
},
"named": false,
"value": "FULL"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][uU][tT][eE][rR]"
},
"named": false,
"value": "OUTER"
},
{
"type": "BLANK"
}
]
}
]
}
]
}
]
},
"_cross_join_operation": {
"type": "PREC_LEFT",
"value": "clause_connective",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "from_item"
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[cC][rR][oO][sS][sS]"
},
{
"type": "PATTERN",
"value": "[jJ][oO][iI][nN]"
}
]
},
"named": false,
"value": "CROSS_JOIN"
},
{
"type": "STRING",
"value": ","
}
]
}
},
{
"type": "SYMBOL",
"name": "from_item"
}
]
}
},
"_condition_join_operator": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "from_item"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "join_type"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[jJ][oO][iI][nN]"
},
"named": false,
"value": "JOIN"
},
{
"type": "SYMBOL",
"name": "from_item"
},
{
"type": "FIELD",
"name": "join_condition",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][nN]"
},
"named": false,
"value": "ON"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][sS][iI][nN][gG]"
},
"named": false,
"value": "USING"
},
{
"type": "STRING",
"value": "("
},
{
"type": "REPEAT1",
"content": {
"type": "FIELD",
"name": "keys",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
},
{
"type": "STRING",
"value": ")"
}
]
}
]
}
}
]
},
"select_subexpression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "query_expr"
},
{
"type": "STRING",
"value": ")"
}
]
},
"function_call": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "function",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "asterisk_expression"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "asterisk_expression"
}
]
}
]
}
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"unnest_operator": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][nN][nN][eE][sS][tT]"
},
"named": false,
"value": "UNNEST"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "array"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][nN][nN][eE][sS][tT]"
},
"named": false,
"value": "UNNEST"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][nN][nN][eE][sS][tT]"
},
"named": false,
"value": "UNNEST"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"unnest_clause": {
"type": "PREC_RIGHT",
"value": 50,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "unnest_operator"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "unnest_withoffset"
},
{
"type": "BLANK"
}
]
}
]
}
},
"unnest_withoffset": {
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[wW][iI][tT][hH]"
},
{
"type": "PATTERN",
"value": "[oO][fF][fF][sS][eE][tT]"
}
]
},
"named": false,
"value": "WITH_OFFSET"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "SYMBOL",
"name": "_identifier"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
},
"insert_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][sS][eE][rR][tT]"
},
"named": false,
"value": "INSERT"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][tT][oO]"
},
"named": false,
"value": "INTO"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "insert_columns"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "values_clause"
}
]
},
"insert_columns": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"values_clause": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[vV][aA][lL][uU][eE][sS]"
},
"named": false,
"value": "VALUES"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "value_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "value_element"
}
]
}
}
]
}
]
},
{
"type": "SYMBOL",
"name": "query_statement"
}
]
},
"value_element": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"delete_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_delete"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][rR][oO][mM]"
},
"named": false,
"value": "FROM"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "as_alias"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "where_clause"
}
]
},
"truncate_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[tT][rR][uU][nN][cC][aA][tT][eE]"
},
{
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
}
]
},
"named": false,
"value": "TRUNCATE_TABLE"
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"update_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][pP][dD][aA][tT][eE]"
},
"named": false,
"value": "UPDATE"
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "as_alias"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "set_clause"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "from_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "where_clause"
}
]
},
"set_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][tT]"
},
"named": false,
"value": "SET"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "update_item"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "update_item"
}
]
}
}
]
}
]
},
"update_item": {
"type": "SYMBOL",
"name": "_assigment_expression"
},
"_assigment_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"merge_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[mM][eE][rR][gG][eE]"
},
"named": false,
"value": "MERGE"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][tT][oO]"
},
"named": false,
"value": "INTO"
},
{
"type": "BLANK"
}
]
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "as_alias"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][sS][iI][nN][gG]"
},
"named": false,
"value": "USING"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "source_name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "as_alias"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "select_subexpression"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "as_alias"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "as_alias"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][nN]"
},
"named": false,
"value": "ON"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "merge_condition"
},
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "merge_matched_clause"
},
{
"type": "SYMBOL",
"name": "merge_not_matched_by_target_clause"
},
{
"type": "SYMBOL",
"name": "merge_not_matched_by_source_clause"
}
]
}
}
]
},
"merge_matched_clause": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[wW][hH][eE][nN]"
},
{
"type": "PATTERN",
"value": "[mM][aA][tT][cC][hH][eE][dD]"
}
]
},
"named": false,
"value": "WHEN_MATCHED"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_and"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "search_condition"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][hH][eE][nN]"
},
"named": false,
"value": "THEN"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "merge_update_clause"
},
{
"type": "SYMBOL",
"name": "merge_delete_clause"
}
]
}
]
}
]
},
"merge_not_matched_by_target_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[wW][hH][eE][nN]"
},
{
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
{
"type": "PATTERN",
"value": "[mM][aA][tT][cC][hH][eE][dD]"
}
]
},
"named": false,
"value": "WHEN_NOT_MATCHED"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[bB][yY]"
},
{
"type": "PATTERN",
"value": "[tT][aA][rR][gG][eE][tT]"
}
]
},
"named": false,
"value": "BY_TARGET"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_and"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "search_condition"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][hH][eE][nN]"
},
"named": false,
"value": "THEN"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "merge_insert_clause"
}
]
}
]
},
"merge_not_matched_by_source_clause": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[wW][hH][eE][nN]"
},
{
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
{
"type": "PATTERN",
"value": "[mM][aA][tT][cC][hH][eE][dD]"
},
{
"type": "PATTERN",
"value": "[bB][yY]"
},
{
"type": "PATTERN",
"value": "[sS][oO][uU][rR][cC][eE]"
}
]
},
"named": false,
"value": "WHEN_NOT_MATCHED_BY_SOURCE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_and"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "search_condition"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][hH][eE][nN]"
},
"named": false,
"value": "THEN"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "merge_update_clause"
},
{
"type": "SYMBOL",
"name": "merge_delete_clause"
}
]
}
]
}
]
},
"merge_update_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[uU][pP][dD][aA][tT][eE]"
},
{
"type": "PATTERN",
"value": "[sS][eE][tT]"
}
]
},
"named": false,
"value": "UPDATE_SET"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "update_item"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "update_item"
}
]
}
}
]
}
]
},
"merge_delete_clause": {
"type": "SYMBOL",
"name": "_keyword_delete"
},
"merge_insert_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][sS][eE][rR][tT]"
},
"named": false,
"value": "INSERT"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "insert_columns"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "values_clause"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][oO][wW]"
},
"named": false,
"value": "ROW"
}
]
}
]
},
"_literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "system_variable"
},
{
"type": "SYMBOL",
"name": "query_parameter"
},
{
"type": "SYMBOL",
"name": "array"
},
{
"type": "SYMBOL",
"name": "struct"
},
{
"type": "SYMBOL",
"name": "interval"
},
{
"type": "SYMBOL",
"name": "time"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "TRUE"
},
{
"type": "SYMBOL",
"name": "FALSE"
},
{
"type": "SYMBOL",
"name": "NULL"
},
{
"type": "SYMBOL",
"name": "number"
}
]
},
"NULL": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][uU][lL][lL]"
},
"named": false,
"value": "NULL"
},
"TRUE": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][rR][uU][eE]"
},
"named": false,
"value": "TRUE"
},
"FALSE": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][aA][lL][sS][eE]"
},
"named": false,
"value": "FALSE"
},
"_integer": {
"type": "PATTERN",
"value": "[-+]?\\d+"
},
"_float": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[-+]?\\d+\\.(\\d*)([eE][+-]?\\d+)?"
},
{
"type": "PATTERN",
"value": "(\\d+)?\\.\\d+([eE][+-]?\\d+)?"
},
{
"type": "PATTERN",
"value": "\\d+[eE][+-]?\\d+"
}
]
},
"_float_or_integer": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_integer"
},
{
"type": "SYMBOL",
"name": "_float"
}
]
},
"numeric": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][uU][mM][eE][rR][iI][cC]"
},
"named": false,
"value": "NUMERIC"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[bB][iI][gG][nN][uU][mM][eE][rR][iI][cC]"
},
"named": false,
"value": "BIGNUMERIC"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][eE][cC][iI][mM][aA][lL]"
},
"named": false,
"value": "DECIMAL"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[bB][iI][gG][dD][eE][cC][iI][mM][aA][lL]"
},
"named": false,
"value": "BIGDECIMAL"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "SYMBOL",
"name": "_float_or_integer"
},
{
"type": "STRING",
"value": "'"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "SYMBOL",
"name": "_float_or_integer"
},
{
"type": "STRING",
"value": "\""
}
]
}
]
}
]
},
"_number": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_integer"
},
{
"type": "SYMBOL",
"name": "_float"
},
{
"type": "SYMBOL",
"name": "numeric"
}
]
},
"interval": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][tT][eE][rR][vV][aA][lL]"
},
"named": false,
"value": "INTERVAL"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_unquoted_identifier"
},
"named": true,
"value": "datetime_part"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][oO]"
},
"named": false,
"value": "TO"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_unquoted_identifier"
},
"named": true,
"value": "datetime_part"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"time": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][aA][tT][eE]"
},
"named": false,
"value": "DATE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][iI][mM][eE]"
},
"named": false,
"value": "TIME"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][aA][tT][eE][tT][iI][mM][eE]"
},
"named": false,
"value": "DATETIME"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][iI][mM][eE][sS][tT][aA][mM][pP]"
},
"named": false,
"value": "TIMESTAMP"
}
]
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
"number": {
"type": "SYMBOL",
"name": "_number"
},
"system_variable": {
"type": "PATTERN",
"value": "@@[_a-zA-Z][._a-zA-Z0-9]*"
},
"query_parameter": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_named_query_parameter"
},
{
"type": "SYMBOL",
"name": "_positional_query_parameter"
}
]
},
"_named_query_parameter": {
"type": "PATTERN",
"value": "@+[_a-zA-Z][_a-zA-Z0-9]*"
},
"_positional_query_parameter": {
"type": "PATTERN",
"value": "\\?"
},
"_type_struct": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][tT][rR][uU][cC][tT]"
},
"named": false,
"value": "STRUCT"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[a-zA-Z0-9]+"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[a-zA-Z0-9]+"
},
{
"type": "SYMBOL",
"name": "_type_struct"
}
]
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[a-zA-Z0-9]+"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[a-zA-Z0-9]+"
},
{
"type": "SYMBOL",
"name": "_type_struct"
}
]
}
]
}
]
}
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_type_array": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][rR][rR][aA][yY]"
},
"named": false,
"value": "ARRAY"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_struct"
},
{
"type": "SYMBOL",
"name": "_unquoted_identifier"
}
]
},
{
"type": "STRING",
"value": ">"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"array": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_array"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_literal"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_literal"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"struct": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_struct"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_aliasable_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_aliasable_expression"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"_unquoted_identifier": {
"type": "PATTERN",
"value": "[_a-zA-Z][_a-zA-Z0-9]*"
},
"_quoted_identifier": {
"type": "PATTERN",
"value": "`[a-zA-Z0-9._-]+`"
},
"_identifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_quoted_identifier"
},
{
"type": "SYMBOL",
"name": "_unquoted_identifier"
}
]
},
"_dotted_identifier": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "."
}
}
]
},
"identifier": {
"type": "PREC_RIGHT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_dotted_identifier"
}
},
{
"type": "SYMBOL",
"name": "_identifier"
}
]
}
},
"type": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "STRING",
"value": ")"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"string": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[bB]?[rR]?'"
},
{
"type": "PATTERN",
"value": "[^']*"
},
{
"type": "STRING",
"value": "'"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[bB]?[rR]?\""
},
{
"type": "PATTERN",
"value": "[^\"]*"
},
{
"type": "STRING",
"value": "\""
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[bB]?[rR]?'''"
},
{
"type": "PATTERN",
"value": "[^']+"
},
{
"type": "STRING",
"value": "'''"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[bB]?[rR]?\"\"\""
},
{
"type": "PATTERN",
"value": "[^\"]+"
},
{
"type": "STRING",
"value": "\"\"\""
}
]
}
]
},
"named": false,
"value": "_string"
},
"ordered_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "_direction_keywords"
}
]
},
"array_type": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "STRING",
"value": "["
},
{
"type": "STRING",
"value": "]"
}
]
},
"_type": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type"
},
{
"type": "SYMBOL",
"name": "array_type"
}
]
},
"comment": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "PATTERN",
"value": ".*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "--"
},
{
"type": "PATTERN",
"value": ".*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "/*"
},
{
"type": "PATTERN",
"value": "[^*]*\\*+([^/*][^*]*\\*+)*"
},
{
"type": "STRING",
"value": "/"
}
]
}
]
}
},
"_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "unary_expression"
},
{
"type": "SYMBOL",
"name": "between_operator"
},
{
"type": "SYMBOL",
"name": "casewhen_expression"
},
{
"type": "SYMBOL",
"name": "_literal"
},
{
"type": "SYMBOL",
"name": "analytic_expression"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "unnest_clause"
},
{
"type": "SYMBOL",
"name": "_parenthesized_expression"
},
{
"type": "SYMBOL",
"name": "binary_expression"
},
{
"type": "SYMBOL",
"name": "array_element_access"
},
{
"type": "SYMBOL",
"name": "argument_reference"
},
{
"type": "SYMBOL",
"name": "select_subexpression"
},
{
"type": "SYMBOL",
"name": "cast_expression"
}
]
},
"_parenthesized_expression": {
"type": "PREC",
"value": "unary_exp",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"array_element_access": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "argument_reference"
}
]
},
{
"type": "STRING",
"value": "["
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "]"
}
]
},
"unary_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": "unary_not",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "_keyword_not"
}
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "unary_exp",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "~"
},
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
}
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": "unary_exp",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[eE][xX][iI][sS][tT][sS]"
},
"named": false,
"value": "EXISTS"
}
},
{
"type": "SYMBOL",
"name": "select_subexpression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": "operator_compare",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "_keyword_is"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_not"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "NULL"
},
{
"type": "SYMBOL",
"name": "TRUE"
},
{
"type": "SYMBOL",
"name": "FALSE"
}
]
}
]
}
}
]
},
"binary_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": "binary_times",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "/"
},
{
"type": "STRING",
"value": "||"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_plus",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "-"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "operator_compare",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<"
},
{
"type": "STRING",
"value": "<="
},
{
"type": "STRING",
"value": "<>"
},
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": ">"
},
{
"type": "STRING",
"value": ">="
},
{
"type": "STRING",
"value": "!="
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_bitwise_shift",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "<<"
},
{
"type": "STRING",
"value": ">>"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_bitwise_and",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "&"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_bitwise_xor",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "^"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_bitwise_or",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "|"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_and",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "_keyword_and"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "binary_or",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "_keyword_or"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "operator_compare",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_not"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_keyword_in"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "operator_compare",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_not"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_keyword_like"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "operator_compare",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_is"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_not"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[dD][iI][sS][tT][iI][nN][cC][tT]"
},
{
"type": "PATTERN",
"value": "[fF][rR][oO][mM]"
}
]
},
"named": false,
"value": "DISTINCT_FROM"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
}
]
},
"between_operator": {
"type": "PREC_LEFT",
"value": "operator_compare",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "exp",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_not"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_keyword_between"
},
{
"type": "FIELD",
"name": "from",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "between_from"
}
},
{
"type": "SYMBOL",
"name": "_keyword_and"
},
{
"type": "FIELD",
"name": "to",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "between_to"
}
}
]
}
},
"casewhen_expression": {
"type": "PREC_LEFT",
"value": "clause_connective",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_case"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "expr",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "casewhen_clause"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "caseelse_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_keyword_end"
}
]
}
},
"casewhen_clause": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_when"
},
{
"type": "FIELD",
"name": "match_condition",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "SYMBOL",
"name": "_keyword_then"
},
{
"type": "FIELD",
"name": "match_result",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
"caseelse_clause": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_else"
},
{
"type": "FIELD",
"name": "else_result",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
"cast_expression": {
"type": "PREC_RIGHT",
"value": 10,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_cast"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "_keyword_as"
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type_struct"
},
{
"type": "SYMBOL",
"name": "_type_array"
},
{
"type": "SYMBOL",
"name": "_identifier"
}
]
},
"named": true,
"value": "type_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "cast_format_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
},
"cast_format_clause": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_keyword_format"
},
{
"type": "FIELD",
"name": "format_type",
"content": {
"type": "SYMBOL",
"name": "string"
}
}
]
},
"asterisk_expression": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_dotted_identifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "*"
}
]
},
"argument_reference": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "PATTERN",
"value": "\\d+"
}
]
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s\\n"
},
{
"type": "PATTERN",
"value": "\\s"
},
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "PATTERN",
"value": "[\\s\\f\\uFEFF\\u2060\\u200B]|\\\\\\r?\\n"
}
],
"conflicts": [
[
"query_expr"
]
],
"precedences": [
[
{
"type": "STRING",
"value": "unary_exp"
},
{
"type": "STRING",
"value": "binary_times"
},
{
"type": "STRING",
"value": "binary_plus"
},
{
"type": "STRING",
"value": "binary_bitwise_shift"
},
{
"type": "STRING",
"value": "binary_bitwise_and"
},
{
"type": "STRING",
"value": "binary_bitwise_xor"
},
{
"type": "STRING",
"value": "binary_bitwise_or"
},
{
"type": "STRING",
"value": "operator_compare"
},
{
"type": "STRING",
"value": "binary_relation"
},
{
"type": "STRING",
"value": "binary_concat"
},
{
"type": "STRING",
"value": "binary_and"
},
{
"type": "STRING",
"value": "binary_or"
},
{
"type": "STRING",
"value": "unary_not"
},
{
"type": "STRING",
"value": "clause_connective"
}
]
],
"externals": [],
"inline": [],
"supertypes": []
}