Re: factorial function/phase out postfix operators?

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: Mark Dilger <mark.dilger@enterprisedb.com>
Cc: Robert Haas <robertmhaas@gmail.com>, John Naylor <john.naylor@2ndquadrant.com>, Vik Fearing <vik@postgresfriends.org>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-09-11T20:51:50Z
Lists: pgsql-hackers
Mark Dilger <mark.dilger@enterprisedb.com> writes:
> On Sep 11, 2020, at 12:54 PM, Robert Haas <robertmhaas@gmail.com> wrote:
>> On Fri, Sep 11, 2020 at 3:23 PM Mark Dilger
>> <mark.dilger@enterprisedb.com> wrote:
>>> Another option would be to have pg_dump take a strictness mode option.  I don't think the option should have anything to do with postfix operators specifically, but be more general like --dump-incompatible-objects vs. --omit-incompatible-objects vs. --error-on-incompatible-objects vs. --do-your-best-to-fixup-incompatible-objects, with one of those being the default (and with all of them having better names).  If --error-on-incompatible-objects were the default, that would behave as Robert recommended upthread.
>>> I can totally see an objection to the added complexity of such options, so I'm really just putting this out on the list for comment.

>> I'm not opposed to Tom's proposal. I just wanted to raise the issue
>> for discussion.

> Ah, ok.  I don't feel any need for changes, either.  I'll leave the
> patch as it stands now.

We're in violent agreement it seems.

At some point it might be worth doing something like what Mark suggests
above, but this patch shouldn't be tasked with it.  In any case, since
pg_dump does not know what the target server version really is, it's
going to be hard for it to authoritatively distinguish what will work
or not.

			regards, tom lane



Commits

  1. Remove precedence hacks no longer needed without postfix operators.

  2. Allow most keywords to be used as column labels without requiring AS.

  3. Remove support for postfix (right-unary) operators.

  4. Remove factorial operators, leaving only the factorial() function.

  5. Further refine patch for commenting operator implementation functions.