; ; Tarantool SQL parser is implemented entirely on the client side. ; This BNF provides a reference of the supported subset of ; SQL, to which all clients are strongly encouraged ; to stick. ; ; Convention: UPPERCASE letters are used for terminals and literals. ; Lowercase letters are used for . SQL is ; case-insensitive, so this convention is present only to improve ; legibility of the BNF. ; ; Tarantool features not supported in SQL: ; - multipart keys ; - update operations, except SET ; - all index-specific queries, such as range queries, bitset ; expression evaluation, iteration. These are only available ; in Lua. ::= | | | | ::= SELECT * FROM ::= WHERE ::= WHERE ::= = ::= [{OR }+] ; LIMIT is optional ::= | LIMIT NUM[, NUM] ::= ( [{, }+]) ::= = [{, = }+] ::= STR | NUM ::= ID ; Only integer numbers, optionally signed, are supported NUM ::= [+-]?[0-9]+ ; Strings must be single-quoted STR ::= '.*' ; Identifiers must be standard SQL, but end with digits. ; These digits are used to infer the namespace or index id. ID ::= [a-z_]+[0-9]+ ; vim: syntax=bnf