Re: Postgreql 8.0.3 temporary Table Strange behaviour

From: Richard Huxton <dev(at)archonet(dot)com>
To: Dany De Bontridder <dany(at)alchimerys(dot)be>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Postgreql 8.0.3 temporary Table Strange behaviour
Date: 2006-04-24 08:43:49
Message-ID: 444C8FC5.4040503@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Dany De Bontridder wrote:
> If you have a look to the following code, I'm trying to work around
> the limitation about execute, which doesn't accept "select into".

http://www.postgresql.org/docs/8.0/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN

The results from SELECT commands are discarded by EXECUTE, and SELECT
INTO is not currently supported within EXECUTE. So there is no way to
extract a result from a dynamically-created SELECT using the plain
EXECUTE command. There are two other ways to do it, however: one is to
use the FOR-IN-EXECUTE loop form described in Section 35.7.4, and the
other is to use a cursor with OPEN-FOR-EXECUTE, as described in Section
35.8.2.

Do these two not solve your problem?

> So
> I call the function with a table name as parameter, the function
> insert a record in a temporary table, retrieve it and return it.
>
> The strange thing, is that the table is created if it doesn't exist,
> and is dropped after a commit. Just like the sql is already parsed
> and cannot be re-parsed.

The final "select ... from tt ..." is just that.

--
Richard Huxton
Archonet Ltd

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Richard Huxton 2006-04-24 08:48:16 Re: to know
Previous Message Jo De Haes 2006-04-24 08:03:56 Re: invalid page header