pgsql: Don't pass grouped relations to FDWs - Mailing list pgsql-committers

From Richard Guo
Subject pgsql: Don't pass grouped relations to FDWs
Date
Msg-id E1xDsTl-00000000TZP-0tAy@gemulon.postgresql.org
Whole thread
List pgsql-committers
Don't pass grouped relations to FDWs

build_grouped_rel() makes a flat copy of the input relation, including
its FDW fields.  As a result, when building a grouped join relation
for eager aggregation, add_paths_to_joinrel() called the FDW's
GetForeignJoinPaths for it.  postgres_fdw then failed with "Aggref
found where not expected" on the partial Aggrefs in the target list,
and in any case it would have treated a partially aggregated input as
a plain foreign scan.

FDWs are not prepared to handle grouped relations, so clear serverid,
fdwroutine and fdw_private in build_grouped_rel().

Reported-by: Robert Haas <robertmhaas@gmail.com>
Author: Richard Guo <guofenglinux@gmail.com>
Discussion: https://postgr.es/m/CA+Tgmob7iSM9YkRM44VjUDuaCchW-fY54MV5njpTZTL9uNyV4w@mail.gmail.com
Backpatch-through: 19

Branch
------
REL_19_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/c9231b776b3643d0f25aff337dbf22db961c64fe

Modified Files
--------------
contrib/postgres_fdw/expected/postgres_fdw.out | 26 ++++++++++++++++++++++++++
contrib/postgres_fdw/sql/postgres_fdw.sql      |  5 +++++
src/backend/optimizer/util/relnode.c           |  7 +++++++
3 files changed, 38 insertions(+)


pgsql-committers by date:

Previous
From: Masahiko Sawada
Date:
Subject: pgsql: Fix parallel autovacuum workers ignoring track_cost_delay_timing
Next
From: Amit Langote
Date:
Subject: pgsql: Fix possible crash when RI fast-path metadata is invalidated mid