-- -- util__table_column_exists/2 -- create or replace function util__table_column_exists( p_table_name text, p_column text ) returns bool as $$ DECLARE v_schema varchar; v_tablename varchar; BEGIN IF (position('.' in p_table_name) = 0) THEN -- -- table without a schema name -- return exists ( select 1 from information_schema.columns c where table_name = lower(p_table_name) and column_name = lower(p_column)); ELSE -- -- table with schema name -- SELECT split_part(p_table_name, '.', 1) into v_schema; SELECT split_part(p_table_name, '.', 2) into v_tablename; return exists ( select 1 from information_schema.columns where p_table_name = lower(v_tablename) and column_name = lower(p_column) and table_schema = v_schema); END IF; END; $$ language plpgsql;