diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2020-09-17 19:38:05 -0400 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2020-09-17 19:38:05 -0400 |
commit | 1ed6b895634ce0dc5fd4bd040e87252b32182cba (patch) | |
tree | d0f22d227e7df8ca5139baf4eba578de052f6a82 /src/include/parser/parse_oper.h | |
parent | 76f412ab310554acb970a0b73c8d1f37f35548c6 (diff) | |
download | postgresql-1ed6b895634ce0dc5fd4bd040e87252b32182cba.tar.gz postgresql-1ed6b895634ce0dc5fd4bd040e87252b32182cba.zip |
Remove support for postfix (right-unary) operators.
This feature has been a thorn in our sides for a long time, causing
many grammatical ambiguity problems. It doesn't seem worth the
pain to continue to support it, so remove it.
There are some follow-on improvements we can make in the grammar,
but this commit only removes the bare minimum number of productions,
plus assorted backend support code.
Note that pg_dump and psql continue to have full support, since
they may be used against older servers. However, pg_dump warns
about postfix operators. There is also a check in pg_upgrade.
Documentation-wise, I (tgl) largely removed the "left unary"
terminology in favor of saying "prefix operator", which is
a more standard and IMO less confusing term.
I included a catversion bump, although no initial catalog data
changes here, to mark the boundary at which oprkind = 'r'
stopped being valid in pg_operator.
Mark Dilger, based on work by myself and Robert Haas;
review by John Naylor
Discussion: https://postgr.es/m/38ca86db-42ab-9b48-2902-337a0d6b8311@2ndquadrant.com
Diffstat (limited to 'src/include/parser/parse_oper.h')
-rw-r--r-- | src/include/parser/parse_oper.h | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/src/include/parser/parse_oper.h b/src/include/parser/parse_oper.h index bcd861e43ac..09695a2765c 100644 --- a/src/include/parser/parse_oper.h +++ b/src/include/parser/parse_oper.h @@ -31,8 +31,6 @@ extern Oid LookupOperWithArgs(ObjectWithArgs *oper, bool noError); /* NB: the selected operator may require coercion of the input types! */ extern Operator oper(ParseState *pstate, List *op, Oid arg1, Oid arg2, bool noError, int location); -extern Operator right_oper(ParseState *pstate, List *op, Oid arg, - bool noError, int location); extern Operator left_oper(ParseState *pstate, List *op, Oid arg, bool noError, int location); |