Re: REPOST from SQL List: Use of Setof Record Dynamically

From: Joe Conway <mail(at)joeconway(dot)com>
To: A E <cooljoint(at)yahoo(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: REPOST from SQL List: Use of Setof Record Dynamically
Date: 2003-12-27 01:46:11
Message-ID: 3FECE463.4080009@joeconway.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

A E wrote:
> I am attempting to use Setof Record dynamically. I am developing an
> application where I will not know what the end-user is trying to work
> with from a web front end. Thus I will not know before hand the
> structure of the table I am trying to pull the record from.

[code]

> I know that I would execute the procedure with select * from
> retrievecollection as x(x typex, y typey) but how do I do this if I
> don't know which table was passed to the function?

The short answer is there is no way to do what you seem to want to do,
at least not directly.

You might try storing a suitable column definition string ("columndef")
in the "applicationaliases" table for each referenced table. From your
web page first do:

SELECT columndef
FROM applicationaliases
WHERE tablealias = qoute_literal(tablealias);

Alternatively you could dynamically build the columndef based on tablename.

Then use the result to build the second query; something like:

SELECT *
FROM retrievecollection($tablealias, $crmid, $username)
AS ($columndef);

HTH,

Joe

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Chris Travers 2003-12-27 01:58:42 Re: Is my MySQL Gaining ?
Previous Message Tom Lane 2003-12-27 00:46:58 Re: update i386 spinlock for hyperthreading