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 >