postgresql/contrib/pg_upgrade
Tom Lane 56c06999d3 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
2019-11-13 11:35:37 -05:00
..
.gitignore Update .gitignore for pg_upgrade 2014-12-17 11:57:29 +01:00
check.c pg_upgrade: start/stop new server after pg_resetwal 2017-06-20 13:20:02 -04:00
controldata.c pg_upgrade: issue helpful error message for use on standbys 2018-08-17 10:25:48 -04:00
dump.c Ensure that all temp files made during pg_upgrade are non-world-readable. 2018-02-05 10:58:27 -05:00
exec.c pg_upgrade: simplify code layout in a few places 2018-01-05 14:11:14 -05:00
file.c Ensure that all temp files made during pg_upgrade are non-world-readable. 2018-02-05 10:58:27 -05:00
function.c pg_upgrade: fix CopyFile() on Windows to fail on file existence 2015-11-24 17:18:28 -05:00
IMPLEMENTATION Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
info.c pg_dump, pg_upgrade: allow postgres/template1 tablespace moves 2015-09-11 15:51:11 -04:00
Makefile Fix contrib/pg_upgrade to clean all the cruft made during "make check". 2014-01-02 14:20:28 -05:00
option.c pg_upgrade: fix CopyFile() on Windows to fail on file existence 2015-11-24 17:18:28 -05:00
page.c pgindent run for 9.4 2014-05-06 12:12:18 -04:00
parallel.c Make error handling in parallel pg_upgrade less bogus. 2018-12-16 14:51:48 -05:00
pg_upgrade.c pg_upgrade: check for clean server shutdowns 2018-07-28 15:01:55 -04:00
pg_upgrade.h Ensure that all temp files made during pg_upgrade are non-world-readable. 2018-02-05 10:58:27 -05:00
relfilenode.c pg_upgrade: fix CopyFile() on Windows to fail on file existence 2015-11-24 17:18:28 -05:00
server.c Empty search_path in Autovacuum and non-psql/pgbench clients. 2018-02-26 07:39:48 -08:00
tablespace.c Fix misc typos, mostly in comments. 2018-07-18 16:54:45 +03:00
test.sh Prevent msys2 conversion of "cmd /c" switch to a file path 2019-09-09 09:03:41 -04:00
TESTING Rename 'gmake' to 'make' in docs and recommended commands 2014-02-12 17:29:19 -05:00
util.c Obstruct shell, SQL, and conninfo injection via database and role names. 2016-08-08 10:07:51 -04:00
version.c Handle arrays and ranges in pg_upgrade's test for non-upgradable types. 2019-11-13 11:35:37 -05:00
version_old_8_3.c Obstruct shell, SQL, and conninfo injection via database and role names. 2016-08-08 10:07:51 -04:00