pgsql: Don't pass grouped relations to FDWs

From: Richard Guo <rguo(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Don't pass grouped relations to FDWs
Date: 2026-10-05 23:52:21
Message-ID: E1xDsTl-00000000TZJ-0dZ8@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: 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(at)gmail(dot)com>
Author: Richard Guo <guofenglinux(at)gmail(dot)com>
Discussion: https://postgr.es/m/CA+Tgmob7iSM9YkRM44VjUDuaCchW-fY54MV5njpTZTL9uNyV4w@mail.gmail.com
Backpatch-through: 19

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/58fca6bdf26f55484c11bf505ae699ec240d60cb

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(+)

Browse pgsql-committers by date

  From Date Subject
Next Message Amit Langote 2026-10-06 00:04:57 pgsql: Fix possible crash when RI fast-path metadata is invalidated mid
Previous Message Masahiko Sawada 2026-10-05 23:17:44 pgsql: Fix parallel autovacuum workers ignoring track_cost_delay_timing