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-0002Iz-Au@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
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/4bbf6edfbd5d03743ff82dda2f00c738fb3208f5

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