You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by xe...@apache.org on 2011/11/16 19:50:44 UTC
svn commit: r1202834 - in
/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql: Cql.g
Term.java UpdateStatement.java
Author: xedin
Date: Wed Nov 16 18:50:44 2011
New Revision: 1202834
URL: http://svn.apache.org/viewvc?rev=1202834&view=rev
Log:
Fix to properly support update of the counter with expression like '<field> = <field> - -<num>'
patch by Pavel Yaskevich; reviewed by Paul Canon for CASSANDRA-3418
Modified:
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/Cql.g
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/Term.java
cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/UpdateStatement.java
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/Cql.g
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/Cql.g?rev=1202834&r1=1202833&r2=1202834&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/Cql.g (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/Cql.g Wed Nov 16 18:50:44 2011
@@ -470,6 +470,7 @@ termPairWithOperation[Map<Term, Operatio
| c=term ( '+' v=term { columns.put(key, new Operation(c, org.apache.cassandra.cql.Operation.OperationType.PLUS, v)); }
| op='-'? v=intTerm
{ validateMinusSupplied(op, v, input);
+ if (op != null) v = new Term(-(Long.valueOf(v.getText())), v.getType());
columns.put(key, new Operation(c, org.apache.cassandra.cql.Operation.OperationType.MINUS, v)); } ))
;
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/Term.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/Term.java?rev=1202834&r1=1202833&r2=1202834&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/Term.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/Term.java Wed Nov 16 18:50:44 2011
@@ -54,6 +54,12 @@ public class Term
this.text = text == null ? "" : text;
this.type = type;
}
+
+ public Term(long value, TermType type)
+ {
+ this.text = String.valueOf(value);
+ this.type = type;
+ }
protected Term()
{
Modified: cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/UpdateStatement.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/UpdateStatement.java?rev=1202834&r1=1202833&r2=1202834&view=diff
==============================================================================
--- cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/UpdateStatement.java (original)
+++ cassandra/branches/cassandra-1.0/src/java/org/apache/cassandra/cql/UpdateStatement.java Wed Nov 16 18:50:44 2011
@@ -217,11 +217,6 @@ public class UpdateStatement extends Abs
try
{
value = Long.parseLong(op.b.getText());
-
- if (op.type == OperationType.MINUS)
- {
- if (value > 0) value *= -1;
- }
}
catch (NumberFormatException e)
{