Unified Query Plan Representation
We adopt Extend Backus Naur Form (EBNF), a metasyntax notation, to formally define our unified representation of query plans.
plan:
plan ::= tree? properties
tree:
tree ::= node ( '--children-->' '{' tree ( ',' tree )* '}' )?
referenced by:
- plan
- tree
node:
node ::= operation properties
referenced by:
- tree
operation:
operation
::= 'Operation' ':' operation_category '->' operation_identifier
referenced by:
- node
properties:
properties
::= ( property ( ',' property )* )?
referenced by:
- node
- plan
property:
property ::= property_category '->' property_identifier ':' value
referenced by:
- properties
operation_category:
operation_category
::= 'Producer'
| 'Combinator'
| 'Join'
| 'Folder'
| 'Executor'
| 'Projector'
| 'Consumer'
referenced by:
- operation
property_category:
property_category
::= 'Cardinality'
| 'Cost'
| 'Configuration'
| 'Status'
referenced by:
- property
operation_identifier:
operation_identifier
::= keyword
referenced by:
- operation
property_identifier:
property_identifier
::= keyword
referenced by:
- property
keyword:
keyword ::= letter ( letter | digit | '_' )*
referenced by:
- operation_identifier
- property_identifier
value:
value ::= string
| number
| boolean
| 'null'
referenced by:
- property
string:
string ::= '"' ( letter | digit )* '"'
referenced by:
- value
number:
number ::= '-'? digit+
referenced by:
- value
boolean:
boolean ::= 'true'
| 'false'
referenced by:
- value
letter:
letter ::= [a-zA-Z]
referenced by:
- keyword
- string
## generated by RR - Railroad Diagram Generator