Folks, Is there any way to perform a delete in CQL of all rows where a particular columns (that is part of the primary key) is less than a certain value? I believe that the corresponding SELECT statement works, as in this example:
cqlsh:fiddle> describe table foo; CREATE TABLE foo ( key text, fam text, qual text, version int, val text, PRIMARY KEY (key, fam, qual, version) ) WITH bloom_filter_fp_chance=0.010000 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.000000 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.100000 AND replicate_on_write='true' AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'SizeTieredCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; cqlsh:fiddle> select * from foo; key | fam | qual | version | val -------+------+------+---------+-------- Clint | info | hair | 5 | brown Clint | info | hair | 10 | blonde (2 rows) cqlsh:fiddle> select val from foo where key='Clint' and fam='info' and qual='hair' and version <= 5; val ------- brown (1 rows) cqlsh:fiddle> delete val from foo where key='Clint' and fam='info' and qual='hair' and version <= 5; Bad Request: Invalid operator LTE for PRIMARY KEY part version I assume the only way I can implement the functionality I'm looking for is to do a select, get a list of all of the elements that I want to delete, and then delete them in a big batch statement. Is that correct? Thanks! Best regards, Clint