Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Informix Новый топик    Ответить
 рекурсивная процедура.  [new]
Андре_А
Member

Откуда:
Сообщений: 31
Добрый день!

Скажите новичку как рекурсивно вызвать хранимую процедуру?
Задача - выбрать все узлы поддерева, независимо от глубины вложенности
9 фев 10, 12:34    [8316412]     Ответить | Цитировать Сообщить модератору
 Re: рекурсивная процедура.  [new]
victor16
Member

Откуда:
Сообщений: 591
Точно так же, как и в других языках, все ограничено размером стэка.
Кроме этого, в Информиксе есть иерархичексие запросы.

С уважением,
Виктор

С уважением,
Виктор
9 фев 10, 12:59    [8316623]     Ответить | Цитировать Сообщить модератору
 Re: рекурсивная процедура.  [new]
Daugava
Member

Откуда: Riga-Kiev-Gurzuf
Сообщений: 718
Рекурсия конечно вещь хорошая, но прибегая к ней готовьтесь встретить доселе не виданные проблемы. Кроме стека, еще и багов там было не мало, честно говоря как сейчас дело обстоит не знаю (разработчик старались по прибирать рекурсию везде где только возможно), но еще лет 10 назад, это был просто бич божий.
9 фев 10, 13:35    [8316922]     Ответить | Цитировать Сообщить модератору
 Re: рекурсивная процедура.  [new]
АнатоЛой
Member

Откуда: Киев, Украина
Сообщений: 2897
Блог
Daugava
Рекурсия конечно вещь хорошая, но прибегая к ней готовьтесь встретить доселе не виданные проблемы. Кроме стека, еще и багов там было не мало, честно говоря как сейчас дело обстоит не знаю (разработчик старались по прибирать рекурсию везде где только возможно), но еще лет 10 назад, это был просто бич божий.

На 7.31 с 2001-го и дальше года проблем с рекурсией не встречал.
На 9.4 с 2006-го не встречал.
На 10-ке - рекурсию не пробовал
На 11-ке - встретил. Пофиксено начиная с 11.10.FC2W1.
11 фев 10, 10:28    [8327294]     Ответить | Цитировать Сообщить модератору
 Re: рекурсивная процедура.  [new]
vasilis
Member

Откуда: Украина, Киев
Сообщений: 2205
АнатоЛой
Daugava
Рекурсия конечно вещь хорошая, но прибегая к ней готовьтесь встретить доселе не виданные проблемы. Кроме стека, еще и багов там было не мало, честно говоря как сейчас дело обстоит не знаю (разработчик старались по прибирать рекурсию везде где только возможно), но еще лет 10 назад, это был просто бич божий.

На 7.31 с 2001-го и дальше года проблем с рекурсией не встречал...

Ну, так Daugava и сказал, что "лет 10 назад", так что ты просто не застал то время :)
А проблемы действительно когда-то были и глубину рекурсии приходилось искусственно ограничивать счетчиками и еще какими-то примочками.
11 фев 10, 12:12    [8328526]     Ответить | Цитировать Сообщить модератору
 Re: рекурсивная процедура.  [new]
falcon111
Member

Откуда:
Сообщений: 147
victor16
Кроме этого, в Информиксе есть иерархичексие запросы


Кстати, в последнее время часто смотрю на них - то что доктор прописал, но до практического применения руки пока не дошли - в планах на ближайшее.

Поэтому вопрос тем, кто уже использует их на практике - стоимость таких запросов намного больше "обычных" select -ов?
11 фев 10, 23:51    [8332905]     Ответить | Цитировать Сообщить модератору
 Re: рекурсивная процедура.  [new]
Журавлев Денис
Member

Откуда: St.John,NB,CA
Сообщений: 5532
falcon111

Поэтому вопрос тем, кто уже использует их на практике - стоимость таких запросов намного больше "обычных" select -ов?
В смысле почему? Потому что невозможно заранее оценить глубину рекурсии. Пример покажите, объясним.
15 фев 10, 23:34    [8349209]     Ответить | Цитировать Сообщить модератору
 Re: рекурсивная процедура.  [new]
falcon111
Member

Откуда:
Сообщений: 147
Журавлев Денис
falcon111

Поэтому вопрос тем, кто уже использует их на практике - стоимость таких запросов намного больше "обычных" select -ов?
В смысле почему? Потому что невозможно заранее оценить глубину рекурсии. Пример покажите, объясним.


Я имел ввиду, что мне кажется, что поскольку в иерархии по индексам ходить надо в зависимости от получаемых данных, то мне думается, что нагрузку такие запросы будут создавать бОльшую.

Хотя на практике - поигрался, с одной таблицей все работает, но стОит попытаться извлечь из иерархии практическую пользу - join с другими таблицами - на FC6 получаю -999 not inplemented yet

Так что есть-то они есть, только толку... ;(

PS: Да, про временные таблицы и селекты из селектов и прочие варианты я все в курсе, просто это уже костыли - неприятно.
24 фев 10, 16:44    [8387112]     Ответить | Цитировать Сообщить модератору
Все форумы / Informix Ответить