Re: Joe Celko Function

Поиск
Список
Период
Сортировка
От Ben-Nes Michael
Тема Re: Joe Celko Function
Дата
Msg-id 004601c1f113$a63d6a80$aa0f5ac2@canaan.co.il
обсуждение исходный текст
Ответ на Joe Celko Function  ("Ben-Nes Michael" <miki@canaan.co.il>)
Список pgsql-general
Great I can use it to something else, but its not resolve my problem as this
function delete one node and close one gap in the tree ( if I understood it
well ) while I wanted to create function that all it do is close gaps ( some
times big & multiplies ) that are created when I drop branches and not just
one node.

> Ben-Nes Michael wrote:
>  > Hi All
>  >
>  > Im trying to build set of function too handle nested tree structure, so
I
>  > used Joe Celco (SQL 4 Smarties).
>  >
>  > I have some problem migrating one of his function to plpgsql function
>  >
>
> You must realize that the code he gave is pseudo-code, not real code.  I
have the exact function you need.
>
> Here's the drop node function....my nested set table is called 'entity' so
just substitute your own table name.
> Each node of my tree has a unique ID 'entity_id' so this function takes in
as a parameter that unique ID to know
> which node to delete.  You may need to alter that logic slightly depending
on how your own table works.
>
> (Now that I look at it the variable dropentity_id may not be necessary)
>
> create function dropentity(int4) returns int4 as '
>    DECLARE
>      dropentity_id int4;
>      droplft int4;
>      droprgt int4;
>    BEGIN
>    select entity_id, lft, rgt
>      into dropentity_id, droplft, droprgt
>      from entity
>      where entity_id = $1;
>
>    delete from entity
>      where lft between droplft and droprgt;
>
>    update entity
>      set lft = case when lft > droplft
>                     then lft - (droprgt - droplft + 1)
>                     else lft end,
>          rgt = case when rgt > droplft
>                     then rgt - (droprgt - droplft + 1)
>                     else rgt end;
>    return 0;
>    END;
> ' language 'plpgsql';
>
> Enjoy,
> Fran
>
>


В списке pgsql-general по дате отправления:

Предыдущее
От: Fran Fabrizio
Дата:
Сообщение: Re: Joe Celko Function
Следующее
От: Fran Fabrizio
Дата:
Сообщение: Re: Joe Celko Function