powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вычисления по сокращенной схеме в PSQL
8 сообщений из 8, страница 1 из 1
Вычисления по сокращенной схеме в PSQL
    #38741921
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В процедурном расширении языка вычисление логических выражений с помощью операторов AND и OR происходит по сокращенной схеме вычислений (то есть в выражении A AND B, B будет вычисляться только в случае A= True) или нет? В документации не нашел ответа на данный вопрос.
...
Рейтинг: 0 / 0
Вычисления по сокращенной схеме в PSQL
    #38741951
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloper,

по сокращённой

Код: sql
1.
2.
3.
select count(*)
from rdb$types
where 1=1 or (select count(*) from rdb$types)=469



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
------ Информация о производительности ------
Время подготовки запроса = 16ms
Время выполнения запроса = 0ms
Среднее время на получение одной записи = 0,00 ms
Current memory = 17 737 028
Max memory = 17 789 216
Memory buffers = 1 024
Reads from disk to cache = 0
Writes from cache to disk = 0
Чтений из кэша = 469

vs

Код: sql
1.
2.
3.
select count(*)
from rdb$types
where 1=0 or (select count(*) from rdb$types)=469



Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
------ Информация о производительности ------
Время подготовки запроса = 16ms
Время выполнения запроса = 0ms
Среднее время на получение одной записи = 0,00 ms
Current memory = 17 737 108
Max memory = 17 789 216
Memory buffers = 1 024
Reads from disk to cache = 0
Writes from cache to disk = 0
Чтений из кэша = 930
...
Рейтинг: 0 / 0
Вычисления по сокращенной схеме в PSQL
    #38741975
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloper,

начиная с 2.5, под любыми платформами в where выражения вычисляются cлева направо.
http://tracker.firebirdsql.org/browse/CORE-1971

хотя тут 7365713 якобы написано, что right-to-left.

Однако, элементарно проверяется
Код: sql
1.
2.
select * from rdb$database
where 1=(1/0) or 1=1


выдает ошибку, значит слева направо.

Код: sql
1.
2.
select * from rdb$database
where 1=1 or 1=(1/0)


не выдает ошибку, действительно слева направо.

Поэтому, что "тяжелее", нужно располагать справа, что легче - слева.
...
Рейтинг: 0 / 0
Вычисления по сокращенной схеме в PSQL
    #38741985
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloper,

и, в конфиге есть параметр, которым сокращенную схему можно отключить.
...
Рейтинг: 0 / 0
Вычисления по сокращенной схеме в PSQL
    #38742371
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv,

Какой?
...
Рейтинг: 0 / 0
Вычисления по сокращенной схеме в PSQL
    #38742372
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня так же интересуют выражения в коде процедур, а не только в предложении where.
...
Рейтинг: 0 / 0
Вычисления по сокращенной схеме в PSQL
    #38742404
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InterloperКакой?
а ты прочитай конфиг. Там что, дохрена параметров?

InterloperМеня так же интересуют выражения в коде процедур, а не только в предложении where.
какая разница? В общем, читай конфиг. там все параметры расписаны, найдешь свой за 1-2 минуты.
...
Рейтинг: 0 / 0
Вычисления по сокращенной схеме в PSQL
    #38742413
Фотография Exteris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CompleteBooleanEvaluation
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Вычисления по сокращенной схеме в PSQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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