difftastic/src/grammar.json

5680 lines
131 KiB
JSON

{
"name": "sql",
"rules": {
"source_file": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
"_statement": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "pg_command"
},
{
"type": "SYMBOL",
"name": "begin_statement"
},
{
"type": "SYMBOL",
"name": "commit_statement"
},
{
"type": "SYMBOL",
"name": "rollback_statement"
},
{
"type": "SYMBOL",
"name": "select_statement"
},
{
"type": "SYMBOL",
"name": "update_statement"
},
{
"type": "SYMBOL",
"name": "set_statement"
},
{
"type": "SYMBOL",
"name": "insert_statement"
},
{
"type": "SYMBOL",
"name": "grant_statement"
},
{
"type": "SYMBOL",
"name": "drop_statement"
},
{
"type": "SYMBOL",
"name": "create_statement"
},
{
"type": "SYMBOL",
"name": "alter_statement"
},
{
"type": "SYMBOL",
"name": "create_type_statement"
},
{
"type": "SYMBOL",
"name": "create_domain_statement"
},
{
"type": "SYMBOL",
"name": "create_index_statement"
},
{
"type": "SYMBOL",
"name": "create_table_statement"
},
{
"type": "SYMBOL",
"name": "create_function_statement"
},
{
"type": "SYMBOL",
"name": "create_schema_statement"
},
{
"type": "SYMBOL",
"name": "create_role_statement"
},
{
"type": "SYMBOL",
"name": "create_extension_statement"
},
{
"type": "SYMBOL",
"name": "comment_statement"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "BLANK"
}
]
}
]
},
"comment_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[cC][oO][mM][mM][eE][nN][tT]"
},
{
"type": "PATTERN",
"value": "[oO][nN]"
}
]
},
"named": false,
"value": "COMMENT_ON"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[eE][xX][tT][eE][nN][sS][iI][oO][nN]"
},
"named": false,
"value": "EXTENSION"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][cC][hH][eE][mM][aA]"
},
"named": false,
"value": "SCHEMA"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
"named": false,
"value": "TABLE"
}
]
},
{
"type": "SYMBOL",
"name": "_identifier"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
},
"named": false,
"value": "FUNCTION"
},
{
"type": "SYMBOL",
"name": "function_call"
}
]
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][sS]"
},
"named": false,
"value": "IS"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "NULL"
}
]
}
]
},
"begin_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[bB][eE][gG][iI][nN]"
},
"named": false,
"value": "BEGIN"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][oO][rR][kK]"
},
"named": false,
"value": "WORK"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][rR][aA][nN][sS][aA][cC][tT][iI][oO][nN]"
},
"named": false,
"value": "TRANSACTION"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"commit_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][oO][mM][mM][iI][tT]"
},
"named": false,
"value": "COMMIT"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][oO][rR][kK]"
},
"named": false,
"value": "WORK"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][rR][aA][nN][sS][aA][cC][tT][iI][oO][nN]"
},
"named": false,
"value": "TRANSACTION"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"rollback_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][oO][lL][lL][bB][aA][cC][kK]"
},
"named": false,
"value": "ROLLBACK"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][oO][rR][kK]"
},
"named": false,
"value": "WORK"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][rR][aA][nN][sS][aA][cC][tT][iI][oO][nN]"
},
"named": false,
"value": "TRANSACTION"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"create_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
"named": false,
"value": "CREATE"
},
{
"type": "CHOICE",
"members": [
{
"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"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "sequence"
},
"named": true,
"value": "create_sequence"
}
]
}
]
},
"alter_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][lL][tT][eE][rR]"
},
"named": false,
"value": "ALTER"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "sequence"
},
"named": true,
"value": "alter_sequence"
},
{
"type": "SYMBOL",
"name": "alter_table"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "alter_schema"
},
"named": true,
"value": "schema"
}
]
}
]
},
"alter_table": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
"named": false,
"value": "TABLE"
},
{
"type": "CHOICE",
"members": [
{
"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"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][nN][lL][yY]"
},
"named": false,
"value": "ONLY"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "SYMBOL",
"name": "alter_table_action"
}
]
},
"alter_schema_rename_action": {
"type": "SEQ",
"members": [
{
"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": "SYMBOL",
"name": "_identifier"
}
]
},
"alter_owner_action": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[oO][wW][nN][eE][rR]"
},
{
"type": "PATTERN",
"value": "[tT][oO]"
}
]
},
"named": false,
"value": "OWNER_TO"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "STRING",
"value": "CURRENT_USER"
},
{
"type": "STRING",
"value": "CURRENT_ROLE"
},
{
"type": "STRING",
"value": "SESSION_USER"
}
]
}
]
},
"alter_schema": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][cC][hH][eE][mM][aA]"
},
"named": false,
"value": "SCHEMA"
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "alter_schema_rename_action"
},
"named": true,
"value": "rename"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "alter_owner_action"
},
"named": true,
"value": "alter_owner"
}
]
}
]
},
"alter_table_action_alter_column": {
"type": "SEQ",
"members": [
{
"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": "SYMBOL",
"name": "_identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[sS][eE][tT]"
},
{
"type": "PATTERN",
"value": "[dD][eE][fF][aA][uU][lL][tT]"
}
]
},
"named": false,
"value": "SET_DEFAULT"
},
{
"type": "SYMBOL",
"name": "_column_default_expression"
}
]
},
"alter_table_action_add": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][dD][dD]"
},
"named": false,
"value": "ADD"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][oO][lL][uU][mM][nN]"
},
"named": false,
"value": "COLUMN"
},
{
"type": "SYMBOL",
"name": "table_column"
}
]
},
{
"type": "SYMBOL",
"name": "_table_constraint"
}
]
}
]
},
"alter_table_action_set": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][tT]"
},
"named": false,
"value": "SET"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"alter_table_action": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "alter_table_action_add"
},
{
"type": "SYMBOL",
"name": "alter_table_action_alter_column"
},
{
"type": "SYMBOL",
"name": "alter_table_action_set"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "alter_owner_action"
},
"named": true,
"value": "alter_owner"
}
]
},
"sequence": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][qQ][uU][eE][nN][cC][eE]"
},
"named": false,
"value": "SEQUENCE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][fF]"
},
"named": false,
"value": "IF"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
"named": false,
"value": "NOT"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[eE][xX][iI][sS][tT][sS]"
},
"named": false,
"value": "EXISTS"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][sS]"
},
"named": false,
"value": "AS"
},
{
"type": "SYMBOL",
"name": "type"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][tT][aA][rR][tT]"
},
"named": false,
"value": "START"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][iI][tT][hH]"
},
"named": false,
"value": "WITH"
},
{
"type": "SYMBOL",
"name": "number"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][cC][rR][eE][mM][eE][nN][tT]"
},
"named": false,
"value": "INCREMENT"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[bB][yY]"
},
"named": false,
"value": "BY"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "number"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][oO]"
},
"named": false,
"value": "NO"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[mM][iI][nN][vV][aA][lL][uU][eE]"
},
"named": false,
"value": "MINVALUE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[mM][aA][xX][vV][aA][lL][uU][eE]"
},
"named": false,
"value": "MAXVALUE"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][aA][cC][hH][eE]"
},
"named": false,
"value": "CACHE"
},
{
"type": "SYMBOL",
"name": "number"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[oO][wW][nN][eE][dD]"
},
{
"type": "PATTERN",
"value": "[bB][yY]"
}
]
},
"named": false,
"value": "OWNED_BY"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_identifier"
}
]
}
]
}
]
}
}
]
},
"pg_command": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "\\\\[a-zA-Z]+"
},
{
"type": "PATTERN",
"value": ".*"
}
]
},
"create_function_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
{
"type": "FIELD",
"name": "replace",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[oO][rR][ ][rR][eE][pP][lL][aA][cC][eE]"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "PATTERN",
"value": "[fF][uU][nN][cC][tT][iI][oO][nN]"
}
]
},
"named": false,
"value": "CREATE_OR_REPLACE_FUNCTION"
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "SYMBOL",
"name": "create_function_parameters"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][eE][tT][uU][rR][nN][sS]"
},
"named": false,
"value": "RETURNS"
},
{
"type": "SYMBOL",
"name": "_create_function_return_type"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_function_language"
},
{
"type": "SYMBOL",
"name": "function_body"
},
{
"type": "SYMBOL",
"name": "optimizer_hint"
},
{
"type": "SYMBOL",
"name": "parallel_hint"
},
{
"type": "SYMBOL",
"name": "null_hint"
}
]
}
}
]
},
"optimizer_hint": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[vV][oO][lL][aA][tT][iI][lL][eE]"
},
"named": false,
"value": "VOLATILE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][mM][mM][uU][tT][aA][bB][lL][eE]"
},
"named": false,
"value": "IMMUTABLE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][tT][aA][bB][lL][eE]"
},
"named": false,
"value": "STABLE"
}
]
},
"parallel_hint": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[pP][aA][rR][aA][lL][lL][eE][lL]"
},
"named": false,
"value": "PARALLEL"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][aA][fF][eE]"
},
"named": false,
"value": "SAFE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][nN][sS][aA][fF][eE]"
},
"named": false,
"value": "UNSAFE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][eE][sS][tT][rR][iI][cC][tT][eE][dD]"
},
"named": false,
"value": "RESTRICTED"
}
]
}
]
},
"null_hint": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[cC][aA][lL][lL][eE][dD]"
},
{
"type": "PATTERN",
"value": "[oO][nN]"
},
{
"type": "PATTERN",
"value": "[nN][uU][lL][lL]"
},
{
"type": "PATTERN",
"value": "[iI][nN][pP][uU][tT]"
}
]
},
"named": false,
"value": "CALLED_ON_NULL_INPUT"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[rR][eE][tT][uU][rR][nN][sS]"
},
{
"type": "PATTERN",
"value": "[nN][uU][lL][lL]"
},
{
"type": "PATTERN",
"value": "[oO][nN]"
},
{
"type": "PATTERN",
"value": "[nN][uU][lL][lL]"
},
{
"type": "PATTERN",
"value": "[iI][nN][pP][uU][tT]"
}
]
},
"named": false,
"value": "RETURNS_NULL_ON_NULL_INPUT"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][tT][rR][iI][cC][tT]"
},
"named": false,
"value": "STRICT"
}
]
},
"_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": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[a-zA-Z]+"
},
{
"type": "PATTERN",
"value": "'[a-zA-Z]+'"
}
]
},
"named": true,
"value": "language"
}
]
},
"_create_function_return_type": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "SYMBOL",
"name": "setof"
},
{
"type": "SYMBOL",
"name": "constrained_type"
}
]
},
"setof": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][tT][oO][fF]"
},
"named": false,
"value": "SETOF"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "SYMBOL",
"name": "constrained_type"
}
]
}
]
},
"constrained_type": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "SYMBOL",
"name": "null_constraint"
}
]
}
]
},
"create_function_parameter": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "argmode",
"content": {
"type": "CHOICE",
"members": [
{
"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": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[vV][aA][rR][iI][aA][dD][iI][cC]"
},
"named": false,
"value": "VARIADIC"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "SYMBOL",
"name": "constrained_type"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_expression"
},
"named": true,
"value": "default"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"create_function_parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"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": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"function_body": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][sS]"
},
"named": false,
"value": "AS"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
"create_extension_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
{
"type": "PATTERN",
"value": "[eE][xX][tT][eE][nN][sS][iI][oO][nN]"
}
]
},
"named": false,
"value": "CREATE_EXTENSION"
},
{
"type": "CHOICE",
"members": [
{
"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"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][iI][tT][hH]"
},
"named": false,
"value": "WITH"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][cC][hH][eE][mM][aA]"
},
"named": false,
"value": "SCHEMA"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_identifier"
},
"named": true,
"value": "schema"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[vV][eE][rR][sS][iI][oO][nN]"
},
"named": false,
"value": "VERSION"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "string"
},
"named": true,
"value": "version"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][aA][sS][cC][aA][dD][eE]"
},
"named": false,
"value": "CASCADE"
}
]
}
}
]
},
"create_role_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
{
"type": "PATTERN",
"value": "[rR][oO][lL][eE]"
}
]
},
"named": false,
"value": "CREATE_ROLE"
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][iI][tT][hH]"
},
"named": false,
"value": "WITH"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"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": "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"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_identifier"
}
]
},
"drop_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][rR][oO][pP]"
},
"named": false,
"value": "DROP"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "TABLE"
},
{
"type": "STRING",
"value": "VIEW"
},
{
"type": "STRING",
"value": "TABLESPACE"
},
{
"type": "STRING",
"value": "EXTENSION"
},
{
"type": "STRING",
"value": "INDEX"
}
]
},
{
"type": "CHOICE",
"members": [
{
"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"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_identifier"
}
]
},
"set_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][tT]"
},
"named": false,
"value": "SET"
},
{
"type": "FIELD",
"name": "scope",
"content": {
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][sS][sS][iI][oO][nN]"
},
"named": false,
"value": "SESSION"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[lL][oO][cC][aA][lL]"
},
"named": false,
"value": "LOCAL"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][oO]"
},
"named": false,
"value": "TO"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][eE][fF][aA][uU][lL][tT]"
},
"named": false,
"value": "DEFAULT"
}
]
}
]
},
"grant_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[gG][rR][aA][nN][tT]"
},
"named": false,
"value": "GRANT"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][lL][lL]"
},
"named": false,
"value": "ALL"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[pP][rR][iI][vV][iI][lL][eE][gG][eE][sS]"
},
"named": false,
"value": "PRIVILEGES"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][lL][eE][cC][tT]"
},
"named": false,
"value": "SELECT"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][sS][eE][rR][tT]"
},
"named": false,
"value": "INSERT"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][pP][dD][aA][tT][eE]"
},
"named": false,
"value": "UPDATE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][eE][lL][eE][tT][eE]"
},
"named": false,
"value": "DELETE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][rR][uU][nN][cC][aA][tT][eE]"
},
"named": false,
"value": "TRUNCATE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][eE][fF][eE][rR][eE][nN][cC][eE][sS]"
},
"named": false,
"value": "REFERENCES"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][rR][iI][gG][gG][eE][rR]"
},
"named": false,
"value": "TRIGGER"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][sS][aA][gG][eE]"
},
"named": false,
"value": "USAGE"
}
]
}
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][nN]"
},
"named": false,
"value": "ON"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][cC][hH][eE][mM][aA]"
},
"named": false,
"value": "SCHEMA"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][aA][tT][aA][bB][aA][sS][eE]"
},
"named": false,
"value": "DATABASE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][qQ][uU][eE][nN][cC][eE]"
},
"named": false,
"value": "SEQUENCE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
"named": false,
"value": "TABLE"
}
]
},
{
"type": "BLANK"
}
]
}
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][oO]"
},
"named": false,
"value": "TO"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[gG][rR][oO][uU][pP]"
},
"named": false,
"value": "GROUP"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[pP][uU][bB][lL][iI][cC]"
},
"named": false,
"value": "PUBLIC"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[wW][iI][tT][hH]"
},
{
"type": "PATTERN",
"value": "[gG][rR][aA][nN][tT]"
},
{
"type": "PATTERN",
"value": "[oO][pP][tT][iI][oO][nN]"
}
]
},
"named": false,
"value": "WITH_GRANT_OPTION"
},
{
"type": "BLANK"
}
]
}
]
},
"create_domain_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
{
"type": "PATTERN",
"value": "[dD][oO][mM][aA][iI][nN]"
}
]
},
"named": false,
"value": "CREATE_DOMAIN"
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][sS]"
},
"named": false,
"value": "AS"
},
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "null_constraint"
},
{
"type": "SYMBOL",
"name": "check_constraint"
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"create_type_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
{
"type": "PATTERN",
"value": "[tT][yY][pP][eE]"
}
]
},
"named": false,
"value": "CREATE_TYPE"
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][sS]"
},
"named": false,
"value": "AS"
},
{
"type": "SYMBOL",
"name": "parameters"
}
]
},
"create_index_with_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][iI][tT][hH]"
},
"named": false,
"value": "WITH"
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "storage_parameter",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
}
]
},
"create_index_include_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][cC][lL][uU][dD][eE]"
},
"named": false,
"value": "INCLUDE"
},
{
"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": ")"
}
]
},
"create_index_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": "unique_constraint"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][dD][eE][xX]"
},
"named": false,
"value": "INDEX"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "_identifier"
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][nN]"
},
"named": false,
"value": "ON"
},
{
"type": "FIELD",
"name": "table_name",
"content": {
"type": "SYMBOL",
"name": "_identifier"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "using_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "index_table_parameters"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "create_index_include_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "create_index_with_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "where_clause"
},
{
"type": "BLANK"
}
]
}
]
},
"table_column": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "_identifier"
}
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_type"
}
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "column_default"
},
{
"type": "SYMBOL",
"name": "primary_key_constraint"
},
{
"type": "SYMBOL",
"name": "check_constraint"
},
{
"type": "SYMBOL",
"name": "references_constraint"
},
{
"type": "SYMBOL",
"name": "unique_constraint"
},
{
"type": "SYMBOL",
"name": "null_constraint"
},
{
"type": "SYMBOL",
"name": "named_constraint"
},
{
"type": "SYMBOL",
"name": "direction_constraint"
},
{
"type": "SYMBOL",
"name": "auto_increment_constraint"
},
{
"type": "SYMBOL",
"name": "time_zone_constraint"
}
]
}
}
]
},
"auto_increment_constraint": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][uU][tT][oO][__][iI][nN][cC][rR][eE][mM][eE][nN][tT]"
},
"named": false,
"value": "AUTO_INCREMENT"
},
"direction_constraint": {
"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"
}
]
},
"time_zone_constraint": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][iI][tT][hH]"
},
"named": false,
"value": "WITH"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][iI][tT][hH][oO][uU][tT]"
},
"named": false,
"value": "WITHOUT"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[tT][iI][mM][eE]"
},
{
"type": "PATTERN",
"value": "[zZ][oO][nN][eE]"
}
]
},
"named": false,
"value": "TIME_ZONE"
}
]
},
"named_constraint": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "CONSTRAINT"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"_column_default_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_parenthesized_expression"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "function_call"
}
]
},
"column_default": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][eE][fF][aA][uU][lL][tT]"
},
"named": false,
"value": "DEFAULT"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_column_default_expression"
},
{
"type": "SYMBOL",
"name": "type_cast"
}
]
}
]
},
"table_parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "table_column"
},
{
"type": "SYMBOL",
"name": "_table_constraint"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "table_column"
},
{
"type": "SYMBOL",
"name": "_table_constraint"
}
]
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"mode": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
{
"type": "PATTERN",
"value": "[dD][eE][fF][eE][rR][rR][aA][bB][lL][eE]"
}
]
},
"named": false,
"value": "NOT_DEFERRABLE"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][eE][fF][eE][rR][rR][aA][bB][lL][eE]"
},
"named": false,
"value": "DEFERRABLE"
}
]
},
"initial_mode": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][iI][tT][iI][aA][lL][lL][yY]"
},
"named": false,
"value": "INITIALLY"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[dD][eE][fF][eE][rR][rR][eE][dD]"
},
"named": false,
"value": "DEFERRED"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][mM][mM][eE][dD][iI][aA][tT][eE]"
},
"named": false,
"value": "IMMEDIATE"
}
]
}
]
},
"_table_constraint": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][oO][nN][sS][tT][rR][aA][iI][nN][tT]"
},
"named": false,
"value": "CONSTRAINT"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "_identifier"
}
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "table_constraint_foreign_key"
},
"named": true,
"value": "foreign_key"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "table_constraint_unique"
},
"named": true,
"value": "unique"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "table_constraint_primary_key"
},
"named": true,
"value": "primary_key"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "table_constraint_check"
},
"named": true,
"value": "check"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "table_constraint_exclude"
},
"named": true,
"value": "exclude"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "mode"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "initial_mode"
},
{
"type": "BLANK"
}
]
}
]
},
"table_constraint_check": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][hH][eE][cC][kK]"
},
"named": false,
"value": "CHECK"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"op_class": {
"type": "SYMBOL",
"name": "_identifier"
},
"exclude_entry": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "op_class"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[wW][iI][tT][hH]"
},
"named": false,
"value": "WITH"
},
{
"type": "SYMBOL",
"name": "binary_operator"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"table_constraint_exclude": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[eE][xX][cC][lL][uU][dD][eE]"
},
"named": false,
"value": "EXCLUDE"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][sS][iI][nN][gG]"
},
"named": false,
"value": "USING"
},
{
"type": "SYMBOL",
"name": "_identifier"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "exclude_entry"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "exclude_entry"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"table_constraint_foreign_key": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[fF][oO][rR][eE][iI][gG][nN]"
},
{
"type": "PATTERN",
"value": "[kK][eE][yY]"
}
]
},
"named": false,
"value": "FOREIGN_KEY"
},
{
"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": "SYMBOL",
"name": "references_constraint"
}
]
},
"table_constraint_unique": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][nN][iI][qQ][uU][eE]"
},
"named": false,
"value": "UNIQUE"
},
{
"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": ")"
}
]
},
"table_constraint_primary_key": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[pP][rR][iI][mM][aA][rR][yY]"
},
{
"type": "PATTERN",
"value": "[kK][eE][yY]"
}
]
},
"named": false,
"value": "PRIMARY_KEY"
},
{
"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": ")"
}
]
},
"primary_key_constraint": {
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[pP][rR][iI][mM][aA][rR][yY]"
},
{
"type": "PATTERN",
"value": "[kK][eE][yY]"
}
]
},
"named": false,
"value": "PRIMARY_KEY"
},
"create_table_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][rR][eE][aA][tT][eE]"
},
"named": false,
"value": "CREATE"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][eE][mM][pP][oO][rR][aA][rR][yY]"
},
"named": false,
"value": "TEMPORARY"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[tT][aA][bB][lL][eE]"
},
"named": false,
"value": "TABLE"
},
{
"type": "CHOICE",
"members": [
{
"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"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "SYMBOL",
"name": "table_parameters"
}
]
},
"using_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][sS][iI][nN][gG]"
},
"named": false,
"value": "USING"
},
{
"type": "FIELD",
"name": "method",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
}
]
},
"index_table_parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "ordered_expression"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "op_class"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "ordered_expression"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "op_class"
},
{
"type": "BLANK"
}
]
}
]
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"select_statement": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "select_clause"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "from_clause"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "join_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": "order_by_clause"
},
{
"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": "SYMBOL",
"name": "group_by_clause_body"
}
]
},
"order_by_clause_body": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
"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"
}
]
},
"_aliased_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][sS]"
},
"named": false,
"value": "AS"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"_aliasable_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_aliased_expression"
},
"named": true,
"value": "alias"
}
]
},
"select_clause_body": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_aliasable_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_aliasable_expression"
}
]
}
}
]
},
"select_clause": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][lL][eE][cC][tT]"
},
"named": false,
"value": "SELECT"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "select_clause_body"
},
{
"type": "BLANK"
}
]
}
]
}
},
"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": "_aliasable_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_aliasable_expression"
}
]
}
}
]
}
]
},
"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"
}
]
}
]
}
]
}
]
},
"join_clause": {
"type": "SEQ",
"members": [
{
"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": "_identifier"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][nN]"
},
"named": false,
"value": "ON"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"select_subexpression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "select_statement"
},
{
"type": "STRING",
"value": ")"
}
]
},
"update_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][pP][dD][aA][tT][eE]"
},
"named": false,
"value": "UPDATE"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "set_clause"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "where_clause"
},
{
"type": "BLANK"
}
]
}
]
},
"set_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[sS][eE][tT]"
},
"named": false,
"value": "SET"
},
{
"type": "SYMBOL",
"name": "set_clause_body"
}
]
},
"set_clause_body": {
"type": "SEQ",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "assigment_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "assigment_expression"
}
]
}
}
]
}
]
},
"assigment_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "="
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"insert_statement": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][sS][eE][rR][tT]"
},
"named": false,
"value": "INSERT"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][tT][oO]"
},
"named": false,
"value": "INTO"
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "values_clause"
},
{
"type": "SYMBOL",
"name": "select_statement"
}
]
}
]
},
"values_clause": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[vV][aA][lL][uU][eE][sS]"
},
"named": false,
"value": "VALUES"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "values_clause_body"
},
{
"type": "STRING",
"value": ")"
}
]
},
"values_clause_body": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
"in_expression": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
"named": false,
"value": "NOT"
},
{
"type": "BLANK"
}
]
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN]"
},
"named": false,
"value": "IN"
},
{
"type": "SYMBOL",
"name": "tuple"
}
]
}
},
"tuple": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "elements",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"references_constraint": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][eE][fF][eE][rR][eE][nN][cC][eE][sS]"
},
"named": false,
"value": "REFERENCES"
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "CHOICE",
"members": [
{
"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": ")"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "on_update_action"
},
{
"type": "SYMBOL",
"name": "on_delete_action"
}
]
}
}
]
},
"on_update_action": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[oO][nN]"
},
{
"type": "PATTERN",
"value": "[uU][pP][dD][aA][tT][eE]"
}
]
},
"named": false,
"value": "ON_UPDATE"
},
{
"type": "FIELD",
"name": "action",
"content": {
"type": "SYMBOL",
"name": "_constraint_action"
}
}
]
},
"on_delete_action": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[oO][nN]"
},
{
"type": "PATTERN",
"value": "[dD][eE][lL][eE][tT][eE]"
}
]
},
"named": false,
"value": "ON_DELETE"
},
{
"type": "FIELD",
"name": "action",
"content": {
"type": "SYMBOL",
"name": "_constraint_action"
}
}
]
},
"_constraint_action": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[rR][eE][sS][tT][rR][iI][cC][tT]"
},
"named": false,
"value": "RESTRICT"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][aA][sS][cC][aA][dD][eE]"
},
"named": false,
"value": "CASCADE"
},
{
"type": "ALIAS",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[sS][eE][tT]"
},
{
"type": "PATTERN",
"value": "[nN][uU][lL][lL]"
}
]
},
"named": false,
"value": "SET_NULL"
}
]
},
"unique_constraint": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[uU][nN][iI][qQ][uU][eE]"
},
"named": false,
"value": "UNIQUE"
},
"null_constraint": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
"named": false,
"value": "NOT"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "NULL"
}
]
},
"check_constraint": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[cC][hH][eE][cC][kK]"
},
"named": false,
"value": "CHECK"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"_constraint": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "null_constraint"
},
{
"type": "SYMBOL",
"name": "check_constraint"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "check_constraint"
},
{
"type": "BLANK"
}
]
}
]
},
"parameter": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "SYMBOL",
"name": "constrained_type"
}
]
}
]
},
"parameters": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "parameter"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "parameter"
}
]
}
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"function_call": {
"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": "SYMBOL",
"name": "_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"_parenthesized_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": ")"
}
]
},
"is_expression": {
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][sS]"
},
"named": false,
"value": "IS"
},
{
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
"named": false,
"value": "NOT"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "NULL"
},
{
"type": "SYMBOL",
"name": "TRUE"
},
{
"type": "SYMBOL",
"name": "FALSE"
},
{
"type": "SYMBOL",
"name": "distinct_from"
}
]
}
]
}
},
"distinct_from": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"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": "SYMBOL",
"name": "_expression"
}
]
}
},
"boolean_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 7,
"content": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
"named": false,
"value": "NOT"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[aA][nN][dD]"
},
"named": false,
"value": "AND"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
},
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[oO][rR]"
},
"named": false,
"value": "OR"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
}
}
]
},
"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"
},
"number": {
"type": "PATTERN",
"value": "\\d+"
},
"_unquoted_identifier": {
"type": "PATTERN",
"value": "[a-zA-Z0-9_]+"
},
"_quoted_identifier": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "`"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "PATTERN",
"value": "[^`]*"
}
},
{
"type": "STRING",
"value": "`"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "PATTERN",
"value": "(\"\"|[^\"])*"
}
},
{
"type": "STRING",
"value": "\""
}
]
}
]
},
"identifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_unquoted_identifier"
},
{
"type": "SYMBOL",
"name": "_quoted_identifier"
}
]
},
"dotted_name": {
"type": "PREC_LEFT",
"value": 8,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
}
},
"_identifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "dotted_name"
}
]
},
"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": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "(''|[^'])*"
},
"named": true,
"value": "content"
}
},
{
"type": "STRING",
"value": "'"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_dollar_quoted_string_tag"
},
{
"type": "FIELD",
"name": "content",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_dollar_quoted_string_content"
},
"named": true,
"value": "content"
}
},
{
"type": "SYMBOL",
"name": "_dollar_quoted_string_end_tag"
}
]
}
]
},
"field_access": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "->>"
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
"ordered_expression": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"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"
}
]
}
}
]
},
"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"
}
]
},
"type_cast": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_parenthesized_expression"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "function_call"
}
]
},
{
"type": "STRING",
"value": "::"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "_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": "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": "PREC",
"value": 7,
"content": {
"type": "SEQ",
"members": [
{
"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": "operand",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
"binary_expression": {
"type": "CHOICE",
"members": [
{
"type": "PREC_LEFT",
"value": 6,
"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": 5,
"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": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 4,
"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": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": 3,
"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": "STRING",
"value": "!~"
},
{
"type": "STRING",
"value": "~*"
},
{
"type": "STRING",
"value": "!~*"
}
]
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
}
]
},
"binary_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "&&"
},
{
"type": "STRING",
"value": "||"
}
]
},
"asterisk_expression": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "STRING",
"value": ".*"
}
]
}
]
},
"interval_expression": {
"type": "SEQ",
"members": [
{
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[iI][nN][tT][eE][rR][vV][aA][lL]"
},
"named": false,
"value": "INTERVAL"
}
}
},
{
"type": "SYMBOL",
"name": "string"
}
]
},
"argument_reference": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "PATTERN",
"value": "\\d+"
}
]
},
"_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "interval_expression"
},
{
"type": "SYMBOL",
"name": "function_call"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "field_access"
},
{
"type": "SYMBOL",
"name": "TRUE"
},
{
"type": "SYMBOL",
"name": "FALSE"
},
{
"type": "SYMBOL",
"name": "NULL"
},
{
"type": "SYMBOL",
"name": "asterisk_expression"
},
{
"type": "SYMBOL",
"name": "_identifier"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "in_expression"
},
{
"type": "SYMBOL",
"name": "is_expression"
},
{
"type": "SYMBOL",
"name": "boolean_expression"
},
{
"type": "SYMBOL",
"name": "_parenthesized_expression"
},
{
"type": "SYMBOL",
"name": "type_cast"
},
{
"type": "SYMBOL",
"name": "unary_expression"
},
{
"type": "SYMBOL",
"name": "binary_expression"
},
{
"type": "SYMBOL",
"name": "array_element_access"
},
{
"type": "SYMBOL",
"name": "argument_reference"
},
{
"type": "SYMBOL",
"name": "select_subexpression"
}
]
}
},
"extras": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "PATTERN",
"value": "[\\s\\f\\uFEFF\\u2060\\u200B]|\\\\\\r?\\n"
}
],
"conflicts": [],
"precedences": [],
"externals": [
{
"type": "SYMBOL",
"name": "_dollar_quoted_string_tag"
},
{
"type": "SYMBOL",
"name": "_dollar_quoted_string_content"
},
{
"type": "SYMBOL",
"name": "_dollar_quoted_string_end_tag"
}
],
"inline": [],
"supertypes": []
}