pgsql: Fix dumping of matviews with indirect dependencies on primaryke - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix dumping of matviews with indirect dependencies on primaryke
Date
Msg-id E1gqmbI-0003Ai-F8@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix dumping of matviews with indirect dependencies on primary keys.

Commit 62215de29 turns out to have been not quite on-the-mark.
When we are forced to postpone dumping of a materialized view into
the dump's post-data section (because it depends on a unique index
that isn't created till that section), we may also have to postpone
dumping other matviews that depend on said matview.  The previous fix
didn't reliably work for such cases: it'd break the dependency loops
properly, producing a workable object ordering, but it didn't
necessarily mark all the matviews as "postponed_def".  This led to
harmless bleating about "archive items not in correct section order",
as reported by Tom Cassidy in bug #15602.  Less harmlessly,
selective-restore options such as --section might misbehave due to
the matview dump objects not being properly labeled.

The right way to fix it is to consider that each pre-data dependency
we break amounts to moving the no-longer-dependent object into
post-data, and hence we should mark that object if it's a matview.

Back-patch to all supported versions, since the issue's been there
since matviews were introduced.

Discussion: https://postgr.es/m/15602-e895445f73dc450b@postgresql.org

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/6e4d45b5f6babe48c066c547a7eedfc8152e5138

Modified Files
--------------
src/bin/pg_dump/pg_dump_sort.c | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)


pgsql-committers by date:

Previous
From: Peter Eisentraut
Date:
Subject: pgsql: Remove unused macro
Next
From: Tom Lane
Date:
Subject: pgsql: Doc: in each release branch,keep only that branch's own release