В документации ясно, что в SELECT
разрешено использовать только операторы, равные (=
) и in[value1, values2[,...])
, однако в ALLOW FILTERING
операторы неравенства допустимы.Вот простой пример:
CREATE TABLE dept_emp (
emp_no INT,
dept_no VARCHAR,
from_date DATE,
to_date DATE,
PRIMARY KEY (emp_no, dept_no)
);
insert into dept_emp (emp_no, dept_no, from_date, to_date) values
(1, '9', '1901-01-01', '1920-02-01');
insert into dept_emp (emp_no, dept_no, from_date, to_date) values
(2, '9', '1920-01-01', '1930-01-01');
insert into dept_emp (emp_no, dept_no, from_date, to_date) values
(3, '9', '1920-01-01', '1930-01-01');
SELECT * FROM dept_emp WHERE emp_no > 1 ALLOW FILTERING;
emp_no | dept_no | from_date | to_date
--------+---------+------------+------------
2 | 9 | 1920-01-01 | 1930-01-01
3 | 9 | 1920-01-01 | 1930-01-01
(2 rows)
Я воспринял документ как описание того, что распознает синтаксический анализатор CQL, и поэтому ожидал ошибку, подобную той, которую я получаю, если попробую оператор !=
.Если это просто вещь ALLOW FILTERING
, документировано ли где-либо еще, какие операторы разрешены в этом случае?