XversionUpgrade tests broken by postfix operator removal
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Andrew Dunstan <andrew@dunslane.net>
Cc: pgsql-hackers@lists.postgresql.org, pgbf@twiska.com
Date: 2020-09-18T14:39:10Z
Lists: pgsql-hackers
Unsurprisingly, commit 1ed6b8956 has led to the buildfarm's
cross-version upgrade tests no longer working, eg
https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=tadarida&dt=2020-09-18%2013%3A06%3A52
Checking for reg* data types in user tables ok
Checking for contrib/isn with bigint-passing mismatch ok
Checking for user-defined postfix operators fatal
Your installation contains user-defined postfix operators, which are not
supported anymore. Consider dropping the postfix operators and replacing
them with prefix operators or function calls.
A list of user-defined postfix operators is in the file:
postfix_ops.txt
I intentionally let that happen, figuring that it'd be good to get some
buildfarm cycles on the new code in pg_upgrade that does this check.
But now we have to think about updating the test. I think the best
bet is just to add some DROP OPERATOR commands to the existing
cleanup logic in TestUpgradeXversion.pm. It looks like this would
do the trick:
drop operator #@# (bigint,NONE);
drop operator #%# (bigint,NONE);
drop operator !=- (bigint,NONE);
drop operator #@%# (bigint,NONE);
We could shorten this list a bit by changing create_operator.sql
in the back branches --- most of these have no particular reason
to be postfix rather than prefix operators. I would not want to
remove them all, though, since that'd result in loss of test
coverage for postfix operators in the back branches.
regards, tom lane
Commits
-
In pg_upgrade cross-version test, handle postfix operators.
- fa744697c791 14.0 landed
-
Use factorial rather than numeric_fac in create_operator.sql.
- cc7b27da7fb8 11.10 landed
- a950fb073426 10.15 landed
- 9ab5ed4194f3 13.0 landed
- 760b8fe766bc 9.5.24 landed
- 1e00333ffa2e 9.6.20 landed
- 1af91dc032cf 12.5 landed
-
Remove support for postfix (right-unary) operators.
- 1ed6b895634c 14.0 cited