Author: eevans
Date: Wed Mar  9 22:00:12 2011
New Revision: 1080021

URL: http://svn.apache.org/viewvc?rev=1080021&view=rev
Log:
uuid term type (hyphenated hex string)

Patch by eevans for CASSANDRA-2027

Modified:
    cassandra/trunk/drivers/py/cql/marshal.py
    cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g
    cassandra/trunk/src/java/org/apache/cassandra/cql/Term.java
    cassandra/trunk/test/conf/log4j-server.properties
    cassandra/trunk/test/system/test_cql.py

Modified: cassandra/trunk/drivers/py/cql/marshal.py
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/drivers/py/cql/marshal.py?rev=1080021&r1=1080020&r2=1080021&view=diff
==============================================================================
--- cassandra/trunk/drivers/py/cql/marshal.py (original)
+++ cassandra/trunk/drivers/py/cql/marshal.py Wed Mar  9 22:00:12 2011
@@ -58,7 +58,7 @@ def marshal(term):
         if term.version == 1:
             return "timeuuid(\"%s\")" % str(term)
         else:
-            return "uuid(\"%s\")" % str(term)
+            return str(term)
     else:
         return str(term)
         

Modified: cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g?rev=1080021&r1=1080020&r2=1080021&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g Wed Mar  9 22:00:12 
2011
@@ -266,11 +266,11 @@ comparatorType
     ;
 
 term returns [Term item]
-    : ( t=timeuuid | t=uuid | t=literal ) { $item = t; }
+    : ( t=timeuuid | t=literal ) { $item = t; }
     ;
 
 literal returns [Term term]
-    : ( t=STRING_LITERAL | t=LONG | t=INTEGER | t=UNICODE ) { $term = new 
Term($t.text, $t.type); }
+    : ( t=STRING_LITERAL | t=LONG | t=INTEGER | t=UNICODE | t=UUID ) { $term = 
new Term($t.text, $t.type); }
     ;
 
 termList returns [List<Term> items]
@@ -298,10 +298,6 @@ truncateStatement returns [String cfam]
 endStmnt
     : (EOF | ';')
     ;
-
-uuid returns [Term term]
-    : 'uuid(' uuidstr=STRING_LITERAL ')' { return new Term($uuidstr.text, 
TermType.UUID); }
-    ;
     
 timeuuid returns [Term term]
     : 'timeuuid(' uuidstr=( STRING_LITERAL | INTEGER | LONG )? ')' { return 
new Term($uuidstr.text, TermType.TIMEUUID); }
@@ -391,6 +387,10 @@ fragment DIGIT
 fragment LETTER
     : ('A'..'Z' | 'a'..'z')
     ;
+    
+fragment HEX
+    : ('A'..'F' | 'a'..'f' | '0'..'9')
+    ;
 
 RANGEOP
     : '..'
@@ -429,6 +429,14 @@ COMPIDENT
 UNICODE
     : 'u' STRING_LITERAL
     ;
+    
+UUID
+    : HEX HEX HEX HEX HEX HEX HEX HEX '-'
+      HEX HEX HEX HEX '-'
+      HEX HEX HEX HEX '-'
+      HEX HEX HEX HEX '-'
+      HEX HEX HEX HEX HEX HEX HEX HEX HEX HEX HEX HEX
+    ;
 
 WS
     : (' ' | '\t' | '\n' | '\r')+ { $channel = HIDDEN; }

Modified: cassandra/trunk/src/java/org/apache/cassandra/cql/Term.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cql/Term.java?rev=1080021&r1=1080020&r2=1080021&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cql/Term.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cql/Term.java Wed Mar  9 
22:00:12 2011
@@ -209,6 +209,8 @@ enum TermType
             return INTEGER;
         else if (type == CqlParser.UNICODE)
             return UNICODE;
+        else if (type == CqlParser.UUID)
+            return UUID;
         
         // FIXME: handled scenario that should never occur.
         return null;

Modified: cassandra/trunk/test/conf/log4j-server.properties
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/conf/log4j-server.properties?rev=1080021&r1=1080020&r2=1080021&view=diff
==============================================================================
--- cassandra/trunk/test/conf/log4j-server.properties (original)
+++ cassandra/trunk/test/conf/log4j-server.properties Wed Mar  9 22:00:12 2011
@@ -15,7 +15,7 @@
 # limitations under the License.
 
 
-log4j.rootLogger=DEBUG,R
+log4j.rootLogger=TRACE,R
 
 # rolling log file ("system.log
 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

Modified: cassandra/trunk/test/system/test_cql.py
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/test/system/test_cql.py?rev=1080021&r1=1080020&r2=1080021&view=diff
==============================================================================
--- cassandra/trunk/test/system/test_cql.py (original)
+++ cassandra/trunk/test/system/test_cql.py Wed Mar  9 22:00:12 2011
@@ -436,13 +436,9 @@ class TestCql(ThriftTester):
         "store and retrieve lexical uuids"
         conn = init()
         uid = uuid.uuid4()
-        conn.execute("""
-            UPDATE Standard2 SET uuid('%s') = 10 WHERE KEY = 'uuidtest'
-        """ % str(uid))
+        conn.execute("UPDATE Standard2 SET ? = 10 WHERE KEY = 'uuidtest'", uid)
         
-        r = conn.execute("""
-            SELECT uuid('%s') FROM Standard2 WHERE KEY = 'uuidtest'
-        """ % str(uid))
+        r = conn.execute("SELECT ? FROM Standard2 WHERE KEY = 'uuidtest'", uid)
         assert r[0].columns[0].name == uid.bytes
         
         # TODO: slices of uuids from cf w/ LexicalUUIDType comparator


Reply via email to