Re: pg_plan_advice: FOREIGN_JOIN advice generated for a single-relation foreign scan is not round-trip safe
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Mahendra Singh Thalor <mahi6run@gmail.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2026-06-30T14:52:07Z
Lists: pgsql-hackers
On Tue, Jun 30, 2026 at 10:36 AM Mahendra Singh Thalor <mahi6run@gmail.com> wrote: > While testing pg_plan_advice together with postgres_fdw, I noticed that the > advice generated for a single-relation foreign scan is not round-trip safe, > which contradicts the "round-trip safe" guarantee documented in > contrib/pg_plan_advice/README. > > When postgres_fdw pushes an aggregate down over a single foreign table, the > resulting ForeignScan has scanrelid == 0 but fs_relids names exactly one > relation. pg_plan_advice generates FOREIGN_JOIN(<rel>) advice for it. However, > the advice parser requires a FOREIGN_JOIN target to name more than one > relation, so feeding the generated advice back in fails to parse. Thanks for the report. I think this patch looks correct, but the comments are a bit overly verbose. Barring objections or other comments, I'll tighten this up, commit and back-patch. -- Robert Haas EDB: http://www.enterprisedb.com
Commits
-
pg_plan_advice: Don't generate FOREIGN_JOIN advice for a single relation.
- 89f5f860cc58 19 (unreleased) landed
- 53e6f51eef55 master landed