Duarte Nunes created CASSANDRA-14345: ----------------------------------------
Summary: Empty partition keys allowed in MV, but not in normal table Key: CASSANDRA-14345 URL: https://issues.apache.org/jira/browse/CASSANDRA-14345 Project: Cassandra Issue Type: Bug Components: Materialized Views Reporter: Duarte Nunes Given the following table: cqlsh> create keyspace ks WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}; cqlsh> create table t (p text, c int, v text, primary key (p)); cqlsh> use ks; The following fails: cqlsh:ks> insert into t (p, c, v) values ('', 2, ''); InvalidRequest: Error from server: code=2200 [Invalid query] message="Key may not be empty" However, MVs don't appear to have this restriction: create materialized view mv as select * from t where v is not null and p is not null and c is not null primary key (v, p); insert into t (p, c, v) values ('a', 2, ''); select * from mv; v | p | c ---+---+--- | a | 2 I guess this is because an empty value can't be distinguished from null at the protocol level, but this distinction can be made internally. I think the behavior should be made consistent, if nothing else because querying the MV for the empty key is impossible: cqlsh:ks> select * from mv where v = ''; InvalidRequest: Error from server: code=2200 [Invalid query] message="Key may not be empty" -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org