Author: eevans
Date: Thu Mar 24 22:22:30 2011
New Revision: 1085166
URL: http://svn.apache.org/viewvc?rev=1085166&view=rev
Log:
system test for escaped quotes (+ discovered bug)
Patch by eevans
Modified:
cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g
cassandra/trunk/test/system/test_cql.py
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=1085166&r1=1085165&r2=1085166&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cql/Cql.g Thu Mar 24 22:22:30
2011
@@ -411,7 +411,7 @@ STRING_LITERAL
: '\''
{ StringBuilder b = new StringBuilder(); }
( c=~('\''|'\r'|'\n') { b.appendCodePoint(c);}
- | '\'' '\'' { b.appendCodePoint('"');}
+ | '\'' '\'' { b.appendCodePoint('\'');}
)*
'\''
{ setText(b.toString()); }
Modified: cassandra/trunk/test/system/test_cql.py
URL:
http://svn.apache.org/viewvc/cassandra/trunk/test/system/test_cql.py?rev=1085166&r1=1085165&r2=1085166&view=diff
==============================================================================
--- cassandra/trunk/test/system/test_cql.py (original)
+++ cassandra/trunk/test/system/test_cql.py Thu Mar 24 22:22:30 2011
@@ -570,4 +570,17 @@ class TestCql(ThriftTester):
"returned %d columns, expected %d" % (len(r[0]), 10)
assert r[0][0].name == -10
assert r[0][9].name == -1
+
+ def test_escaped_quotes(self):
+ "reading and writing strings w/ escaped quotes"
+ conn = init()
+ conn.execute("""
+ UPDATE StandardString1 SET 'x''and''y' = z WHERE KEY = ?
+ """, "test_escaped_quotes")
+
+ r = conn.execute("""
+ SELECT 'x''and''y' FROM StandardString1 WHERE KEY = ?
+ """, "test_escaped_quotes")
+ assert (len(r) == 1) and (len(r[0]) == 1), "wrong number of results"
+ assert r[0][0].name == "x\'and\'y"