【问题标题】:CQL using a set/list in a CQL query with IN clause在带有 IN 子句的 CQL 查询中使用集合/列表的 CQL
【发布时间】:2020-02-02 19:24:06
【问题描述】:

我知道在分区键中使用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));

我有什么办法可以做到这一点?

【问题讨论】:

    标签: function cassandra cql


    【解决方案1】:

    您不能在 Cassandra 中执行此操作 - UDF 主要应用于单个列。 WHERE 中有一个支持 UDF 的 JIRA,但它仍然开放:https://issues.apache.org/jira/browse/CASSANDRA-8488

    我建议在应用程序中生成此列表,并将其与准备好的查询一起使用 - 从性能的角度来看,它可能更有效。

    【讨论】:

      猜你喜欢
      • 2013-05-30
      • 2015-09-13
      • 2020-10-26
      • 1970-01-01
      • 2019-09-16
      • 1970-01-01
      • 2018-08-24
      • 2010-10-07
      • 1970-01-01
      相关资源
      最近更新 更多