On tis, 2011-08-30 at 16:25 -0400, Tom Lane wrote:
> So I think that as given, this script is only useful for testing
> pg_upgrade of $currentversion to $currentversion. Which is surely
> better than no test at all, but it would not for example have caught
> the 8.3 incompatibility that was just reported.
Well, the goal was always current to current version. Cross-version
testing is obviously important, but will be quite a bit harder.
> How can we improve things here? I've toyed with the idea of
> installing pg_regress.so so that we can refer to it relative to
> $libdir, but that might be a bit invasive, especially if we were to
> try to back-patch it as far as 8.3.
Aside from hesitations to backpatch those sorts of changes, it would
effectively prevent us from ever removing anything from the C libraries
used in the regression tests, because we need to keep the symbols around
so that the schema dump can load successfully into the new instance.
I think a solution would have to be one of:
1) pg_upgrade needs a mode to cope with these situations. It can tell
the user, I upgraded your installation, but some dynamic modules appear
to be missing, you need to sort that out before you can put this back
into use.
2) Design a different test schema to load into the database before
running pg_upgrade. This would then be a one-line change in the script.