Как стать автором
Обновить

Комментарии 15

Добрый день, спасибо за ваши статьи.

Вот здесь вкралась опечатка

v IS NULL OR v ON v = 1 OR v = 3 cond

наверное имелось ввиду:

v IS NULL OR v = 1 OR v = 2 OR v = 3 cond

спасибо, fixed: v IS NULL OR v = 1 OR v = 3 cond

Кирилл, благодарю за материал.
У меня запрос на улучшение документации (https://postgrespro.ru/docs/) — чертовски неудобно пользоваться!

Предлагаю, как минимум:
– в блоках Синтаксиса сделать ключевые слова ссылками на соответствующие пункты описаний (т.н. "Предложения")
– изменить стиль заголовков Предложений — выделить Жирным само ключевое слово вместо префикса Предложение.

Это вам не ко мне, а к коллегам из PostgresPro.

ОК, написал Ивану Панченко.

Нет ли здесь опечатки?

  CASE
    WHEN random() < 0.5 THEN (SELECT 1)
    WHEN random() < 0.5 THEN (SELECT 2)

Вроде нет. Тут подразумевается "любое простое условие, от предыдущего никак не зависящее".

Т.е. выполнятся оба селекта последовательно, если рандом вернём менее 0.5? Интересно!
А рандом будет запускаться два раза или один?

Во-первых, random() - non-STABLE-функция, поэтому будет запускаться каждый раз, выдавая разные значения - пока какое-то по порядку WHEN-условие не выполнится.

Во-вторых, выполнится только один SELECT - первый, для которого WHEN-условие окажется истинным.

Всё понятно, спасибо за комментарии!

На самом деле в PostgreSQL можно, как оказалось, подключить плагин pg_hint_plan, через который по аналогии планировщику можно указывать, как искать определенные данные.

Сам не пробовал ещё, оставляю ссылочку для желающих:

https://github.com/ossc-db/pg_hint_plan

Да, только надо или собирать-устанавливать вручную, что явно не "из коробки", или ставить сборку Postgres Pro Enterprise (мануал).

Все верно, однако другие языки программирования активно используют либы / фреймворки, так что почему нет? :)

Тем более, обычно когда ставят "слона", то сразу с включенными плагинами для генерации hhid, секретов и тд, так что в целом чаще всего настроить плагины не проблема.

НЛО прилетело и опубликовало эту надпись здесь

Например, вы можете передать или вычислить однократно некоторое значение внутри CTE, а затем просто ссылаться на него таким способом, в том числе несколько раз: пример 1, пример 2.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий