From: | "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at> |
---|---|
To: | "Ivan Sergio Borgonovo *EXTERN*" <mail(at)webthatworks(dot)it>, <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: HOWTO caching data across function calls: temporary tables, cursor? |
Date: | 2008-04-01 10:01:21 |
Message-ID: | D960CB61B694CF459DCFB4B0128514C201ED2709@exadv11.host.magwien.gv.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Ivan Sergio Borgonovo wrote:
> I've a bunch of functions that operates on the basket (a smaller list
> of products with their attributes).
>
> So many functions ends up in repeating over and over a select similar
> to:
>
> select [list of columns] from baskets b
> join basket_items bi on b.basket_=bi.basket_id
> join items i on i.item_id=bi.item_id
> join item_attributes a a.item_id=i.item_id
> where b.basket_id=$1
>
> It would be nice if I could avoid to execute this query over and over.
> I'd have to find a way to pass this data across functions.
You could pass arrays containing the selected rows between functions.
Something like:
CREATE TYPE basket_row AS(id integer, name text, count integer, ...);
CREATE FUNCTION sell (items basket_row[]) RETURNS boolean LANGUAGE plpgsql
AS $$........$$;
Yours,
Laurenz Albe
From | Date | Subject | |
---|---|---|---|
Next Message | josep porres | 2008-04-01 10:50:28 | minimum and maximum functions |
Previous Message | Martijn van Oosterhout | 2008-04-01 09:26:02 | Re: Using tables in other PostGreSQL database |