I am trying to write a PL/PgSQL function that can be given a table name as an argument at execution time and I don't see any way of doing it. I want the user to be able to specify the table dynamically when the function is run.
As an example, if I try the following:
CREATE OR REPLACE FUNCTION scrub() RETURNS VARCHAR AS ' DECLARE tl pg_tables%ROWTYPE; BEGIN FOR tl IN SELECT * FROM pg_tables LOOP RAISE INFO ''table %'', tl.tablename; SELECT * FROM tl.tablename;
Try EXECUTE 'SELECT ....
where the execute parameter is created by assembling the select statement string.