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