172 похожих чатов

Доброго дня, заметил, что когда при селекте в where используется

выражение с gist/gin индексом, то если оно, например, находится в case стейтменте, то к индексу обращения нет, например:

select ... from ... where foo @> bar - тут индекс для bar работает
select ... from ... where case when baz then true else foo @> bar end - тут не работает

Я же правильно понимаю, что это особенности самих инвертированных индексов? Как "идиоматично" решать подобные проблемы? .-.

7 ответов

18 просмотров
Yan-Shkurinskiy Автор вопроса

если есть воркэраунд, то не страшно)

А что мешает превратить case в комбинацию логических условий?

Yan-Shkurinskiy Автор вопроса
Yan-Shkurinskiy Автор вопроса
Владимир
Да

а можно пример?

Предлагаю сделать UNION Одна часть UNION where foo is null, вторая where foo is not null and condition(foo) Планировщик построит отдельный оптимальный план для каждой комбинации параметров. Второй вариант — вместо NULL передать такое значение параметра, для которого можно применить тот же план с индексом, и работает тот план быстро. Идиоматично — не делать так с параметрами.

Yan-Shkurinskiy Автор вопроса
alex che
Предлагаю сделать UNION Одна часть UNION where foo...

Спасибо большое) Я обдумаю А как идиоматично?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта