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