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
+        


Reply via email to