Re: DOCS: pg_plan_advice minor doc fixes

jie wang <jugierwang@gmail.com>

From: jie wang <jugierwang@gmail.com>
To: Lakshmi N <lakshmin.jhs@gmail.com>
Cc: pgsql-hackers@postgresql.org, pgsql-hackers@lists.postgresql.org
Date: 2026-04-08T07:52:10Z
Lists: pgsql-hackers

Attachments

Lakshmi N <lakshmin.jhs@gmail.com> 于2026年4月8日周三 15:09写道:

> Hi hackers,
>
> I noticed the following minor discrepancy in the pg_plan_advice docs,
> attached a patch to address this.
>
> (1) FOREIGN SCAN should be FOREIGN JOIN in the scan method advice tag. I
> tested with FOREIGN SCAN and can confirm it gives a syntax error while the
> other one works correctly.
>
> postgres=# SET pg_plan_advice.advice = 'FOREIGN_JOIN((t1 t2))';
> EXPLAIN (COSTS OFF, PLAN_ADVICE)
>     SELECT * FROM fdw_t1 t1 JOIN fdw_t2 t2 ON t1.id = t2.t1_id;
>
> SET
>                    QUERY PLAN
> -------------------------------------------------
>  Foreign Scan
>    Relations: (fdw_t1 t1) INNER JOIN (fdw_t2 t2)
>  Supplied Plan Advice:
>    FOREIGN_JOIN((t1 t2)) /* matched */
>  Generated Plan Advice:
>    FOREIGN_JOIN((t1 t2))
>    NO_GATHER(t1 t2)
> (7 rows)
>
>
> (2) NESTED_LOOP_MEMOIZE is missing from the join method list in the doc
> though it is supported.  Verified this by running below:
>
> postgres=# SET pg_plan_advice.advice = 'NESTED_LOOP_MEMOIZE(d)';
> SET
> postgres=# EXPLAIN (COSTS OFF, PLAN_ADVICE) select * from t1 f JOIN t2 ON
> f.id = t2.t1_id;
>                  QUERY PLAN
> --------------------------------------------
>  Hash Join
>    Hash Cond: (t2.t1_id = f.id)
>    ->  Seq Scan on t2
>    ->  Hash
>          ->  Seq Scan on t1 f
>  Supplied Plan Advice:
>    NESTED_LOOP_MEMOIZE(d) /* not matched */
>  Generated Plan Advice:
>    JOIN_ORDER(t2 f)
>    HASH_JOIN(f)
>    SEQ_SCAN(t2 f)
>    NO_GATHER(f t2)
> (12 rows)
>
> Regards,
> Lakshmi
>


Hi,

I found that this patch is not fully modified and is missing a part:
`Foreign Scan` --->  `Foreign Join`

Best regards,
--
wang jie

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. doc: Fix a couple of mistakes in pgplanadvice.sgml