pgsql: postgres_fdw: Avoid 'outer pathkeys do not match mergeclauses'e

Поиск
Список
Период
Сортировка
От Robert Haas
Тема pgsql: postgres_fdw: Avoid 'outer pathkeys do not match mergeclauses'e
Дата
Msg-id E1ebvu8-0002J1-B0@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
postgres_fdw: Avoid 'outer pathkeys do not match mergeclauses' error.

When pushing down a join to a foreign server, postgres_fdw constructs
an alternative plan to be used for any EvalPlanQual rechecks that
prove to be necessary.  This plan is stored as the outer subplan of
the Foreign Scan implementing the pushed-down join.  Previously, this
alternative plan could have a different nominal sort ordering than its
parent, which seemed OK since there will only be one tuple per base
table anyway in the case of an EvalPlanQual recheck.  Actually,
though, it caused a problem if that path was used as a building block
for the EvalPlanQual recheck plan of a higher-level foreign join,
because we could end up with a merge join one of whose inputs was not
labelled with the correct sort order.  Repair by injecting an extra
Sort node into the EvalPlanQual recheck plan whenever it would
otherwise fail to be sorted at least as well as its parent Foreign
Scan.

Report by Jeff Janes.  Patch by me, reviewed by Tom Lane, who also
provided the test case and comment text.

Discussion: http://postgr.es/m/CAMkU=1y2G8VOVBHv3iXU2TMAj7-RyBFFW1uhkr5sm9LQ2=X35g@mail.gmail.com

Branch
------
REL_10_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/3f05a30b50a7e283d2664719c2fa0832fcd37da0

Modified Files
--------------
contrib/postgres_fdw/expected/postgres_fdw.out | 210 +++++++++++++++++--------
contrib/postgres_fdw/postgres_fdw.c            |  18 ++-
contrib/postgres_fdw/sql/postgres_fdw.sql      |   7 +
3 files changed, 171 insertions(+), 64 deletions(-)


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: pgsql: Remove useless lookup of root partitioned rel inExecInitModifyT
Следующее
От: Bruce Momjian
Дата:
Сообщение: pgsql: Reorder C includes