Revert: Remove useless self-joins
authorAlexander Korotkov <[email protected]>
Mon, 6 May 2024 11:35:58 +0000 (14:35 +0300)
committerAlexander Korotkov <[email protected]>
Mon, 6 May 2024 11:36:36 +0000 (14:36 +0300)
commitd1d286d83c0eed695910cb20d970ea9bea2e5001
tree3efaf5b6598e109bdf24b81c5d9b165ce17ec9fe
parent81b2252e609cfa74550dd6804949485c094e4b85
Revert: Remove useless self-joins

This commit reverts d3d55ce5713 and subsequent fixes 2b26a69455493c85db3b5b,
b44a1708abeb7f315c9d7d8a8ed916f73b5fb6736ed30a93f803f45e0477837ce4,
a7928a57b9f5ef34a8fc3830b4955a4668c441c08279028b15405b4fe093994db4,
489072ab7a9, and 466979ef031.

We are quite late in the release cycle and new bugs continue to appear.  Even
though we have fixes for all known bugs, there is a risk of throwing many
bugs to end users.

The plan for self-join elimination would be to do more review and testing,
then re-commit in the early v18 cycle.

Reported-by: Tom Lane
Discussion: https://postgr.es/m/2422119.1714691974%40sss.pgh.pa.us
14 files changed:
doc/src/sgml/config.sgml
src/backend/optimizer/path/indxpath.c
src/backend/optimizer/plan/analyzejoins.c
src/backend/optimizer/plan/planmain.c
src/backend/utils/misc/guc_tables.c
src/include/nodes/pathnodes.h
src/include/optimizer/paths.h
src/include/optimizer/planmain.h
src/test/regress/expected/equivclass.out
src/test/regress/expected/join.out
src/test/regress/expected/sysviews.out
src/test/regress/sql/equivclass.sql
src/test/regress/sql/join.sql
src/tools/pgindent/typedefs.list