cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "viasyn (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-8042) Inconsistent static column behavior after row deletion
Date Thu, 02 Oct 2014 19:15:33 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-8042?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14157011#comment-14157011
] 

viasyn commented on CASSANDRA-8042:
-----------------------------------

I'm using 2.1.0. Will try on 2.1.1.

The essence:

Such example will not break static column:
{code}
insert into tt (c1, c2, c3, cs) VALUES ( '1', '1-4', 'x', 's4') USING TTL 3;
insert into tt (c1, c2, c3, cs) VALUES ( '1', '1-3', 'x', 's3') USING TTL 20;
{code}

But this will:
{code}
insert into tt (c1, c2, c3, cs) VALUES ( '1', '1-3', 'x', 's3') USING TTL 20;
insert into tt (c1, c2, c3, cs) VALUES ( '1', '1-4', 'x', 's4') USING TTL 3;
{code}

When *last row which modified static column* deleted by TTL static column turns into null.

> Inconsistent static column behavior after row deletion
> ------------------------------------------------------
>
>                 Key: CASSANDRA-8042
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8042
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: viasyn
>             Fix For: 2.1.1
>
>
> I've a table with static column defined. I'm inserting some rows with TTL defined, then
one of row expires TTL of all the rows with same PK turns into null:
> {code}
> cqlsh:test> create table tt ( c1 text , c2 text , c3 text, cs text static, PRIMARY
KEY (c1, c2) );
> cqlsh:test> insert into tt (c1, c2, c3, cs) VALUES ( '1', '1-1', 'x', 's1') USING
TTL 10;
> cqlsh:test> insert into tt (c1, c2, c3, cs) VALUES ( '1', '1-2', 'x', 's2') USING
TTL 5;
> cqlsh:test> insert into tt (c1, c2, c3, cs) VALUES ( '1', '1-3', 'x', 's3') USING
TTL 20;
> cqlsh:test> insert into tt (c1, c2, c3, cs) VALUES ( '1', '1-4', 'x', 's4') USING
TTL 3;
> cqlsh:test> select * from tt;
>  c1 | c2  | cs | c3
> ----+-----+----+----
>   1 | 1-1 | s4 |  x
>   1 | 1-2 | s4 |  x
>   1 | 1-3 | s4 |  x
>   1 | 1-4 | s4 |  x
> (4 rows)
> cqlsh:test> select * from tt;
>  c1 | c2  | cs | c3
> ----+-----+----+----
>   1 | 1-1 | s4 |  x
>   1 | 1-2 | s4 |  x
>   1 | 1-3 | s4 |  x
>   1 | 1-4 | s4 |  x
> (4 rows)
> cqlsh:test> select * from tt;
>  c1 | c2  | cs   | c3
> ----+-----+------+----
>   1 | 1-1 | null |  x
>   1 | 1-2 | null |  x
>   1 | 1-3 | null |  x
> (3 rows)
> {code}
> Same scenario with manual DELETion leads to another result:
> {code}
> cqlsh:test> create table tt1 ( c1 text , c2 text , c3 text, cs text static, PRIMARY
KEY (c1, c2) );
> cqlsh:test> insert into tt1 (c1, c2, c3, cs) VALUES ( '1', '1-1', 'x', 's1');
> cqlsh:test> insert into tt1 (c1, c2, c3, cs) VALUES ( '1', '1-2', 'x', 's2');
> cqlsh:test> insert into tt1 (c1, c2, c3, cs) VALUES ( '1', '1-3', 'x', 's3');
> cqlsh:test> insert into tt1 (c1, c2, c3, cs) VALUES ( '1', '1-4', 'x', 's4');
> cqlsh:test> select * from tt1;
>  c1 | c2  | cs | c3
> ----+-----+----+----
>   1 | 1-1 | s4 |  x
>   1 | 1-2 | s4 |  x
>   1 | 1-3 | s4 |  x
>   1 | 1-4 | s4 |  x
> (4 rows)
> cqlsh:test> delete from tt1 WHERE c1='1' AND c2 = '1-2';
> cqlsh:test> select * from tt1;
>  c1 | c2  | cs | c3
> ----+-----+----+----
>   1 | 1-1 | s4 |  x
>   1 | 1-3 | s4 |  x
>   1 | 1-4 | s4 |  x
> (3 rows)
> cqlsh:test> delete from tt1 WHERE c1='1' AND c2 = '1-4';
> cqlsh:test> select * from tt1;
>  c1 | c2  | cs | c3
> ----+-----+----+----
>   1 | 1-1 | s4 |  x
>   1 | 1-3 | s4 |  x
> (2 rows)
> {code}
> Is this behavior bug or it's declared somewhere? Is it really good that deletion behavior
is inconsistent? 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message