Re: factorial function/phase out postfix operators?
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Mark Dilger <mark.dilger@enterprisedb.com>
Cc: John Naylor <john.naylor@2ndquadrant.com>, Tom Lane <tgl@sss.pgh.pa.us>, Vik Fearing <vik@postgresfriends.org>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-09-11T15:06:26Z
Lists: pgsql-hackers
On Thu, Sep 3, 2020 at 11:50 AM Mark Dilger <mark.dilger@enterprisedb.com> wrote: > Since newer pg_dump binaries can be used to dump data from older servers, and since users might then load that dump back into an older server, I think doing anything stronger than a pg_log_warning() would be incorrect. I did not find precedents under comparable circumstances for taking stronger actions than pg_log_warning. I assume we can't, for example, omit the operator from the dump, nor can we abort the process. I'm not sure that this is the right solution. Generally, the recommendation is that you should use the pg_dump that corresponds to the server version where you want to do the reload, so if you're hoping to dump 9.6 and restore on 11, you should be using the pg_dump from 11, not 14. So my thought would be that if there are user-defined postfix operators, pg_dump ought to error out. However, that could be inconvenient for people who are using pg_dump in ways that are maybe not what we would recommend but which may happen to work but for this issue, so I'm not sure. On the third hand, though, we think that there are very few user-defined postfix operators out there, so if we just give an error, we probably won't be inconveniencing many people. I'm not sure who is going to commit this work, and that person may have a different preference than me. However, if it's me, I'd like to see the removal of the existing postfix operators broken off into its own patch, separate from the removal of the underlying facility to have postfix operators. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
Commits
-
Remove precedence hacks no longer needed without postfix operators.
- 28a61fc6c58f 14.0 landed
-
Allow most keywords to be used as column labels without requiring AS.
- 06a7c3154f5b 14.0 landed
-
Remove support for postfix (right-unary) operators.
- 1ed6b895634c 14.0 landed
-
Remove factorial operators, leaving only the factorial() function.
- 76f412ab3105 14.0 landed
-
Further refine patch for commenting operator implementation functions.
- 908ab8028640 9.1.0 cited