I am interested in learning how to use dynamic functions in Postgres. I basically need a dynamic function that will spit out a table or a subtable (a few chosen columns from an existing table).
I've created the following eval() function, but it is not working as I'd like it to. I would like my function to return the result of a query that is introduced as a string within the function. The function currently returns only the first value from the first column (enrich_d_dkj_p_k27ac). It seems like I should change my returns from text to something else?
create or replace function eval() returns text as $body$ declare result text; begin execute 'select enrich_d_dkj_p_k27ac,enrich_lr_dkj_p_k27ac,enrich_r_dkj_p_k27ac from dkj_p_k27ac' into result; return result; end; $body$ language plpgsql; SELECT eval(); Result is:
eval text 2.4 But this is basically only the very first value of the first column - I will need the entire table to appear - or in other words - the result of the indicated SELECT.