I was originally using 0.5.0 but I've reproduced the behavior with 0.5.1 and 0.6.0-beta3.
On Wed, Mar 24, 2010 at 3:00 PM, Jonathan Ellis <jbel...@gmail.com> wrote: > Are you using 0.5.0? Because this sounds like a bug that was fixed in 0.5.1. > > On Mon, Mar 22, 2010 at 5:13 PM, Bob Florian <bflor...@gmail.com> wrote: >> I'm new to Cassandra and have run into a problem that I think is a >> bug, but wanted to get some feedback in case I'm misunderstanding >> something. >> >> I've found that when I delete an entire row in a column family with >> super columns, and then re-insert values with the same row and super >> column keys, the count parameter to the get_slice call no longer works >> properly. Its like it is still counting the deleted columns, but only >> returning the new columns. >> >> The following example uses the Ruby Cassandra client (see link below), >> but I've seen the same behavior with the Java Thrift interface. >> >> 1) First I create a client and insert a super column with three columns: >> >>>> require 'cassandra' >> => true >>>> cc = Cassandra.new('Keyspace1') >> => #<Cassandra:2159536540, @keyspace="Keyspace1", @schema={}, >> @servers=["127.0.0.1:9160"]> >>>> cc.insert(:Super1,'test1',{'bucket1' => {'1' => 'Item 1', '2' => 'Item 2', >>>> '5' => 'Item 5'}}) >> => nil >> >> >> 2) Getting the slice of columns just inserted works with or without >> the count parameter: >> >>>> cc.get(:Super1,'test1','bucket1') >> => #<OrderedHash {"1"=>"Item 1", "2"=>"Item 2", "5"=>"Item 5"}> >> >>>> cc.get(:Super1,'test1','bucket1',:count => 3) >> => #<OrderedHash {"1"=>"Item 1", "2"=>"Item 2", "5"=>"Item 5"}> >> >> >> 3) Now I remove the row: >> >>>> cc.remove(:Super1,'test1') >> => nil >> >> >> 4) And confirm that nothing's left: >>>> cc.get(:Super1,'test1','bucket1') >> => #<OrderedHash {}> >> >> >> 5) Next I insert 3 different columns using the same row and super column >> keys: >> >>>> cc.insert(:Super1,'test1',{'bucket1' => {'3' => 'Item 3', '4' => 'Item 4', >>>> '6' => 'Item 6'}}) >> => nil >> >> >> 6) Getting the slice of columns works correctly with no count parameter: >> >>>> cc.get(:Super1,'test1','bucket1') >> => #<OrderedHash {"6"=>"Item 6", "3"=>"Item 3", "4"=>"Item 4"}> >> >> >> 7) But setting the count parameter to 3 returns fewer than 3 columns: >> >>>> cc.get(:Super1,'test1','bucket1',:count => 3) >> => #<OrderedHash {"3"=>"Item 3"}> >> >> >> 8) Incrementally increasing the count parameter confirms the apparent >> behavior of counting the deleted columns: >> >>>> cc.get(:Super1,'test1','bucket1',:count => 4) >> => #<OrderedHash {"3"=>"Item 3", "4"=>"Item 4"}> >>>> cc.get(:Super1,'test1','bucket1',:count => 5) >> => #<OrderedHash {"3"=>"Item 3", "4"=>"Item 4"}> >> >> >> 9) I have to set the count to 6 to return all 3 columns: >> >>>> cc.get(:Super1,'test1','bucket1',:count => 6) >> => #<OrderedHash {"6"=>"Item 6", "3"=>"Item 3", "4"=>"Item 4"}> >> >> >> The same thing doesn't happen when I remove only the super column key >> ('bucket1'). >> >> Here's the reference to the Ruby client I used for the example, but >> the problem is not client specific. >> http://blog.evanweaver.com/files/doc/fauna/cassandra/files/README_rdoc.html >> >