Re: pg_upgrade and materialized views
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Claudio Freire <klaussfreire@gmail.com>
Cc: pgsql-bugs@postgresql.org
Date: 2018-02-20T23:44:47Z
Lists: pgsql-bugs
Claudio Freire <klaussfreire@gmail.com> writes: >> Well, the attached script reproduces the issue. One thing this doesn't prove by itself is whether the use of REFRESH MATERIALIZED VIEW CONCURRENTLY has any effect on the situation. I poked at that a bit and noted that REFRESH MATERIALIZED VIEW CONCURRENTLY doesn't seem to change the matview's relfrozenxid at all, while a plain REFRESH advances the matview's relfrozenxid to (more or less) the current xid counter. That probably isn't a bug, but maybe there's a missed optimization opportunity there. At any rate, the matview's relfrozenxid isn't going backwards, so my original fear seems unfounded. Anyway, I'm thinking the core of the problem here is that we've got multiple places that know which relkinds are physically transferred during a pg_upgrade, and they don't all know the same thing. We need to centralize that knowledge somehow, or we're going to be singing this same tune again in the future. Not quite sure where to put it though. pg_dump and pg_upgrade both need to know that, but the backend doesn't, so I don't quite want to add it in pg_class.h where the core list of relkinds is. regards, tom lane
Commits
-
Repair pg_upgrade's failure to preserve relfrozenxid for matviews.
- d3b0a23a2093 9.3.22 landed
- 9936f149952b 9.5.12 landed
- 66e203c851ab 9.6.8 landed
- 5ab5d21aaa0e 10.3 landed
- 38b41f182a66 11.0 landed
- 2d12c559335e 9.4.17 landed