Thread

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

  1. DOCS: pg_plan_advice minor doc fixes

    Lakshmi N <lakshmin.jhs@gmail.com> — 2026-04-08T07:09:23Z

    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
    
  2. Re: DOCS: pg_plan_advice minor doc fixes

    jie wang <jugierwang@gmail.com> — 2026-04-08T07:52:10Z

    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
    
  3. Re: DOCS: pg_plan_advice minor doc fixes

    Lakshmi N <lakshmin.jhs@gmail.com> — 2026-04-09T06:47:48Z

    Hi Jie,
    
    On Wed, Apr 8, 2026 at 12:52 AM jie wang <jugierwang@gmail.com> wrote:
    
    >
    >
    > 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`
    >
    
    LGTM.
    
    Regards,
    Lakshmi
    
    >
    
  4. Re: DOCS: pg_plan_advice minor doc fixes

    Robert Haas <robertmhaas@gmail.com> — 2026-04-13T16:49:43Z

    On Wed, Apr 8, 2026 at 3:52 AM jie wang <jugierwang@gmail.com> wrote:
    > I found that this patch is not fully modified and is missing a part:
    > `Foreign Scan` --->  `Foreign Join`
    
    I believe you're wrong about this. EXPLAIN shows "Foreign Scan", not
    "Foreign Join".
    
    Committed without this change.
    
    -- 
    Robert Haas
    EDB: http://www.enterprisedb.com