pgsql: Fix postgres_fdw to check shippability of sort clauses properly.
От | Tom Lane |
---|---|
Тема | pgsql: Fix postgres_fdw to check shippability of sort clauses properly. |
Дата | |
Msg-id | E1nZzYc-000Bwi-Rp@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix postgres_fdw to check shippability of sort clauses properly. postgres_fdw would push ORDER BY clauses to the remote side without verifying that the sort operator is safe to ship. Moreover, it failed to print a suitable USING clause if the sort operator isn't default for the sort expression's type. The net result of this is that the remote sort might not have anywhere near the semantics we expect, which'd be disastrous for locally-performed merge joins in particular. We addressed similar issues in the context of ORDER BY within an aggregate function call in commit 7012b132d, but failed to notice that query-level ORDER BY was broken. Thus, much of the necessary logic already existed, but it requires refactoring to be usable in both cases. Back-patch to all supported branches. In HEAD only, remove the core code's copy of find_em_expr_for_rel, which is no longer used and really should never have been pushed into equivclass.c in the first place. Ronan Dunklau, per report from David Rowley; reviews by David Rowley, Ranier Vilela, and myself Discussion: https://postgr.es/m/CAApHDvr4OeC2DBVY--zVP83-K=bYrTD7F8SZDhN4g+pj2f2S-A@mail.gmail.com Branch ------ REL_11_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/b9eb0412ffb839e70e81820b6405db71d3f1966f Modified Files -------------- contrib/postgres_fdw/deparse.c | 158 ++++++++++++++++++------- contrib/postgres_fdw/expected/postgres_fdw.out | 23 ++++ contrib/postgres_fdw/postgres_fdw.c | 58 ++++----- contrib/postgres_fdw/postgres_fdw.h | 7 +- contrib/postgres_fdw/sql/postgres_fdw.sql | 8 ++ 5 files changed, 181 insertions(+), 73 deletions(-)
В списке pgsql-committers по дате отправления: