You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/11/14 22:31:30 UTC

svn commit: r1201915 - in /cassandra/branches/cassandra-1.0/pylib/cqlshlib: cqlhandling.py pylexotron.py

Author: jbellis
Date: Mon Nov 14 21:31:30 2011
New Revision: 1201915

URL: http://svn.apache.org/viewvc?rev=1201915&view=rev
Log:
update cqlsh lexer to handle counter increments
patch by Paul Cannon; reviewed by jbellis for CASSANDRA-3493

Modified:
    cassandra/branches/cassandra-1.0/pylib/cqlshlib/cqlhandling.py
    cassandra/branches/cassandra-1.0/pylib/cqlshlib/pylexotron.py

Modified: cassandra/branches/cassandra-1.0/pylib/cqlshlib/cqlhandling.py
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/pylib/cqlshlib/cqlhandling.py?rev=1201915&r1=1201914&r2=1201915&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/pylib/cqlshlib/cqlhandling.py (original)
+++ cassandra/branches/cassandra-1.0/pylib/cqlshlib/cqlhandling.py Mon Nov 14 21:31:30 2011
@@ -189,7 +189,7 @@ JUNK ::= /([ \t\r\f\v]+|(--|[/][/])[^\n\
 <star> ::=          "*" ;
 <range> ::=         ".." ;
 <endtoken> ::=      ";" ;
-<op> ::=            /[=,().]/ ;
+<op> ::=            /[-+=,().]/ ;
 <cmp> ::=           /[<>]=?/ ;
 
 <unclosedString>  ::= /'([^']|'')*/ ;
@@ -267,7 +267,7 @@ syntax_rules += r'''
 <selectWhereClause> ::= <relation> ("AND" <relation>)*
                       | keyname=<colname> "IN" "(" <term> ("," <term>)* ")"
                       ;
-<relation> ::= [rel_lhs]=<colname> ("=" | "<" | ">" | "<=" | ">=") <term>
+<relation> ::= [rel_lhs]=<colname> ("=" | "<" | ">" | "<=" | ">=") <colname>
              ;
 <whatToSelect> ::= colname=<colname> ("," colname=<colname>)*
                  | ("FIRST" <integer>)? "REVERSED"? (rangestart=<colname> ".." rangeend=<colname>
@@ -358,8 +358,8 @@ syntax_rules += r'''
                         "SET" <assignment> ( "," <assignment> )*
                         "WHERE" <updateWhereClause>
                     ;
-<assignment> ::= updatecol=<colname> "=" update_rhs=<term>
-                                         ( counterop=( "+" | "-" ) <term> )?
+<assignment> ::= updatecol=<colname> "=" update_rhs=<colname>
+                                         ( counterop=( "+" | "-"? ) <integer> )?
                ;
 <updateWhereClause> ::= updatefiltercol=<colname> "=" <term>
                       | updatefilterkey=<colname> filter_in="IN" "(" <term> ( "," <term> )* ")"

Modified: cassandra/branches/cassandra-1.0/pylib/cqlshlib/pylexotron.py
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/pylib/cqlshlib/pylexotron.py?rev=1201915&r1=1201914&r2=1201915&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/pylib/cqlshlib/pylexotron.py (original)
+++ cassandra/branches/cassandra-1.0/pylib/cqlshlib/pylexotron.py Mon Nov 14 21:31:30 2011
@@ -88,6 +88,10 @@ class ParseContext:
         return self.__class__(self.ruleset, self.bindings, self.matched,
                               self.remainder, newname)
 
+    def __repr__(self):
+        return '<%s matched=%r remainder=%r prodname=%r>' % (self.__class__.__name__, self.matched, self.remainder,
+                                                             self.productionname)
+
 class matcher:
     def __init__(self, arg):
         self.arg = arg