[ https://issues.apache.org/jira/browse/CASSANDRA-14071?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16270458#comment-16270458 ]
ZhaoYang commented on CASSANDRA-14071: -------------------------------------- | source | utest | dtest | | [3.0|https://github.com/jasonstack/cassandra/commits/CASSANDRA-14071] | [3.0|https://circleci.com/gh/jasonstack/cassandra/658] | failures not related | | [3.11|https://github.com/jasonstack/cassandra/commits/CASSANDRA-14071-3.11] | [3.11|https://circleci.com/gh/jasonstack/cassandra/656] | running | | [trunk|https://github.com/jasonstack/cassandra/commits/CASSANDRA-14071-trunk] | [trunk|https://circleci.com/gh/jasonstack/cassandra/657] | failures not related | | [dtest|https://github.com/apache/cassandra-dtest/compare/master...jasonstack:CASSANDRA-14071?expand=1]| {Code} Changes: 1. Added ExpiredLivenessInfo as subclass of ExpiringLivenessInfo, it's always {{expired}}(act as tombstone) regardless {{nowInSecs}} local time. 2. Added additional check in {{LivenessInfo.supersedes()}}. When timestamp tie, ExpiredLivenessInfo (by checking ttl==MAX) will supersedes another non-ExpiredLivenessInfo. {Code} [~pauloricardomg] what do you think? > Materialized view on table with TTL issue > ----------------------------------------- > > Key: CASSANDRA-14071 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14071 > Project: Cassandra > Issue Type: Bug > Components: Coordination, Materialized Views > Environment: Cassandra 3 > Reporter: Silviu Butnariu > Assignee: ZhaoYang > Labels: correctness > > Materialized views that cluster by a column that is not part of table's PK > and are created from tables that have *default_time_to_live* seems to > malfunction. > Having this table > {code:java} > CREATE TABLE sbutnariu.test_bug ( > field1 smallint, > field2 smallint, > date timestamp, > PRIMARY KEY ((field1), field2) > ) WITH default_time_to_live = 1000; > {code} > and the materialized view > {code:java} > CREATE MATERIALIZED VIEW sbutnariu.test_bug_by_date AS SELECT * FROM > sbutnariu.test_bug WHERE field1 IS NOT NULL AND field2 IS NOT NULL AND date > IS NOT NULL PRIMARY KEY ((field1), date, field2) WITH CLUSTERING ORDER BY > (date desc, field2 asc); > {code} > After inserting 3 rows with same PK (should upsert), the materialized view > will have 3 rows. > {code:java} > insert into sbutnariu.test_bug(field1, field2, date) values (1, 2, > toTimestamp(now())); > insert into sbutnariu.test_bug(field1, field2, date) values (1, 2, > toTimestamp(now())); > insert into sbutnariu.test_bug(field1, field2, date) values (1, 2, > toTimestamp(now())); > select * from sbutnariu.test_bug; /*1 row*/ > select * from sbutnariu.test_bug_by_date;/*3 rows*/ > {code} > If I remove the ttl and try again, it works as expected: > {code:java} > truncate sbutnariu.test_bug; > alter table sbutnariu.test_bug with default_time_to_live = 0; > select * from sbutnariu.test_bug; /*1 row*/ > select * from sbutnariu.test_bug_by_date;/*1 row*/ > {code} > I've tested on versions 3.0.14 and 3.0.15. The bug was introduced in 3.0.15, > as in 3.0.14 it works as expected. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org