mirror of https://github.com/Wilfred/difftastic/
5680 lines
131 KiB
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": []
|
|
}
|
|
|