From 8513f1466850dab69890350588a55ccf54f19843 Mon Sep 17 00:00:00 2001
From: "a.sabirov" <a.sabirov@picodata.io>
Date: Mon, 26 Aug 2024 19:28:51 +0300
Subject: [PATCH] query.ebnf: proofread and edit

---
 doc/sql/query.ebnf | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)

diff --git a/doc/sql/query.ebnf b/doc/sql/query.ebnf
index 683f00bb2..f8b14009c 100644
--- a/doc/sql/query.ebnf
+++ b/doc/sql/query.ebnf
@@ -16,7 +16,7 @@ select      ::= 'SELECT' 'DISTINCT'? projection (',' projection)* 'FROM' scan
                 ('HAVING' expression)?
                 ('ORDER' 'BY' expression ('ASC' | 'DESC')? (',' expression ('ASC' | 'DESC')?)*)?
                 (('UNION' 'ALL'? | 'EXCEPT' 'DISTINCT'?) select)?
-                (LIMIT (unsigned | "ALL" | "NULL"))?
+                ('LIMIT' (unsigned | 'ALL' | 'NULL'))?
 projection  ::= (table '.')? '*' | expression (('AS')? name)? | aggregate
 scan        ::= (table | '(' (query | values) ')') ('AS'? name)?
 expression  ::= ('NOT'* (
@@ -25,11 +25,10 @@ expression  ::= ('NOT'* (
                     | case
                     | cast
                     | current_date
+                    | substr
                     | to_char
                     | to_date
                     | trim
-                    | substr
-                    | '(' expression ')'
                     | 'NOT'? 'EXISTS' '(' (query | values) ')'
                     | '(' (query | values) ')'
                     | '(' expression (',' expression)* ')'
@@ -44,12 +43,12 @@ expression  ::= ('NOT'* (
                     | 'OR'
                 )
                 expression
-aggregate   ::= ('AVG' | 'COUNT' | 'MAX' | 'MIN' | 'SUM' | 'TOTAL') '(' ('DISTINCT'?  expression) ')'
-               | 'GROUP_CONCAT' '(' expression ','  "'" string "'" ')'
+aggregate   ::= ('AVG' | 'COUNT' | 'MAX' | 'MIN' | 'SUM' | 'TOTAL') '(' ('DISTINCT'? expression) ')'
+               | 'GROUP_CONCAT' '(' expression ',' "'" string "'" ')'
 case        ::= 'CASE' expression?
                 ('WHEN' expression 'THEN' expression)+
                 ('ELSE' expression)? 'END'
-cast        ::= ('CAST' '(' expression 'AS' type ')') | (experssion "::" type)
+cast        ::= 'CAST' '(' expression 'AS' type ')' | expression '::' type
 to_char     ::= 'TO_CHAR' '(' expression ',' format ')'
 to_date     ::= 'TO_DATE' '(' expression ',' format ')'
 trim        ::= 'TRIM' '('
@@ -77,7 +76,7 @@ dml         ::= (call | delete | insert | update)
 call        ::= 'CALL' procedure '(' (literal (',' literal)*)? ')'
 delete      ::= 'DELETE' 'FROM' table ('WHERE' expression)?
 insert      ::= 'INSERT' 'INTO' table ('(' column (',' column)* ')')? (query | values)
-                ('ON' 'CONFLICT' 'DO'  ('NOTHING' | 'REPLACE' | 'FAIL'))?
+                ('ON' 'CONFLICT' 'DO' ('NOTHING' | 'REPLACE' | 'FAIL'))?
 update      ::= 'UPDATE' table 'SET'
                 column '=' expression (',' column '=' expression)*
                 ('FROM' scan)? ('WHERE' expression)?
@@ -110,13 +109,12 @@ grant       ::= 'GRANT' (
 ddl         ::= (alter_procedure | create_index | create_procedure | create_table
                 | drop_index | drop_procedure | drop_table | alter_system)
                 ('OPTION' '(' ('TIMEOUT' '=' double)')')?
-alter_system ::= ('ALTER' 'SYSTEM'
-                  (
-                   'RESET' ('ALL' | param_name) |
-                   'SET' param_name ('=' | 'TO') ('DEFAULT' | param_value)
-                  )
-                  ('FOR' ('ALL' 'TIERS' | 'TIER' tier))?
-                 )
+alter_system ::= 'ALTER' 'SYSTEM'
+                    (
+                        'RESET' ('ALL' | param_name)
+                        | 'SET' param_name ('=' | 'TO') ('DEFAULT' | param_value)
+                    )
+                    ('FOR' ('ALL' 'TIERS' | 'TIER' tier))?
 alter_procedure ::= 'ALTER' 'PROCEDURE' procedure ('(' type (',' type)* ')')?
                      'RENAME' 'TO' procedure
 create_index ::= 'CREATE' 'UNIQUE'? 'INDEX' index 'ON' table
@@ -158,7 +156,7 @@ create_table   ::= 'CREATE' 'TABLE' table
                        (',' 'PRIMARY' 'KEY' '(' column (',' column)* ')')?
                    ')'
                    ('USING' ('MEMTX' | 'VINYL'))?
-                   (('DISTRIBUTED' (('BY' '(' column (',' column)*  ')' ('IN' 'TIER' tier)?) | 'GLOBALLY'))?)?
+                   (('DISTRIBUTED' (('BY' '(' column (',' column)* ')' ('IN' 'TIER' tier)?) | 'GLOBALLY'))?)?
 create_user    ::= 'CREATE' 'USER' user 'WITH'? 'PASSWORD' "'" password "'"
                    ('USING' ('CHAP-SHA1' | 'LDAP' | 'MD5'))?
 alter_user     ::= 'ALTER' 'USER' user
-- 
GitLab