[ https://issues.apache.org/jira/browse/CASSANDRA-8430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14239826#comment-14239826 ]
Alan Boudreault edited comment on CASSANDRA-8430 at 12/9/14 6:57 PM: --------------------------------------------------------------------- [~angarrett] I think your confusion is due to the the fact that you consider the *PRIMARY KEY* as a normal column, when it is not. We cannot delete the primary key *column* without deleting ALL other columns. The TTL of the Primary Key (or row) is MAX(all_column_ttls), 0 being considered as infinity, so the higher. So it is normal that modifying a column ttl with a lower ttl doesn't affect the row TTL. Does it make sense? [~slebresne] can confirm if I'm right too. was (Author: aboudreault): [~angarrett] I think your confusion is due to the the fact that you consider the *PRIMARY KEY* as a column, when it is not. We cannot delete the primary key *column* without deleting ALL other columns. The TTL of the Primary Key (or row) is MAX(all_column_ttls), 0 being considered as infinity, so the higher. So it is normal that modifying a column ttl with a lower ttl doesn't affect the row TTL. Does it make sense? [~slebresne] can confirm if I'm right too. > Updating a row that has a TTL produce unexpected results > -------------------------------------------------------- > > Key: CASSANDRA-8430 > URL: https://issues.apache.org/jira/browse/CASSANDRA-8430 > Project: Cassandra > Issue Type: Bug > Reporter: Alan Boudreault > Labels: cassandra, ttl > Fix For: 2.0.11, 2.1.2, 3.0 > > Attachments: test.sh > > > Reported on stackoverflow: > http://stackoverflow.com/questions/27280407/cassandra-ttl-gets-set-to-0-on-primary-key-if-no-ttl-is-specified-on-an-update?newreg=19e8c6757c62474985fef7c3037e8c08 > I can reproduce the issue with 2.0, 2.1 and trunk. I've attached a small > script to reproduce the issue with CCM, and here is it's output: > {code} > aboudreault@kovarro:~/dev/cstar/so27280407$ ./test.sh > Current cluster is now: local > Insert data with a 5 sec TTL > INSERT INTO ks.tbl (pk, foo, bar) values (1, 1, 'test') using TTL 5; > pk | bar | foo > ----+------+----- > 1 | test | 1 > (1 rows) > Update data with no TTL > UPDATE ks.tbl set bar='change' where pk=1; > sleep 6 sec > BUG: Row should be deleted now, but isn't. and foo column has been deleted??? > pk | bar | foo > ----+--------+------ > 1 | change | null > (1 rows) > Insert data with a 5 sec TTL > INSERT INTO ks.tbl (pk, foo, bar) values (1, 1, 'test') using TTL 5; > pk | bar | foo > ----+------+----- > 1 | test | 1 > (1 rows) > Update data with a higher (10) TTL > UPDATE ks.tbl USING TTL 10 set bar='change' where pk=1; > sleep 6 sec > BUG: foo column has been deleted? > pk | bar | foo > ----+--------+------ > 1 | change | null > (1 rows) > sleep 5 sec > Data is deleted now after the second TTL set during the update. Is this a bug > or the expected behavior? > (0 rows) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)