From 30b1f5f3d32d3c04b921133435b556bfecfc502a Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Mon, 1 Jun 2009 22:16:58 +0000 Subject: [PATCH] add test covering use of column indexes. patch by Jun Rao; reviewed by jbellis for CASSANDRA-210 git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@780853 13f79535-47bb-0310-9956-ffa450edef68 --- test/conf/storage-conf.xml | 2 +- .../org/apache/cassandra/db/TableTest.java | 45 +++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/test/conf/storage-conf.xml b/test/conf/storage-conf.xml index d3220895c8..8409e819bd 100644 --- a/test/conf/storage-conf.xml +++ b/test/conf/storage-conf.xml @@ -28,7 +28,7 @@ 7000 7001 9160 - 256 + 4 7002 build/test/cassandra/system build/test/cassandra/commitlog diff --git a/test/unit/org/apache/cassandra/db/TableTest.java b/test/unit/org/apache/cassandra/db/TableTest.java index b3414dfe67..2f0b3b2870 100644 --- a/test/unit/org/apache/cassandra/db/TableTest.java +++ b/test/unit/org/apache/cassandra/db/TableTest.java @@ -266,6 +266,51 @@ public class TableTest extends CleanupHelper validateGetSliceFromAdvanced(table, ROW); } + @Test + public void testGetSliceFromLarge() throws Throwable + { + Table table = Table.open(TABLE_NAME); + String ROW = "row3"; + RowMutation rm = new RowMutation(TABLE_NAME, ROW); + ColumnFamily cf = new ColumnFamily("Standard1", "Standard"); + for (int i = 1000; i < 2000; i++) + cf.addColumn(new Column("col" + i, ("vvvvvvvvvvvvvvvv" + i).getBytes(), 1L)); + rm.add(cf); + rm.apply(); + // flush to disk + table.getColumnFamilyStore("Standard1").forceBlockingFlush(); + + Row result; + ColumnFamily cfres; + result = table.getSliceFrom(ROW, "Standard1:col1000", true, 3); + cfres = result.getColumnFamily("Standard1"); + assertColumns(cfres, "col1000", "col1001", "col1002"); + assertEquals(new String(cfres.getColumn("col1000").value()), "vvvvvvvvvvvvvvvv1000"); + assertEquals(new String(cfres.getColumn("col1001").value()), "vvvvvvvvvvvvvvvv1001"); + assertEquals(new String(cfres.getColumn("col1002").value()), "vvvvvvvvvvvvvvvv1002"); + + result = table.getSliceFrom(ROW, "Standard1:col1195", true, 3); + cfres = result.getColumnFamily("Standard1"); + assertColumns(cfres, "col1195", "col1196", "col1197"); + assertEquals(new String(cfres.getColumn("col1195").value()), "vvvvvvvvvvvvvvvv1195"); + assertEquals(new String(cfres.getColumn("col1196").value()), "vvvvvvvvvvvvvvvv1196"); + assertEquals(new String(cfres.getColumn("col1197").value()), "vvvvvvvvvvvvvvvv1197"); + + result = table.getSliceFrom(ROW, "Standard1:col1196", false, 3); + cfres = result.getColumnFamily("Standard1"); + assertColumns(cfres, "col1194", "col1195", "col1196"); + assertEquals(new String(cfres.getColumn("col1194").value()), "vvvvvvvvvvvvvvvv1194"); + assertEquals(new String(cfres.getColumn("col1195").value()), "vvvvvvvvvvvvvvvv1195"); + assertEquals(new String(cfres.getColumn("col1196").value()), "vvvvvvvvvvvvvvvv1196"); + + result = table.getSliceFrom(ROW, "Standard1:col1990", true, 3); + cfres = result.getColumnFamily("Standard1"); + assertColumns(cfres, "col1990", "col1991", "col1992"); + assertEquals(new String(cfres.getColumn("col1990").value()), "vvvvvvvvvvvvvvvv1990"); + assertEquals(new String(cfres.getColumn("col1991").value()), "vvvvvvvvvvvvvvvv1991"); + assertEquals(new String(cfres.getColumn("col1992").value()), "vvvvvvvvvvvvvvvv1992"); + } + private void assertColumns(ColumnFamily columnFamily, String... columnFamilyNames) { assertNotNull(columnFamily);