You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Sylvain Lebresne (JIRA)" <ji...@apache.org> on 2014/11/04 10:59:34 UTC

[jira] [Resolved] (CASSANDRA-8206) Deleting columns breaks secondary index on clustering column

     [ https://issues.apache.org/jira/browse/CASSANDRA-8206?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Sylvain Lebresne resolved CASSANDRA-8206.
-----------------------------------------
    Resolution: Fixed

> 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
>          Components: Core
>            Reporter: Tuukka Mustonen
>            Assignee: Tyler Hobbs
>            Priority: Critical
>             Fix For: 2.0.12, 2.1.2
>
>         Attachments: 8206-WIP.txt, 8206-v2.txt
>
>
> 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)