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