Cassandra 可以保存一个空列表吗?

Can Cassandra hold an empty list?

我想用一些 list<int> 字段创建一个 Cassandra 集合并插入一个空列表;

CREATE TABLE test (
    name text PRIMARY KEY,
    scores list<int>,
);

INSERT INTO test (name, scores)  VALUES ('John', []);

但是,这个returnsnull

SELECT * FROM test;


 name |scores
------+------------
 John | null

Cassandra不区分null和空列表吗?

与往常一样,Cassandra 建议不要插入 NULL 或尝试插入 EMPTY 值。它只是将您自己从墓碑、存储、I/O 带宽中拯救出来。

Cassandra 不区分 NULL 和 empty 的原因是因为删除的处理方式。在删除 Cassandra 中的任何记录之前没有读取。所以它只是标记为墓碑并继续前进。

所以实际上你会受到惩罚将列表初始化为空(实质上是创建逻辑删除)。