powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Ещё один теоретический вопрос: в условии с несколькими выражениями Постгрес делает полную проверку всех или до первого несовпадения?
8 сообщений из 8, страница 1 из 1
Ещё один теоретический вопрос: в условии с несколькими выражениями Постгрес делает полную проверку всех или до первого несовпадения?
    #32692188
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уточняю. Есть запрос
Код: plaintext
1.
2.
3.
4.
SELECT *
FROM table1
WHERE
  field1 =  1   --(1) 
  AND field2 =  2  --( 2 )
- это упрощённый запрос. Условия, конечно же, могут быть и посложнее - EXISTS, вложеные условия.

Если условие (1) не выполнилось, то будет ли проверятся условие (2)?
В какой последовательности происходят эти проверки?
Где это посмотреть?
Можно ли повлиять на порядок проверок?
...
Рейтинг: 0 / 0
Ещё один теоретический вопрос: в условии с несколькими выражениями Постгрес делает полную проверку всех или до первого несовпадения?
    #32692407
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у тебя тут нет условия 1 и 2
это одно условие, - AND (логическое И из двух простых).


2 и более условий - это конструкция CASE WHEN (кааца в этом диалекте)
...
Рейтинг: 0 / 0
Ещё один теоретический вопрос: в условии с несколькими выражениями Постгрес делает полную проверку всех или до первого несовпадения?
    #32692434
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мои извинения.

- прочитал внимательнее.
Вопрос в порядке вычисления логических выражений, если я правильно понял. Совершается ли оптимизация внутри вычисления.

т.е. возвращает ли (А) AND (B) False, если хотя бы одно False?
не думаю. (B) может быть NULL, тогда False AND NULL должны дать NULL.

Но в условии WHERE и FALSE и NULL не выводятся в результат, т.ч. специяльно для WHERE такой ёптимизацией могабыть занимались.

Будем ждать гуру.
...
Рейтинг: 0 / 0
Ещё один теоретический вопрос: в условии с несколькими выражениями Постгрес делает полную проверку всех или до первого несовпадения?
    #32692876
PJD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PJD
Гость
Занимается ли сервер оптимизацией условий можно легко проверить - создать функцию пишущую сообщение (raise) при каждом своем вызове и заменить константы 1 и 2 на вызов этой ф-ии.
Как я понимаю, смысл этот вопрос имеет только если в условии есть вызов функции с побочным эффектом (запись в таблицу например). Но поскольку (IMHO) стандарты SQL не определяют, в каком порядке сервер БД должен выполнять проверку условий во where - в любой момент разработчики могут свободно поменять порядок. Или сам сервер поменяет по каким-то своим соображениям. Так что (опять ИМХО) лучше никаких функций с побочным эффектом в таком неопределенном месте не вызывать.
...
Рейтинг: 0 / 0
Ещё один теоретический вопрос: в условии с несколькими выражениями Постгрес делает полную проверку всех или до первого несовпадения?
    #32693478
nevermind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не гуру, но ответ лежит вот здесь: http://www.postgresql.org/docs/7.4/static/sql-expressions.html#SYNTAX-EXPRESS-EVAL

(если ссылка не сработала, как у меня, это будет последний раздел на странице). Общий смысл там такой что порядок разборки не определен и может быть любым.
...
Рейтинг: 0 / 0
Ещё один теоретический вопрос: в условии с несколькими выражениями Постгрес делает полную проверку всех или до первого несовпадения?
    #32694188
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot nevermind]Я не гуру, но ответ лежит вот здесь: http://www.postgresql.org/docs/7.4/static/sql-expressions.html#SYNTAX-EXPRESS-EVAL
[quot]
Хорошая ссылка. Ответ на большинство вопросов, особенно на то, как задать порядок проверок. Сенкс.
...
Рейтинг: 0 / 0
Ещё один теоретический вопрос: в условии с несколькими выражениями Постгрес делает полную проверку всех или до первого несовпадения?
    #32695212
nevermind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Велкам!!! :)
...
Рейтинг: 0 / 0
Ещё один теоретический вопрос: в условии с несколькими выражениями Постгрес делает полную проверку всех или до первого несовпадения?
    #32695521
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nevermindВелкам!!! :)
Обычно говорят "Фор ёр плеже"
)))
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Ещё один теоретический вопрос: в условии с несколькими выражениями Постгрес делает полную проверку всех или до первого несовпадения?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]