I created it almost a year ago with cassandra-cli. Now show_schema returns:

create column family myCF
  with column_type = 'Standard'
  and comparator = 'UTF8Type'
  and default_validation_class = 'UTF8Type'
  and key_validation_class = 'UTF8Type'
  and read_repair_chance = 0.1
  and dclocal_read_repair_chance = 0.0
  and populate_io_cache_on_flush = false
  and gc_grace = 864000
  and min_compaction_threshold = 4
  and max_compaction_threshold = 12
  and replicate_on_write = true
  and compaction_strategy = 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'
  and caching = 'KEYS_ONLY'
  and bloom_filter_fp_chance = 0.01
  and compression_options = {'sstable_compression' : 'org.apache.cassandra.io.compress.SnappyCompressor'};

"The output looks correct to me. CQL table return values, including null, for all of the selected columns."

I thought that C* had no null values... I use a lot of CF in which only the columns name are filled up and I request a range of column to see which references (like 1228#16866) exists. So I would like those column to simply disappear from the table.


2013/4/28 aaron morton <aaron@thelastpickle.com>
What's your table definition ? 

select '1228#16857','1228#16866','1228#16875','1237#16544','1237#16553'
from myCF where key = 'all';

The output looks correct to me. CQL table return values, including null, for all of the selected columns.


Aaron Morton
Freelance Cassandra Consultant
New Zealand


On 27/04/2013, at 12:48 AM, Sorin Manolache <sorinm@gmail.com> wrote:

On 2013-04-26 11:55, Alain RODRIGUEZ wrote:
Of course:

From CQL 2 (cqlsh -2):

delete '183#16684','183#16714','183#16717' from myCF where key = 'all';

And selecting this data as follow gives me the result above:

select '1228#16857','1228#16866','1228#16875','1237#16544','1237#16553'
from myCF where key = 'all';

From thrift (phpCassa client):

$pool = new
$my_cf= new ColumnFamily($pool, 'myCF', true, true,
ConsistencyLevel::QUORUM, ConsistencyLevel::QUORUM);
$my_cf->remove('all', array('1228#16857','1228#16866','1228#16875'));

I see. I'm sorry, I know nothing about phpCassa. I use batch_mutation with deletions and it works. But I guess phpCassa must use the same thrift primitives.


2013/4/25 Sorin Manolache <sorinm@gmail.com <mailto:sorinm@gmail.com>>

   On 2013-04-25 11:48, Alain RODRIGUEZ wrote:

       Hi, I tried to delete some columns using cql2 as well as thrift on
       C*1.2.2 and instead of being unreachable, deleted columns have a
       null value.

       I am using no value in this CF, the only information I use is the
       existence of the column. So when I select all the column for a
       given key
       I have the following returned:

          1228#16857 | 1228#16866 | 1228#16875 | 1237#16544 | 1237#16553
                      null |              null |             null |

       This is quite annoying since my app thinks that I have 5 columns
       when I should have 2 only.

       I first thought that this was a visible marker of tombstones but
       didn't vanish after a major compaction.

       How can I get rid of these null/ghost columns and why does it
       happen ?

   I do something similar but I don't see null values. Could you please
   post the code where you delete the columns?