By default, materialized views are using the TTL of primary table, irrespective of the configured value provided in materialized view creation.
CREATE TABLE test2(id text, date text, col1 text,col2 text, PRIMARY KEY(id,date)) WITH default_time_to_live = 60 AND CLUSTERING ORDER BY (date DESC);
CREATE MATERIALIZED VIEW test3_view AS
SELECT id, date, col1
WHERE id IS NOT NULL AND date IS NOT NULL
PRIMARY KEY(id,date) WITH default_time_to_live = 30;
The queries are accepted in CQL. As per the detail, it should use 30 seconds for Materialized view and 60 seconds for parent table.
But, it is always 60 seconds (as the parent table)
parent table and materialized view with different TTL
MV will always have the TTL of parent.
Parent table without TTL but materialized view with TTL
MV does not have the TTL even though the configuration has been accepted in the table creation.
Either the TTL configuration should not be accepted in the materialized view creation, if it is of no value.
TTL has to be applied differently for both Materialized View and Table if the configuration is added.
If no configuration, TTL has to be taken from the parent table.