Kevin Grittner <kgrittn@gmail.com> writes:
> So you are suggesting that restoring from pg_dump output should
> generate materialized view data under a different security context
> than would be used by a REFRESH statement on the source database?
Yes. Consider the following simple example (done by a non-superuser
named joe):
create table joes_table(f1 int);
insert into joes_table values(1);
revoke insert on joes_table from joe;
pg_dump is required to be able to restore the state of this table
correctly. It will fail to do so if it issues the revoke before
loading data. The same issue applies to all data loading,
including refreshing matviews.
regards, tom lane