diff --git a/CHANGES.txt b/CHANGES.txt index 6533ef439c..ca88dfdc9a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -109,6 +109,7 @@ Merged from 1.2: * Non-droppable verbs shouldn't be dropped from OTC (CASSANDRA-6980) * Shutdown batchlog executor in SS#drain() (CASSANDRA-7025) * Fix batchlog to account for CF truncation records (CASSANDRA-6999) + * Fix CQLSH parsing of functions and BLOB literals (CASSANDRA-7018) 2.0.6 diff --git a/pylib/cqlshlib/cql3handling.py b/pylib/cqlshlib/cql3handling.py index 8e9f987f94..230fa91591 100644 --- a/pylib/cqlshlib/cql3handling.py +++ b/pylib/cqlshlib/cql3handling.py @@ -159,6 +159,7 @@ JUNK ::= /([ \t\r\f\v]+|(--|[/][/])[^\n\r]*([\n\r]|$)|[/][*].*?[*][/])/ ; ::= /"([^"]|"")*"/ ; ::= /-?[0-9]+\.[0-9]+/ ; ::= /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/ ; + ::= /0x[0-9a-f]+/ ; ::= /[0-9]+/ ; ::= /[a-z][a-z0-9_]*/ ; ::= ":" ; @@ -182,10 +183,15 @@ JUNK ::= /([ \t\r\f\v]+|(--|[/][/])[^\n\r]*([\n\r]|$)|[/][*].*?[*][/])/ ; | | | + | + | ; + ::= "(" ( ( "," )* )? ")" + ; + ::= token="TOKEN" "(" ( "," )* ")" - | + | ; ::= | @@ -207,6 +213,9 @@ JUNK ::= /([ \t\r\f\v]+|(--|[/][/])[^\n\r]*([\n\r]|$)|[/][*].*?[*][/])/ ; ::= "{" ":" ( "," ":" )* "}" ; + ::= + ; + ::= | | @@ -582,13 +591,13 @@ syntax_rules += r''' ; ::= "SELECT" "FROM" cf= - ("WHERE" )? - ("ORDER" "BY" ( "," )* )? - ("LIMIT" limit=)? + ( "WHERE" )? + ( "ORDER" "BY" ( "," )* )? + ( "LIMIT" limit= )? ; - ::= ("AND" )* + ::= ( "AND" )* ; - ::= [rel_lhs]= ("=" | "<" | ">" | "<=" | ">=") + ::= [rel_lhs]= ( "=" | "<" | ">" | "<=" | ">=" ) | token="TOKEN" "(" [rel_tokname]= ( "," [rel_tokname]= )* ")" ("=" | "<" | ">" | "<=" | ">=") @@ -601,7 +610,10 @@ syntax_rules += r''' ::= [colname]= | "WRITETIME" "(" [colname]= ")" | "TTL" "(" [colname]= ")" + | ; + ::= "(" ( ( "," )* )? ")" + ; ::= [ordercol]= ( "ASC" | "DESC" )? ; '''