Re: Recursive function - Mailing list pgsql-sql

From Nick Stone
Subject Re: Recursive function
Date
Msg-id 20050705062903.8BB0C24DEF9@smtp.nildram.co.uk
Whole thread Raw
In response to Recursive function  (Gnanavel Shanmugam <s.gnanavel@inbox.com>)
List pgsql-sql
Hi,

Also you could take a look at the connectby function as this will do what
you want with ease and it can be used to sort stuff at the same time,
produce tree views of data etc.

Nick 

-----Original Message-----
From: pgsql-sql-owner@postgresql.org [mailto:pgsql-sql-owner@postgresql.org]
On Behalf Of Gnanavel Shanmugam
Sent: 05 July 2005 06:05
To: pgsql-sql@postgresql.org
Subject: [SQL] Recursive function

Hi,
I have a table with the following details.
section_type_id | section_type_name | parent_section_type_id
-----------------+-------------------+------------------------             10 | Unit              |             20 |
Block            |                     10             30 | Practice          |                     20             40 |
SubPractice      |                     30
 

I've written a function as this

CREATE or replace FUNCTION get_child_section_types(int) RETURNS setof int   AS $$    declare        v_section_type_id
aliasfor $1;        v_rec record;       begin        for v_rec in select section_type_id from
 
master_section_type where parent_section_type_id=v_section_type_id loop            return next v_rec.section_type_id;
    end loop;        return;       end;
 
$$   LANGUAGE plpgsql;

which returns output like,

select * from get_child_section_types(10);  get_child_section_types
-------------------------                     20

but I need the function to return all section types under the child nodes
too.
So, how to make the function to be recursive.

with thanks & regards,
S.Gnanavel
---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to      choose an index scan if your joining column's
datatypesdo not      match
 





pgsql-sql by date:

Previous
From: Gnanavel Shanmugam
Date:
Subject: Re: Recursive function
Next
From: Din Adrian
Date:
Subject: Re: Help on Procedure running external function