ScyllaDB-[无效查询] message =“尚不支持集合过滤”

时间:2019-09-10 15:50:53

标签: cassandra cql scylla

我有一个带有列类型为list的表,我想使用CONTAINS关键字检查列表中是否有项。

根据scylla文档:

  

CONTAINS运算符只能在集合列(列表,集合和映射)上使用。对于地图,CONTAINS适用于地图值。 CONTAINS KEY运算符只能在地图列上使用,并且适用于地图键。

https://docs.scylladb.com/getting-started/dml/

要重现我收到的错误,请执行以下操作:

CREATE TABLE test.persons ( id int PRIMARY KEY,lastname text, books list<text>);
INSERT INTO test.persons(id, lastname, books) values (1, 'Testopoulos',['Dracula','1984']);
SELECT * FROM test.persons


 id | books               | lastname
----+---------------------+-------------
  1 | ['Dracula', '1984'] | Testopoulos

(1 rows)

SELECT * FROM test.persons WHERE books CONTAINS '1984' ALLOW FILTERING;

InvalidRequest: Error from server: code=2200 [Invalid query] message="Collection filtering is not supported yet"

1 个答案:

答案 0 :(得分:7)

Scylla中已经实现了对CONTAINS关键字的过滤支持,但是它尚未成为任何正式版本的一部分-它将包含在即将发布的3.1版本中(或者,如果您是从最新消息。)

以下是官方跟踪器的参考:https://github.com/scylladb/scylla/issues/3573