You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ee...@apache.org on 2010/11/12 20:32:48 UTC
svn commit: r1034535 - in /cassandra/trunk:
src/java/org/apache/cassandra/cql/QueryProcessor.java test/system/test_cql.py
Author: eevans
Date: Fri Nov 12 19:32:48 2010
New Revision: 1034535
URL: http://svn.apache.org/viewvc?rev=1034535&view=rev
Log:
backfill missing system tests
Patch by eevans
Modified:
cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java
cassandra/trunk/test/system/test_cql.py
Modified: cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java?rev=1034535&r1=1034534&r2=1034535&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java Fri Nov 12 19:32:48 2010
@@ -25,6 +25,7 @@ import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import java.util.concurrent.TimeoutException;
@@ -243,6 +244,8 @@ public class QueryProcessor
CqlRow avroRow = new CqlRow();
avroRow.key = row.key.key;
avroRow.columns = avroColumns;
+ if (select.isColumnsReversed())
+ Collections.reverse(avroRow.columns);
avroRows.add(avroRow);
}
Modified: cassandra/trunk/test/system/test_cql.py
URL: http://svn.apache.org/viewvc/cassandra/trunk/test/system/test_cql.py?rev=1034535&r1=1034534&r2=1034535&view=diff
==============================================================================
--- cassandra/trunk/test/system/test_cql.py (original)
+++ cassandra/trunk/test/system/test_cql.py Fri Nov 12 19:32:48 2010
@@ -4,8 +4,9 @@ import sys
sys.path.append(join(abspath(dirname(__file__)), '../../drivers/py'))
-from cql import Connection
+from cql import Connection, CQLException
from . import AvroTester
+from avro_utils import assert_raises
def load_sample(dbconn):
dbconn.execute("""
@@ -47,15 +48,59 @@ class TestCql(AvroTester):
def test_select_columns(self):
"retrieve multiple columns"
conn = init()
- r = conn.execute("""
- SELECT "cd1", "col" FROM Standard1 WHERE KEY = "kd"
- """)
+ r = conn.execute('SELECT "cd1", "col" FROM Standard1 WHERE KEY = "kd"')
assert "cd1" in [i['name'] for i in r[0]['columns']]
assert "col" in [i['name'] for i in r[0]['columns']]
def test_select_row_range(self):
"retrieve a range of rows with columns"
conn = init()
+ r = conn.execute('SELECT 4L FROM StandardLong1 WHERE KEY > "ad" AND KEY < "ag";')
+ assert len(r) == 3
+ assert r[0]['key'] == "ad"
+ assert r[1]['key'] == "ae"
+ assert r[2]['key'] == "af"
+ assert len(r[0]['columns']) == 1
+ assert len(r[1]['columns']) == 1
+ assert len(r[2]['columns']) == 1
+
+ def test_select_row_range_with_limit(self):
+ "retrieve a limited range of rows with columns"
+ conn = init()
r = conn.execute("""
- SELECT "col1" FROM StandardLong1 WHERE KEY > "ad" AND KEY < "ag";
+ SELECT 1L,5L,9L FROM StandardLong1 WHERE KEY > "aa" AND KEY < "ag" LIMIT 3
""")
+ assert len(r) == 3
+
+ def test_select_columns_slice(self):
+ "range of columns (slice) by row"
+ conn = init()
+ r = conn.execute('SELECT 1L..3L FROM StandardLong1 WHERE KEY = "aa";')
+ assert len(r) == 1
+ assert r[0]['columns'][0]['value'] == "1"
+ assert r[0]['columns'][1]['value'] == "2"
+ assert r[0]['columns'][2]['value'] == "3"
+
+ def test_select_columns_slice_with_limit(self):
+ "range of columns (slice) by row with limit"
+ conn = init()
+ r = conn.execute('SELECT FIRST 1 1L..3L FROM StandardLong1 WHERE KEY = "aa";')
+ assert len(r) == 1
+ assert len(r[0]['columns']) == 1
+ assert r[0]['columns'][0]['value'] == "1"
+
+ def test_select_columns_slice_reversed(self):
+ "range of columns (slice) by row reversed"
+ conn = init()
+ r = conn.execute('SELECT FIRST 2 REVERSED 3L..1L FROM StandardLong1 WHERE KEY = "aa";')
+ assert len(r) == 1, "%d != 1" % len(r)
+ assert len(r[0]['columns']) == 2
+ assert r[0]['columns'][0]['value'] == "3"
+ assert r[0]['columns'][1]['value'] == "2"
+
+ def test_error_on_multiple_key_by(self):
+ "ensure multiple key-bys in where clause excepts"
+ conn = init()
+ query = 'SELECT "col" FROM Standard1 WHERE KEY = "ka" AND KEY = "kb";'
+ assert_raises(CQLException, conn.execute, query)
+