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 中的任何记录之前没有读取。所以它只是标记为墓碑并继续前进。
所以实际上你会受到惩罚将列表初始化为空(实质上是创建逻辑删除)。
我想用一些 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 中的任何记录之前没有读取。所以它只是标记为墓碑并继续前进。
所以实际上你会受到惩罚将列表初始化为空(实质上是创建逻辑删除)。