Handle arrays and ranges in pg_upgrade's test for non-upgradable types.
Tom Lane <tgl@sss.pgh.pa.us>
Handle arrays and ranges in pg_upgrade's test for non-upgradable types. pg_upgrade needs to check whether certain non-upgradable data types appear anywhere on-disk in the source cluster. It knew that it has to check for these types being contained inside domains and composite types; but it somehow overlooked that they could be contained in arrays and ranges, too. Extend the existing recursive-containment query to handle those cases. We probably should have noticed this oversight while working on commit 0ccfc2822 and follow-ups, but we failed to :-(. The whole thing's possibly a bit overdesigned, since we don't really expect that any of these types will appear on disk; but if we're going to the effort of doing a recursive search then it's silly not to cover all the possibilities. While at it, refactor so that we have only one copy of the search logic, not three-and-counting. Also, to keep the branches looking more alike, back-patch the output wording change of commit 1634d3615. Back-patch to all supported branches. Discussion: https://postgr.es/m/31473.1573412838@sss.pgh.pa.us
Files
| Path | Change | +/− |
|---|---|---|
| contrib/pg_upgrade/version.c | modified | +98 −57 |
Discussion
- pg_upgrade fails to detect unsupported arrays and ranges 12 messages · 2019-11-10 → 2021-04-28