The following bug has been logged on the website:
Bug reference: 13444
Logged by: Sergi Casbas
Email address: sergi.casbas@iris.cat
PostgreSQL version: 9.4.4
Operating system: Debian 8
Description:
When I try to recover a dump made with pg_dump, psql can't recovery some
materialized views because the views use a function that is not created yet
in the dump sql.
Example:
SET check_function_bodies = false;
SET client_min_messages = warning;
SET default_tablespace = '';
SET search_path = public, pg_catalog;
CREATE MATERIALIZED VIEW testmview AS
SELECT publicz.testfunc() AS testfunc
WITH NO DATA;
CREATE SCHEMA publicz;
SET search_path = publicz, pg_catalog;
CREATE FUNCTION testfunc() RETURNS integer
LANGUAGE sql
AS $$SELECT 1;$$;
If we swap the order between public an publicz creation it works.