Yeah definitely a problem there. Can you create a JIRA for it? On Sat., 24 Mar. 2018, 11:00 Duarte Nunes, <dua...@scylladb.com> wrote:
> Hi, > > 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" > > Thoughts? > > Thanks, > Duarte > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org > For additional commands, e-mail: dev-h...@cassandra.apache.org > >