pgsql: Remove support for postfix (right-unary) operators.

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Remove support for postfix (right-unary) operators.
Дата
Msg-id E1kJ3Tl-0000W3-Uh@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
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

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/1ed6b895634ce0dc5fd4bd040e87252b32182cba

Modified Files
--------------
contrib/postgres_fdw/deparse.c                |  19 ++--
doc/src/sgml/catalogs.sgml                    |   8 +-
doc/src/sgml/ref/alter_extension.sgml         |   2 +-
doc/src/sgml/ref/alter_operator.sgml          |   9 +-
doc/src/sgml/ref/alter_opfamily.sgml          |   2 +-
doc/src/sgml/ref/comment.sgml                 |   2 +-
doc/src/sgml/ref/create_opclass.sgml          |   2 +-
doc/src/sgml/ref/create_operator.sgml         |  22 +----
doc/src/sgml/ref/drop_operator.sgml           |  16 +---
doc/src/sgml/syntax.sgml                      |   5 +-
doc/src/sgml/typeconv.sgml                    |   6 +-
doc/src/sgml/xoper.sgml                       |  12 +--
src/backend/catalog/namespace.c               |   7 +-
src/backend/catalog/pg_operator.c             |   4 +-
src/backend/commands/operatorcmds.c           |  14 ++-
src/backend/nodes/print.c                     |   1 -
src/backend/parser/gram.y                     |  13 +--
src/backend/parser/parse_expr.c               |  38 ++------
src/backend/parser/parse_oper.c               | 128 +++++---------------------
src/backend/utils/adt/ruleutils.c             |  39 ++------
src/bin/pg_dump/pg_dump.c                     |   8 +-
src/bin/pg_upgrade/check.c                    | 106 +++++++++++++++++++++
src/bin/psql/describe.c                       |   4 +
src/include/catalog/catversion.h              |   2 +-
src/include/catalog/pg_operator.h             |   6 +-
src/include/parser/parse_oper.h               |   2 -
src/test/regress/expected/create_operator.out |  50 ++++++----
src/test/regress/expected/opr_sanity.out      |  17 +---
src/test/regress/sql/create_operator.sql      |  36 ++++----
src/test/regress/sql/opr_sanity.sql           |  14 +--
src/tutorial/complex.source                   |   2 +-
src/tutorial/syscat.source                    |  24 +----
32 files changed, 280 insertions(+), 340 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Heikki Linnakangas
Дата:
Сообщение: Re: pgsql: Add support for building GiST index by sorting.
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Try to stabilize output from rolenames regression test.