Function that creates a custom (temporary) table AND returns a pointer to it = impossible in pg?

From: "Davor J(dot)" <DavorJ(at)live(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Function that creates a custom (temporary) table AND returns a pointer to it = impossible in pg?
Date: 2010-02-11 13:37:46
Message-ID: hl1170$29jn$1@news.hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

What I want is something similar to this:

CREATE OR REPLACE FUNCTION f( /* "some args..." */)
RETURNS text AS
$BODY$
DECLARE
...
BEGIN
DROP TABLE IF EXISTS tbl_temp;

CREATE TEMPORARY TABLE tbl_temp(
-- "based on args..."
);

WHILE
INSERT INTO tbl_temp VALUES (/*"some values"*/);
END LOOP;

/*create indexes on it, manipulate, whatever...*/

RETURN 'tbl_temp'::text;

END;
$BODY$
LANGUAGE 'plpgsql'

Basically, what I want is a similar function f() that returns me a "pointer"
to the table which I can use in some query like this: SELECT * FROM
regclass(f()); Currently, this query only gives me one row 'tbl_temp'...,
but not what I want: "SELECT * FROM tbl_temp;" Can this be done in Postgres?

Original post:
http://forums.devshed.com/postgresql-help-21/function-that-creates-a-custom-table-and-returns-a-pointer-675539.html

Kind regards,
Davor

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Davor J. 2010-02-11 13:40:12 Function that creates a custom table AND returns it = impossible in pg?
Previous Message janandith jayawardena 2010-02-11 13:25:06 subscribe