powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ленив ли case?
9 сообщений из 9, страница 1 из 1
ленив ли case?
    #38598814
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток.

Если делаем

Код: sql
1.
2.
3.
4.
5.
6.
7.
select 
case 
 when f=1 
  then 1 
  else (select gigabytes from the_stored_proc(f)) 
 end
from gigatable



можно ли быть уверенным, что для записей, у которых f=1, хранимая процедура не будет вызываться?
...
Рейтинг: 0 / 0
ленив ли case?
    #38598815
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buddenможно ли быть уверенным, что для записей, у которых f=1, хранимая процедура не будет вызываться?
Есть повод для сомнений?
...
Рейтинг: 0 / 0
ленив ли case?
    #38598848
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
budden> можно ли быть уверенным, что для записей, у которых f=1,
budden> хранимая процедура не будет вызываться?

Да, конечно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ленив ли case?
    #38598882
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам, wadman,
спасибо за ответы. Но вот тут

http://www.firebirdsql.org/refdocs/langrefupd25-case.html

я не вижу, чтобы это утверждалоь. Это где-то документировано?

Я сейчас не вспомню, но некоторое время назад я столкнулся с какой-то странностью,
кажется, в coalesce, которая дала повод сомневаться. В запарке быстро переписал тот
кусок кода, а теперь его и не найти уже. Поэтому пример подогнать не смогу.
...
Рейтинг: 0 / 0
ленив ли case?
    #38598924
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
budden> я не вижу, чтобы это утверждалоь.

Ну, видимо, при написании Пол думал, что это итак всем очевидно.
Там и другие косяки есть - к примеру, нет проверки на непересечение.

> Это где-то документировано?

Нет, IIRC. ОК, добавим (только в русский вариант).

> Я сейчас не вспомню, но некоторое время назад я столкнулся с какой-то
> странностью, кажется, в coalesce, которая дала повод сомневаться.

Ну, пример надо вспомнить, у коалески есть свои особенности.
Наверное, дело касалось не значения результата, а его типа/длины?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ленив ли case?
    #38598931
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам, насколько вспомнил, да. Там вроде были проблемы с преобразованием типа и в итоге они локализовались в той части coalesce, которая вроде не должна была вычисляться.
...
Рейтинг: 0 / 0
ленив ли case?
    #38598995
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
budden> насколько вспомнил, да

Ну, с типом данных и с case аналогично - он определяется
на момент компиляции запроса, а не его выполнения. :)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ленив ли case?
    #38607789
budden
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам, спасибо!
...
Рейтинг: 0 / 0
ленив ли case?
    #38607938
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фигасе временной лаг. :) На здоровье. :)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / ленив ли case?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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