Say, the base table is:
create table t1(f1 int, f2 int, primary key (f1));
Since I want to support querying according f2 and also update f2:
select * from t1v1 where f2=2; update t1 set f2=22 where f1=1;
I need the Materialized view:
create materialized view t1v1 as select * from t1 where f2 is not null primary key (f2, f1);
What's behind the scene when updating a base table's field, which is the primary key of Materialized view?
update t1 set f2=2222 where f1=1;
Does Cassandra do something as below?
1. select old f2 value from based table 2. mark the old row in the materialized view according the old f2 and f1 values. 3. insert the new row into materialized view.
By the way, is there any other way to support both updating field A and selecting by field A?