[
https://issues.apache.org/jira/browse/CASSANDRA-8206?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tyler Hobbs updated CASSANDRA-8206:
-----------------------------------
Priority: Critical (was: Major)
Summary: Deleting columns breaks secondary index on clustering column
(was: Removing items from a set breaks secondary index)
It looks like this isn't limited to removing collection items. Deleting any
non-pk column will remove the index entry for secondary indexes on clustering
columns like this:
{noformat}
cqlsh:ks1> CREATE TABLE bar (a int, b int, c int, d int, PRIMARY KEY (a, b));
cqlsh:ks1> CREATE INDEX ON bar (b);
cqlsh:ks1> INSERT INTO bar (a, b, c, d) VALUES (0, 0, 0, 0);
cqlsh:ks1> SELECT * FROM bar WHERE b = 0;
a | b | c | d
---+---+---+---
0 | 0 | 0 | 0
(1 rows)
cqlsh:ks1> UPDATE bar SET c = null WHERE a = 0 AND b = 0;
cqlsh:ks1> SELECT * FROM bar WHERE b = 0;
a | b | c | d
---+---+---+---
(0 rows)
{noformat}
> Deleting columns breaks secondary index on clustering column
> ------------------------------------------------------------
>
> Key: CASSANDRA-8206
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8206
> Project: Cassandra
> Issue Type: Bug
> Reporter: Tuukka Mustonen
> Assignee: Tyler Hobbs
> Priority: Critical
> Fix For: 2.1.2
>
>
> Removing items from a set breaks index for field {{id}}:
> {noformat}
> 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)
> {noformat}
> Re-building the index fixes the issue:
> {noformat}
> 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)
> {noformat}
> Adding items does not cause similar failure, only delete. Also didn't test if
> other collections are also affected(?)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)