Horsun Vlad пишет:
Во-вторых, это закладывается на порядок вычисления условий
Дык вычисления булевых выражений вродь сокращенные.
Причём тут это ?
Или в данном случае на порядок это не влияет?
Есть большая разница в данном случае между
AND RDB$SET_CONTEXT('USER_TRANSACTION', 'Level', TR.LEV + 1) >= 0
AND RDB$GET_CONTEXT('USER_TRANSACTION', 'Level') < 5
и
AND RDB$GET_CONTEXT('USER_TRANSACTION', 'Level') < 5
AND RDB$SET_CONTEXT('USER_TRANSACTION', 'Level', TR.LEV + 1) >= 0
Про разницу - эт и ежу понятно.
Не вполне ясно вот что: действительно ли в булевских выражениях порядок
вычисления не определён?
Т.е. если у меня условие:
where DOC_ID is not null and MY_COOL_UDF(DOC_ID)
то MY_COOL_UDF(DOC_ID) может вызваться для аргумента null?
В-третьих, это всё равно не позволит избежать чтения записей с уровня 5
Ну дык с 6-го то читать уже не будет?
Задача не читать с 5-го ;) ТщательнЕе нужно читать вопросы :)
Тады <4 ? $-)