Search Postgresql Archives

Re: Recursive function that receives a list of IDs and returns all child IDs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 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@xxxxxx>  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


--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux