pgsql: Remove an unsafe Assert, and explain join_clause_is_movable_into

Поиск
Список
Период
Сортировка
От Tom Lane
Тема pgsql: Remove an unsafe Assert, and explain join_clause_is_movable_into
Дата
Msg-id E1ZK8ZE-0002L2-5Y@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Remove an unsafe Assert, and explain join_clause_is_movable_into() better.

join_clause_is_movable_into() is approximate, in the sense that it might
sometimes return "false" when actually it would be valid to push the given
join clause down to the specified level.  This is okay ... but there was
an Assert in get_joinrel_parampathinfo() that's only safe if the answers
are always exact.  Comment out the Assert, and add a bunch of commentary
to clarify what's going on.

Per fuzz testing by Andreas Seltenreich.  The added regression test is
a pretty silly query, but it's based on his crasher example.

Back-patch to 9.2 where the faulty logic was introduced.

Branch
------
REL9_3_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/03d7f3ba58590d5a6eed89604cc3e4912f458df4

Modified Files
--------------
src/backend/optimizer/util/relnode.c      |    9 ++++++
src/backend/optimizer/util/restrictinfo.c |   39 ++++++++++++++++++-----
src/test/regress/expected/join.out        |   48 +++++++++++++++++++++++++++++
src/test/regress/sql/join.sql             |   27 ++++++++++++++++
4 files changed, 116 insertions(+), 7 deletions(-)


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Remove an unsafe Assert, and explain join_clause_is_movable_into
Следующее
От: Robert Haas
Дата:
Сообщение: pgsql: Centralize decision-making about where to get a backend's PGPROC