Re: Recursive function that receives a list of IDs and returns all child IDs
От | Sven Haag |
---|---|
Тема | Re: Recursive function that receives a list of IDs and returns all child IDs |
Дата | |
Msg-id | 4D8BBC62.8080009@gmx.de обсуждение исходный текст |
Ответ на | Re: Recursive function that receives a list of IDs and returns all child IDs (Merlin Moncure <mmoncure@gmail.com>) |
Список | pgsql-general |
thanks a lot! that function does it exactly as wished ;)! Am 23.03.2011 22:46, schrieb Merlin Moncure: > On Wed, Mar 23, 2011 at 10:29 AM, Sven Haag<sven-haag@gmx.de> wrote: >> hello pgsql fans out there, >> >> i've already created a function that returns a list of IDs of all sub-samples based on a given sample ID. this works fine.now i like to extend this function so that it can receive a list of sample IDs. e.g.: >> >> fn_get_subsamples(IN sample_numbers SETOF integer) >> >> >> here is the existing function: >> >> CREATE OR REPLACE FUNCTION fn_get_subsamples(IN sample_number integer) >> RETURNS SETOF integer AS >> $BODY$ >> WITH RECURSIVE recursetree(sample_number) AS ( >> SELECT sample_number >> FROM sample >> WHERE parent_sample = $1 >> >> UNION ALL >> >> SELECT t.sample_number >> FROM sample t >> JOIN recursetree rt ON rt.sample_number = t.parent_sample >> ) >> >> SELECT sample_number >> FROM recursetree; >> $BODY$ >> LANGUAGE sql VOLATILE > > CREATE OR REPLACE FUNCTION fn_get_subsamples(IN sample_numbers integer[]) > RETURNS SETOF integer AS > $BODY$ > WITH RECURSIVE recursetree(sample_number) AS ( > SELECT sample_number > FROM sample > WHERE parent_sample in (select unnest($1)) > > UNION ALL > > SELECT t.sample_number > FROM sample t > JOIN recursetree rt ON rt.sample_number = t.parent_sample > ) > > SELECT sample_number > FROM recursetree; > $BODY$ > LANGUAGE sql VOLATILE > > merlin >
В списке pgsql-general по дате отправления: