powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Рекурсия в функциях
7 сообщений из 7, страница 1 из 1
Рекурсия в функциях
    #34141719
autocommit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть функция для вывода дерева :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create or replace function get_tree(_idup int4) returns setof integer as
$$
declare 
   id_ int4;
   rec_ "Tree"%ROWTYPE;
begin
  raise notice '1';
  id_ = _idup;
  for rec_ in select * from "Tree" where idup = id_ loop
	  raise notice '2';
	  explain select * from get_tree (rec_.id);
	  return next rec_.id;
  end loop;
end;
$$
language 'plpgsql';
Рекурсии не происходит почемуто. Что не так ?
...
Рейтинг: 0 / 0
Рекурсия в функциях
    #34141812
autocommit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все спасибо разобрался так работает.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
create or replace function get_tree(_idup int4, flag int4) returns setof integer as
$$
declare 
   id_ int4;
   rec_ "Tree"%ROWTYPE;
   rec1_ "Tree"%ROWTYPE;
begin
  if flag <>  0  then
     id_ = _idup;
     return next id_;
  end if;
   for rec_ in select * from "Tree" where idup = _idup loop
          for rec1_ in select * from get_tree (rec_.id,  1 ) loop
	   return next rec1_.id;
          end loop; 
  end loop;
end;
$$
language 'plpgsql';

Код: plaintext
1.
2.
select a.id, a.name, a.idup from "Tree" as a
	inner join get_tree( 1 ,  0 ) as b on a.id = b;
...
Рейтинг: 0 / 0
Рекурсия в функциях
    #34141819
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не хочешь посмотреть модуль ltree - там уже готовые решения для работы с деревъями.
...
Рейтинг: 0 / 0
Рекурсия в функциях
    #34141824
autocommit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PoligonНе хочешь посмотреть модуль ltree - там уже готовые решения для работы с деревъями.
это в каком пакете ?
...
Рейтинг: 0 / 0
Рекурсия в функциях
    #34141827
Poligon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
autocommit PoligonНе хочешь посмотреть модуль ltree - там уже готовые решения для работы с деревъями.
это в каком пакете ?

doc\contrib\README.ltree
...
Рейтинг: 0 / 0
Рекурсия в функциях
    #34141834
autocommit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пасиб посмотрю
...
Рейтинг: 0 / 0
Рекурсия в функциях
    #34151939
DeWiL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PoligonНе хочешь посмотреть модуль ltree - там уже готовые решения для работы с деревъями.

пользую.
доволен.
рекомендую.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Рекурсия в функциях
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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