[
https://issues.apache.org/jira/browse/CASSANDRA-10910?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15083771#comment-15083771
]
Carl Yeksigian commented on CASSANDRA-10910:
--------------------------------------------
Actually, the comment is right, but the ttl and deletion time's were using the
wrong comparators. I've pushed a commit which just changes some of the wording.
When we write the column which is not part of the view's primary key, we use a
timestamp which is further ahead than the view's primary key's timestamp as it
copies the timestamp of the regular column, not the view's primary key. But,
when we generate the timestamp for the tombstone, we currently take the min of
the timestamp of the columns included in the view's primary key, which would
not properly tombstone the value of the other regular column, as it will have
that future timestamp. To fix that, we need to take the max timestamp in order
to generate a tombstone which does cover that regular column's value.
> Materialized view remained rows
> -------------------------------
>
> Key: CASSANDRA-10910
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10910
> Project: Cassandra
> Issue Type: Bug
> Environment: Cassandra 3.0.0
> Reporter: Gábor Auth
> Assignee: Carl Yeksigian
> Fix For: 3.0.x, 3.x
>
>
> I've created a table and a materialized view.
> {code}
> > CREATE TABLE test (id text PRIMARY KEY, key text, value int);
> > CREATE MATERIALIZED VIEW test_view AS SELECT * FROM test WHERE key IS NOT
> > NULL PRIMARY KEY(key, id);
> {code}
> I've put a value into the table:
> {code}
> > update test set key='key', value=1 where id='id';
> > select * from test; select * from test_view ;
> id | key | value
> ----+-----+-------
> id | key | 1
> (1 rows)
> key | id | value
> -----+----+-------
> key | id | 1
> (1 rows)
> {code}
> I've updated the value without specified the key of the materialized view:
> {code}
> > update test set value=2 where id='id';
> > select * from test; select * from test_view ;
> id | key | value
> ----+-----+-------
> id | key | 2
> (1 rows)
> key | id | value
> -----+----+-------
> key | id | 2
> (1 rows)
> {code}
> It works as I think...
> ...but I've updated the key of the materialized view:
> {code}
> > update test set key='newKey' where id='id';
> > select * from test; select * from test_view ;
> id | key | value
> ----+--------+-------
> id | newKey | 2
> (1 rows)
> key | id | value
> --------+----+-------
> key | id | 2
> newKey | id | 2
> (2 rows)
> {code}
> ...I've updated the value of the row:
> {code}
> > update test set key='newKey', value=3 where id='id';
> > select * from test; select * from test_view ;
> id | key | value
> ----+--------+-------
> id | newKey | 3
> (1 rows)
> key | id | value
> --------+----+-------
> key | id | 2
> newKey | id | 3
> (2 rows)
> {code}
> ...I've deleted the row by the id key:
> {code}
> > delete from test where id='id';
> > select * from test; select * from test_view ;
> id | key | value
> ----+-----+-------
> (0 rows)
> key | id | value
> -----+----+-------
> key | id | 2
> (1 rows)
> {code}
> Is it a bug?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)