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