CQL, используя набор / список в запросе CQL с предложением IN - PullRequest
1 голос
/ 30 января 2020

Я знаю, что с помощью предложения 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));

Как я могу этого добиться?

1 Ответ

1 голос
/ 02 февраля 2020

Вы не можете сделать это в Кассандре - UDF в основном применяются к отдельным столбцам. Существует JIRA для поддержки UDF в WHERE, но он все еще открыт: https://issues.apache.org/jira/browse/CASSANDRA-8488

Я бы предложил создать этот список в приложении и использовать его с подготовленными запросами - он мог бы быть более эффективным с точки зрения производительности.

...