| From: | Wes Cravens <wcravens(at)cortex-it(dot)com> |
|---|---|
| To: | pgsql-general(at)postgresql(dot)org |
| Subject: | Re: Returning a row from a function with an appended array field |
| Date: | 2011-11-10 01:54:15 |
| Message-ID: | 4EBB2EC7.7010103@cortex-it.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
On 11/9/2011 7:34 PM, David Johnston wrote:
> On Nov 9, 2011, at 20:19, Wes Cravens <wcravens(at)cortex-it(dot)com> wrote:
>
>> I have an adjacency list kind of table
>>
>> CREATE TABLE thingy (
>> id int,
>> parent int
>> );
>>
>> I'd like to be able to write a procedural function that returns a row or
>> rows from this table with an appended field that represents the children.
>>
>> Something like this pseudo code:
>>
>> FOR row IN SELECT * FROM thingy
>> LOOP
>> RETURN NEXT row,[SELECT id FROM thingy WHERE parent_id = id]
>> END LOOP,
>> RETURN
>>
>> Any help much appreciated,
>>
>> Wes
>>
>
> Use "WITH RECURSIVE" instead of a function.
>
I apologize but I don't know how that would work. An example would help.
Also... my pseudo code above was a little flawed:
RETURN NEXT row,[SELECT id FROM thingy WHERE parent_id = id]
should be...
RETURN NEXT row,[SELECT id FROM thingy WHERE parent_id = row.id]
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dennis Ryan | 2011-11-10 04:58:01 | How to list installed pl languages |
| Previous Message | David Morton | 2011-11-10 01:43:27 | PG 9.0.5 RPM's for SLES - Where to get !? |