Details
-
Bug
-
Status: Open
-
Normal
-
Resolution: Unresolved
-
None
-
Normal
Description
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 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"