Author: jbellis
Date: Tue Apr 13 02:12:29 2010
New Revision: 933463
URL: http://svn.apache.org/viewvc?rev=933463&view=rev
Log:
merge from 0.6
Modified:
cassandra/trunk/ (props changed)
cassandra/trunk/CHANGES.txt
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
(props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
(props changed)
cassandra/trunk/src/java/org/apache/cassandra/db/filter/QueryFilter.java
cassandra/trunk/test/system/test_thrift_server.py
Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Apr 13 02:12:29 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6:922689-933295
+/cassandra/branches/cassandra-0.6:922689-933419
/incubator/cassandra/branches/cassandra-0.3:774578-796573
/incubator/cassandra/branches/cassandra-0.4:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5:888872-915439
Modified: cassandra/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=933463&r1=933462&r2=933463&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Tue Apr 13 02:12:29 2010
@@ -22,6 +22,8 @@ dev
locality comparisons to work (CASSANDRA-955)
* nodes with IPv6 (and no IPv4) addresses could not join cluster
(CASSANDRA-969)
+ * Retrieve the correct number of undeleted columns, if any, from
+ a supercolumn in a row that had been deleted previously (CASSANDRA-920)
0.6.0-RC1
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Apr 13 02:12:29 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-933295
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-933419
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Cassandra.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Cassandra.java:888872-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Apr 13 02:12:29 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-933295
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-933419
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Column.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/Column.java:888872-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Apr 13 02:12:29 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-933295
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-933419
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:888872-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Apr 13 02:12:29 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-933295
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-933419
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:888872-903502
Propchange:
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Apr 13 02:12:29 2010
@@ -1,4 +1,4 @@
-/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-933295
+/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-933419
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198
/incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:810145-834239,834349-834350
/incubator/cassandra/branches/cassandra-0.5/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:888872-903502
Modified:
cassandra/trunk/src/java/org/apache/cassandra/db/filter/QueryFilter.java
URL:
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/filter/QueryFilter.java?rev=933463&r1=933462&r2=933463&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/filter/QueryFilter.java
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/filter/QueryFilter.java
Tue Apr 13 02:12:29 2010
@@ -109,7 +109,17 @@ public class QueryFilter
{
IColumn c = curCF.getSortedColumns().iterator().next();
if (superFilter != null)
+ {
+ // filterSuperColumn only looks at immediate parent (the
supercolumn) when determining if a subcolumn
+ // is still live, i.e., not shadowed by the parent's
tombstone. so, bump it up temporarily to the tombstone
+ // time of the cf, if that is greater.
+ long deletedAt = c.getMarkedForDeleteAt();
+ if (returnCF.getMarkedForDeleteAt() > deletedAt)
+
((SuperColumn)c).markForDeleteAt(c.getLocalDeletionTime(),
returnCF.getMarkedForDeleteAt());
+
c = filter.filterSuperColumn((SuperColumn)c, gcBefore);
+ ((SuperColumn)c).markForDeleteAt(c.getLocalDeletionTime(),
deletedAt); // reset sc tombstone time to what it should be
+ }
curCF.clear();
return c;
}
Modified: cassandra/trunk/test/system/test_thrift_server.py
URL:
http://svn.apache.org/viewvc/cassandra/trunk/test/system/test_thrift_server.py?rev=933463&r1=933462&r2=933463&view=diff
==============================================================================
--- cassandra/trunk/test/system/test_thrift_server.py (original)
+++ cassandra/trunk/test/system/test_thrift_server.py Tue Apr 13 02:12:29 2010
@@ -910,6 +910,20 @@ class TestMutations(ThriftTester):
client.batch_mutate('Keyspace1', mutation_map, ConsistencyLevel.ONE)
_expect_missing(lambda: client.get('Keyspace1', 'key1',
ColumnPath('Super1', 'sc1'), ConsistencyLevel.ONE))
+ def test_super_reinsert(self):
+ for x in xrange(3):
+ client.insert('Keyspace1', 'key1', ColumnPath('Super1', 'sc2',
_i64(x)), 'value', 1, ConsistencyLevel.ONE)
+
+ client.remove('Keyspace1', 'key1', ColumnPath('Super1'), 2,
ConsistencyLevel.ONE)
+
+ for x in xrange(3):
+ client.insert('Keyspace1', 'key1', ColumnPath('Super1', 'sc2',
_i64(x + 3)), 'value', 3, ConsistencyLevel.ONE)
+
+ for n in xrange(1, 4):
+ p = SlicePredicate(slice_range=SliceRange('', '', False, n))
+ slice = client.get_slice('Keyspace1', 'key1',
ColumnParent('Super1', 'sc2'), p, ConsistencyLevel.ONE)
+ assert len(slice) == n, "expected %s results; found %s" % (n,
slice)
+
def test_describe_keyspace(self):
""" Test keyspace description """
kspaces = client.describe_keyspaces()
@@ -971,4 +985,4 @@ class TestMutations(ThriftTester):
assert 'RenameColumnFamily' not in ks1
assert 'NewColumnFamily' not in ks1
assert 'Standard1' in ks1
-
\ No newline at end of file
+