Re: factorial function/phase out postfix operators?
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Robert Haas <robertmhaas@gmail.com>
Cc: John Naylor <john.naylor@2ndquadrant.com>,
Mark Dilger <mark.dilger@enterprisedb.com>,
Vik Fearing <vik@postgresfriends.org>,
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-08-27T14:04:04Z
Lists: pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> Yeah, that looks like a good spot. I think we should also add
> something to the documentation of the factorial operator, mentioning
> that it will be going away. Perhaps we can advise people to write !!3
> instead of 3! for forward-compatibility, or maybe we should instead
> suggest numeric_fac(3).
Well, the !! operator itself has been "deprecated" for a long time:
regression=# \do+ !!
List of operators
Schema | Name | Left arg type | Right arg type | Result type | Function | Description
------------+------+---------------+----------------+-------------+-------------+---------------------------
pg_catalog | !! | | bigint | numeric | numeric_fac | deprecated, use ! instead
pg_catalog | !! | | tsquery | tsquery | tsquery_not | NOT tsquery
(2 rows)
I'm a bit inclined to kill them both off and standardize on factorial()
(not numeric_fac).
regards, tom lane
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