cql在带有in子句的cql查询中使用集合/列表

dl5txlt9  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(362)

我知道使用 IN 但是我想写一个 UDF 从2个日期返回可用于 IN 条款。
基本上,我想实现以下目标:

CREATE OR REPLACE FUNCTION date_range(start date, end date) called on null input returns set<date> language JAVA as
$$
// function implementation here that returns a list of dates between the 2 provided dates
$$

然后我运行一个cql查询

SELECT * from my_table where t_id=3 AND t_date IN (date_range('2010-01-01', '2019-01-10');

表结构的位置

CREATE TABLE test ( t_id number, t_date date, t_value number) primary key ((t_number, t_date));

我有什么办法可以做到吗?

krugob8w

krugob8w1#

在cassandra中不能这样做-udf主要应用于单个列。在where中有一个jira用于支持udf,但它仍然是开放的:https://issues.apache.org/jira/browse/cassandra-8488
我建议在应用程序中生成此列表,并将其用于准备好的查询—从性能Angular 来看,它可能更有效。

相关问题