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

Коллеги, гарантируется ли, что при UPDATE следующего рода: UPDATE table SET a

= IMMUTABLE_FUNC(a, b, c).a,
b = IMMUTABLE_FUNC(a, b, c).b,
c = IMMUTABLE_FUNC(a, b, c).c;

IMMUTABLE функция IMMUTABLE_FUNC будет вычислена единожды в рамках обновления одной строки?

6 ответов

5 просмотров

Нет.

Скорее наоборот, CSE (common subexpression elimination) тут не в почёте в цэлом.

Petr- Автор вопроса
Ilya Anfimov
Скорее наоборот, CSE (common subexpression elimina...

Известны ли вам методы, как заставить PostgreSQL вычислять некую IMMUTABLE функцию единожды, при условии, что она зависит от нескольких аргументов (кои являются столбцами очередной строки, а также постоянными в рамках одной строки) и используется далее в нескольких местах запроса? На ум приходит только CURSOR FOR UPDATE, но что-то это мне не нравится.

Petr
Известны ли вам методы, как заставить PostgreSQL в...

Можэте попробовать сунуть это вычисление в cte. 100% гарантии нет, но есть большые шансы, что если будет только один вызов -- то его результат применят несколько раз.

Petr- Автор вопроса
Ilya Anfimov
Можэте попробовать сунуть это вычисление в cte. 1...

Если я верно помню, то в CTE при UPDATE я не смогу пропихнуть значения из "текущей обновляемой строки". Или же ошибаюсь?

Petr
Если я верно помню, то в CTE при UPDATE я не смогу...

Ну, так, относительно. Если есть primary key -- то можно это через него связать. Насчёт lateral: можэт сработать, да, но не пробовал (вдруг запрещено).

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

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

Сообщение* в закодированном виде. То есть, просто сделать sendMessage?text=Привет бла-бла! не получится, надо в HEX переводить, и добавлять процент, типа такого: sendMessage?t...
КТ315
21
А случайно нет ли в паскале штатной возможности передать указатель и количество туда где array of в качестве аргумента?
zamtmn
25
всем трям! Кто-нибудь работал со связкой werf + harbor + trivy ? Во время сборки образа выходит ошибка "PROJECTPOLICYVIOLATION: current image with "Pending" status of vulnerab...
Авессалом
11
Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
58
Только такой if ($modx->event->name == 'OnBeforeCartItemAdding') { $meta = $params['item']['meta']; $lang = $modx->getConfig('_lang'); // проверяем, задана ли опция i...
Multi Web
1
Всем привет. Испытываю проблемы в работе БД, а именно огромного роста логов, такого характера: 024-05-16 18:39:07 +05 sentry sentry [unknown] 1050169 7-1 app-sentry01.corp.ru>...
Alexey
2
Ну раз я пока тут, задам пару глупых вопросов. Зачем писать на ассемблере если компилятор довольно умный, а ассемблер много времени занимает? В каких прикладных задачах сейчас...
Максим Рябцев
20
Хм. А телеграм апи работают через HTTP?
The Bird of Hermes
14
Почему Telegram пишет, что объект media не найден, хотя на самом деле я его передаю? Делаю на urllib, без зависимостей, так надо. Вызываю метод sendMediaGroup с таким JSON: ...
Alexey S
1
Если подытожить: По мнению Розыча и Хемуля и др. - предпочтительно по возможности объявлять в секции имплементации потому-что: 1) Выше скорость компиляции 2) Не замусоривается...
notme
7
Карта сайта