From: | Robert Treat <xzilla(at)users(dot)sourceforge(dot)net> |
---|---|
To: | Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com> |
Cc: | Egor Shipovalov <pgsql_list(at)eonline(dot)ru>, Pgsql-General <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Stored procedure advice needed |
Date: | 2003-08-22 15:16:50 |
Message-ID: | 1061565410.4596.164.camel@camel |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
This sounds an awful lot like crosstab functionality, Check out the
tablefunc module in contrib, I think there is something in there that
will help you with this.
Robert Treat
On Thu, 2003-08-21 at 16:11, Stephan Szabo wrote:
>
> On Thu, 21 Aug 2003, Egor Shipovalov wrote:
>
> > I have a lot of tables of the same structure that represent weekly states of
> > a certain system. I'd like to write a function that would take field name,
> > number of weeks and return history of that field values as a single row. I
> > imagine something like this:
> >
> > SELECT * FROM history('temperature', 10);
> >
> > This should give me 11-column row, with first column being 'temperature',
> > and then its values for past ten weeks. Being able to use a set or SELECT in
> > place of paramater name and get several rows for different fields would be
> > even better.
> >
> > I've read through the documentation, but how to do it is still unclear to
> > me. It looks like I should create and populate a RECORD-type variable inside
> > my function, but as I try to do this, I get the following errors:
> >
> > WARNING: Error occurred while executing PL/pgSQL function test
> > WARNING: line 5 at assignment
> > ERROR: record "history_data" is unassigned yet - don't know its tuple
> > structure
>
> You can select a bunch of dummy data of the appropriate types into
> history_data. However, it sounds like since you won't know the number of
> columns (or possibly their types) until runtime you may need to do
> something marginally complicated to make that work like a
> for history_date in execute 'select ...' loop end loop type thing.
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
--
Build A Brighter Lamp :: Linux Apache {middleware} PostgreSQL
From | Date | Subject | |
---|---|---|---|
Next Message | Shridhar Daithankar | 2003-08-22 15:17:54 | Re: [HACKERS] Buglist |
Previous Message | Jan Wieck | 2003-08-22 15:08:56 | Re: [HACKERS] Buglist |