postgrespro/jsquery

Ошибка при использовании оператора IN с большим количеством параметров

menshenin opened this issue · 4 comments

CREATE TABLE js_test ( js jsonb );

INSERT INTO js_test (js) VALUES ('{"test":[12]}');

SELECT * FROM js_test WHERE js @@ 'test.# IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49)';

Данная серия запросов приводит к тому, что база уходит в recovery mode. Причём, проблема возникает только если количество параметров в IN больше 48.
Надеюсь на вашу помощь.

PostgreSQL 9.6.3 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit

повторяется и без таблиц вообще

SELECT 'test.# IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49)'::jsquery

У меня воспроизвелось, ждите фикса.

Исправлено в f560d99, проверяёте.

Всё работает, спасибо!