Skip to content
Snippets Groups Projects
Commit 3c9ff0a5 authored by Artur Sabirov's avatar Artur Sabirov
Browse files

query.ebnf: replace with "query" where needed

parent cc3440ce
No related branches found
No related tags found
1 merge request!1414sbroad import
statement ::= explain | ddl | dml | dql | acl | call
explain ::= 'EXPLAIN' ( dml | dql )
dql ::= (cte | values)
dql ::= (query | values)
( 'OPTION' '('
(('VTABLE_MAX_ROWS' | 'SQL_VDBE_MAX_STEPS') '=' unsigned)
(',' (('VTABLE_MAX_ROWS' | 'SQL_VDBE_MAX_STEPS') '=' unsigned))*
')')?
cte ::= ('WITH'
query ::= ('WITH'
cte ('(' column (',' column)* ')')? 'AS' '(' (select | values) ')'
(',' cte ('(' column (',' column)* ')')? 'AS' '(' (select | values) ')')*
)? select
......@@ -18,15 +18,15 @@ select ::= 'SELECT' 'DISTINCT'? projection (',' projection)* 'FROM' scan
('ORDER' 'BY' expression ('ASC' | 'DESC')? (',' expression ('ASC' | 'DESC')?)*)?
(('UNION' 'ALL'? | 'EXCEPT' 'DISTINCT'?) select)?
projection ::= (table '.')? '*' | expression (('AS')? name)? | aggregate
scan ::= (table | '(' (select | values) ')') ('AS'? name)?
scan ::= (table | '(' (query | values) ')') ('AS'? name)?
expression ::= (table '.')? column
| expression ('IS' ('NOT')? 'NULL')
| expression ('OR' | 'AND' | '*' | '/' | '+' | '-' | '=' | '>' | '<' | '>=' | '<=' | ('<>' | '!=')) expression
| expression ('NOT')? 'BETWEEN' expression 'AND' expression
| ('NOT')? 'EXISTS' '(' (select | values) ')'
| expression ('NOT')? 'IN' '(' (select | values) ')'
| ('NOT')? 'EXISTS' '(' (query | values) ')'
| expression ('NOT')? 'IN' '(' (query | values) ')'
| (table '.')? column
| '(' (select | values) ')'
| '(' (query | values) ')'
| literal
| cast
| ('(' (expression(',' expression)*) ')')
......@@ -61,7 +61,7 @@ dml ::= (call | delete | insert | update)
')')?
call ::= 'CALL' procedure '(' literal? (',' literal)* ')'
delete ::= 'DELETE' 'FROM' table ('WHERE' expression)?
insert ::= 'INSERT' 'INTO' table ('(' column (',' column)* ')')? (values | select)
insert ::= 'INSERT' 'INTO' table ('(' column (',' column)* ')')? (query | values)
('ON' 'CONFLICT' 'DO' ('NOTHING' | 'REPLACE' | 'FAIL'))?
update ::= 'UPDATE' table 'SET'
column '=' expression (',' column '=' expression)*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment