The impossibility of a function as a pointer seems clear to me: if it was possible, it would switch off the planner. But it should not be the case. For example: the planner could postpone planning if it detected a function that returns a set, execute it and wait for the results, and then use the results for planning of the outer query. This would imply a layered query planning/execution. I think this approach would seriously extend the possibilities of pg in a rather "object-oriented" way. Or am I wrong? Regards, Davor "Davor J." <DavorJ@xxxxxxxx> wrote in message news:hl1170$29jn$1@xxxxxxxxxxxxxxx > 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 > -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general