You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by bl...@apache.org on 2015/09/09 22:21:59 UTC
[4/4] cassandra git commit: Merge branch cassandra-2.2 into
cassandra-3.0
Merge branch cassandra-2.2 into cassandra-3.0
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cc0038b7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cc0038b7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cc0038b7
Branch: refs/heads/cassandra-3.0
Commit: cc0038b7d196d8cd072931bbf28ad276f7987abf
Parents: e097efc ec4b4d4
Author: blerer <be...@datastax.com>
Authored: Wed Sep 9 22:13:48 2015 +0200
Committer: blerer <be...@datastax.com>
Committed: Wed Sep 9 22:20:58 2015 +0200
----------------------------------------------------------------------
.../validation/entities/CollectionsTest.java | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/cc0038b7/test/unit/org/apache/cassandra/cql3/validation/entities/CollectionsTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/cql3/validation/entities/CollectionsTest.java
index 088b9cf,6266fe7..df8d507
--- a/test/unit/org/apache/cassandra/cql3/validation/entities/CollectionsTest.java
+++ b/test/unit/org/apache/cassandra/cql3/validation/entities/CollectionsTest.java
@@@ -590,81 -585,26 +590,100 @@@ public class CollectionsTest extends CQ
assertInvalid("alter table %s add v set<int>");
}
- /**
- * Test for 9838.
- */
+ @Test
+ public void testDropAndReaddDroppedCollection() throws Throwable
+ {
+ createTable("create table %s (k int primary key, v frozen<set<text>>, x int)");
+ execute("insert into %s (k, v) VALUES (0, {'fffffffff'})");
+ flush();
+ execute("alter table %s drop v");
+ execute("alter table %s add v set<int>");
+ }
+
+ @Test
+ public void testMapWithLargePartition() throws Throwable
+ {
+ Random r = new Random();
+ long seed = System.nanoTime();
+ System.out.println("Seed " + seed);
+ r.setSeed(seed);
+
+ int len = (1024 * 1024)/100;
+ createTable("CREATE TABLE %s (userid text PRIMARY KEY, properties map<int, text>) with compression = {}");
+
+ final int numKeys = 200;
+ for (int i = 0; i < numKeys; i++)
+ {
+ byte[] b = new byte[len];
+ r.nextBytes(b);
+ execute("UPDATE %s SET properties[?] = ? WHERE userid = 'user'", i, new String(b));
+ }
+
+ flush();
+
+ Object[][] rows = getRows(execute("SELECT properties from %s where userid = 'user'"));
+ assertEquals(1, rows.length);
+ assertEquals(numKeys, ((Map) rows[0][0]).size());
+ }
+
+ @Test
+ public void testMapWithTwoSStables() throws Throwable
+ {
+ createTable("CREATE TABLE %s (userid text PRIMARY KEY, properties map<int, text>) with compression = {}");
+
+ final int numKeys = 100;
+ for (int i = 0; i < numKeys; i++)
+ execute("UPDATE %s SET properties[?] = ? WHERE userid = 'user'", i, "prop_" + Integer.toString(i));
+
+ flush();
+
+ for (int i = numKeys; i < 2*numKeys; i++)
+ execute("UPDATE %s SET properties[?] = ? WHERE userid = 'user'", i, "prop_" + Integer.toString(i));
+
+ flush();
+
+ Object[][] rows = getRows(execute("SELECT properties from %s where userid = 'user'"));
+ assertEquals(1, rows.length);
+ assertEquals(numKeys * 2, ((Map) rows[0][0]).size());
+ }
+
+ @Test
+ public void testSetWithTwoSStables() throws Throwable
+ {
+ createTable("CREATE TABLE %s (userid text PRIMARY KEY, properties set<text>) with compression = {}");
+
+ final int numKeys = 100;
+ for (int i = 0; i < numKeys; i++)
+ execute("UPDATE %s SET properties = properties + ? WHERE userid = 'user'", set("prop_" + Integer.toString(i)));
+
+ flush();
+
+ for (int i = numKeys; i < 2*numKeys; i++)
+ execute("UPDATE %s SET properties = properties + ? WHERE userid = 'user'", set("prop_" + Integer.toString(i)));
+
+ flush();
+
+ Object[][] rows = getRows(execute("SELECT properties from %s where userid = 'user'"));
+ assertEquals(1, rows.length);
+ assertEquals(numKeys * 2, ((Set) rows[0][0]).size());
+ }
++
+ @Test
+ public void testUpdateStaticList() throws Throwable
+ {
+ createTable("CREATE TABLE %s (k1 text, k2 text, s_list list<int> static, PRIMARY KEY (k1, k2))");
+
+ execute("insert into %s (k1, k2) VALUES ('a','b')");
+ execute("update %s set s_list = s_list + [0] where k1='a'");
+ assertRows(execute("select s_list from %s where k1='a'"), row(list(0)));
+
+ execute("update %s set s_list[0] = 100 where k1='a'");
+ assertRows(execute("select s_list from %s where k1='a'"), row(list(100)));
+
+ execute("update %s set s_list = s_list + [0] where k1='a'");
+ assertRows(execute("select s_list from %s where k1='a'"), row(list(100, 0)));
+
+ execute("delete s_list[0] from %s where k1='a'");
+ assertRows(execute("select s_list from %s where k1='a'"), row(list(0)));
+ }
-
}