CREATE OR REPLACE FUNCTION show (text, text) RETURNS setof record AS $$ select table_name,column_name,data_type from information_schema.columns where table_name like $1 || '%' and column_name like $2 || '%'; $$ LANGUAGE sql; /* actual output * * test=# select show('ord','car'); * * show *-------------------------------------- * (orders,carrier,"character varying") *(1 row) * * * * desired output * * test=# select table_name,column_name,data_type from information_schema.columns where table_name like '%ord%' and column_name like '%car%'; * * * table_name | column_name | data_type *------------+-------------+------------------- * orders | carrier | character varying *(1 row) * */