Oleg Zhovtanyuk created CASSANDRA-17266:
-------------------------------------------

             Summary: DESCRIBE KEYSPACE / MATERIALIZED VIEW generates invalid 
CQL for views
                 Key: CASSANDRA-17266
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17266
             Project: Cassandra
          Issue Type: Bug
          Components: CQL/Syntax
            Reporter: Oleg Zhovtanyuk


Materialized views do not allow default_time_to_live option in CQL (see 
CASSANDRA-12868).

But, if the MV was created without this option, DESCRIBE KEYSPACE / 
MATERIALIZED VIEW command generates CQL that includes it.

E.g.

 
{code:java}
CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 
'replication_factor': '1'};

USE test;

CREATE TABLE test_table(
  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 test_view AS
SELECT id, date, col1
FROM test_table
WHERE id IS NOT NULL AND date IS NOT NULL
PRIMARY KEY(id, date);{code}
It is OK. 

 

 
{code:java}
DESCRIBE MATERIALIZED VIEW test_view; {code}
returns the same CQL + all default options:

 

 
{code:java}
CREATE MATERIALIZED VIEW test.test_view AS
    SELECT id, date, col1
    FROM test.test_table
    WHERE id IS NOT NULL AND date IS NOT NULL
    PRIMARY KEY (id, date)
 WITH CLUSTERING ORDER BY (date ASC)
    AND additional_write_policy = '99p'
    AND bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND cdc = false
    AND comment = ''
    AND compaction = {'class': 
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 
'max_threshold': '32', 'min_threshold': '4'}
    AND compression = {'chunk_length_in_kb': '16', 'class': 
'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND crc_check_chance = 1.0
    AND default_time_to_live = 0
    AND extensions = {}
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair = 'BLOCKING'
    AND speculative_retry = '99p';
{code}
Note the 'default_time_to_live = 0' clause!

 

If this veiw is dropped,



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to