Details
-
Bug
-
Status: Resolved
-
Urgent
-
Resolution: Fixed
-
Critical
Description
Removing items from a set breaks index for field id:
cqlsh:cs> CREATE TABLE buckets ( ... tenant int, ... id int, ... items set<text>, ... PRIMARY KEY (tenant, id) ... ); cqlsh:cs> CREATE INDEX buckets_ids ON buckets(id); cqlsh:cs> INSERT INTO buckets (tenant, id, items) VALUES (1, 1, {'foo', 'bar'}); cqlsh:cs> SELECT * FROM buckets; tenant | id | items --------+----+---------------- 1 | 1 | {'bar', 'foo'} (1 rows) cqlsh:cs> SELECT * FROM buckets WHERE id = 1; tenant | id | items --------+----+---------------- 1 | 1 | {'bar', 'foo'} (1 rows) cqlsh:cs> UPDATE buckets SET items=items-{'foo'} WHERE tenant=1 AND id=1; cqlsh:cs> SELECT * FROM buckets; tenant | id | items --------+----+--------- 1 | 1 | {'bar'} (1 rows) cqlsh:cs> SELECT * FROM buckets WHERE id = 1; (0 rows)
Re-building the index fixes the issue:
cqlsh:cs> DROP INDEX buckets_ids; cqlsh:cs> CREATE INDEX buckets_ids ON buckets(id); cqlsh:cs> SELECT * FROM buckets WHERE id = 1; tenant | id | items --------+----+--------- 1 | 1 | {'bar'} (1 rows)
Adding items does not cause similar failure, only delete. Also didn't test if other collections are also affected
Attachments
Attachments
Issue Links
- is duplicated by
-
CASSANDRA-7485 Missing data from secondary index when secondary index is against a compound PK member
- Resolved
- relates to
-
CASSANDRA-6782 setting TTL on some columns seems to expire whole row
- Resolved