From: | Ivan Sergio Borgonovo <mail(at)webthatworks(dot)it> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: HOWTO caching data across function calls: temporary tables, cursor? |
Date: | 2008-04-01 11:32:04 |
Message-ID: | 20080401133204.77e7b63d@webthatworks.it |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Tue, 1 Apr 2008 12:01:21 +0200
"Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at> wrote:
> 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 $$........$$;
It doesn't look as I can do the same stuff with array and
tables/records.
Many times I use joint or aggregates on the basket.
Is there any good tutorial/example on how to use cursors or temp
tables in such circumstance?
--
Ivan Sergio Borgonovo
http://www.webthatworks.it
From | Date | Subject | |
---|---|---|---|
Next Message | rupesh | 2008-04-01 11:56:06 | BUG #4078: ERROR: operator does not exist: numeric = character varying |
Previous Message | x asasaxax | 2008-04-01 11:26:44 | Re: Primary Key with serial the solution? |