Creating a function to return some data from an existent table. Im constructing the schema.table for the select query dynamically based on function parameters passed on run time but when calling the function it returns nothing.
Code below
DROP TYPE IF EXISTS metadata.RETURNED_DATA CASCADE;
CREATE TYPE metadata.RETURNED_DATA AS
(
postal_id BIGINT,
postal_code VARCHAR(15),
admin_id BIGINT,
admin_code VARCHAR(11)
);
DROP FUNCTION IF EXISTS metadata.pc_get_data(VARCHAR, VARCHAR, VARCHAR);
CREATE OR REPLACE FUNCTION metadata.pc_get_data(reg CHARACTER VARYING, iso CHARACTER VARYING,
pcode CHARACTER VARYING
) RETURNS SETOF metadata.RETURNED_DATA
LANGUAGE plpgsql
AS
$$
BEGIN
EXECUTE FORMAT(
'SELECT postal_id,
postal_code,
admin_id,
admin_code
FROM %I_content.%I_pc_aet_data
WHERE postal_code = %L', reg, iso, pcode);
END
$$;
SELECT *
FROM pc_get_data('aaa', 'bbb', '12345');