Lakshmi N <[email protected]> 于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

Attachment: v2-0001-DOCS-Update-pgplanadvice-tags-for-FOREIGN_JOIN-an.patch
Description: Binary data

Reply via email to