| From: | Lakshmi N <lakshmin(dot)jhs(at)gmail(dot)com> |
|---|---|
| To: | jie wang <jugierwang(at)gmail(dot)com> |
| Cc: | pgsql-hackers(at)postgresql(dot)org, pgsql-hackers(at)lists(dot)postgresql(dot)org |
| Subject: | Re: DOCS: pg_plan_advice minor doc fixes |
| Date: | 2026-04-09 06:47:48 |
| Message-ID: | CA+3i_M_S2UAw8M+EX0RcWzWAX3gaDNV7mU9_b5DusbaGMm-Pow@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi Jie,
On Wed, Apr 8, 2026 at 12:52 AM jie wang <jugierwang(at)gmail(dot)com> wrote:
>
>
> Lakshmi N <lakshmin(dot)jhs(at)gmail(dot)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`
>
LGTM.
Regards,
Lakshmi
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Antonin Houska | 2026-04-09 06:59:00 | Re: Adding REPACK [concurrently] |
| Previous Message | Xuneng Zhou | 2026-04-09 06:38:59 | Re: Bug: WAIT FOR LSN crashes with assertion failure inside PL/pgSQL DO blocks and procedures |