Re: Report planning memory in EXPLAIN ANALYZE - Mailing list pgsql-hackers

From Ashutosh Bapat
Subject Re: Report planning memory in EXPLAIN ANALYZE
Date
Msg-id CAExHW5vcohkucNT=yMtcT5aFNpeY0WyEX=b0+sWyqHt=0B2zJA@mail.gmail.com
Whole thread Raw
In response to Re: Report planning memory in EXPLAIN ANALYZE  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Responses Re: Report planning memory in EXPLAIN ANALYZE
List pgsql-hackers
On Thu, Jan 18, 2024 at 4:42 PM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
>
> On 2024-Jan-18, Ashutosh Bapat wrote:
>
> Hmm ... TBH I don't like the "showed_planning" thing very much, but if
> we need to conditionalize the printing of "Planning:" on whether we
> print either of buffers or memory, maybe there's no way around something
> like what you propose.

right.

>
> However, I don't understand this output change, and I think it indicates
> a bug in the logic there:
>
> > diff --git a/src/test/regress/expected/explain.out b/src/test/regress/expected/explain.out
> > index 86bfdfd29e..55694505a7 100644
> > --- a/src/test/regress/expected/explain.out
> > +++ b/src/test/regress/expected/explain.out
> > @@ -331,15 +331,15 @@ select explain_filter('explain (memory) select * from int8_tbl i8');
> >                       explain_filter
> >  ---------------------------------------------------------
> >   Seq Scan on int8_tbl i8  (cost=N.N..N.N rows=N width=N)
> > - Planner Memory: used=N bytes allocated=N bytes
> > +   Memory: used=N bytes, allocated=N bytes
> >  (2 rows)
>
> Does this really make sense?

The EXPLAIN output produces something like below
                       explain_filter
  ---------------------------------------------------------
   Seq Scan on int8_tbl i8  (cost=N.N..N.N rows=N width=N)
  Planning:
    Memory: used=N bytes, allocated=N bytes
 (3 rows)

but function explain_filter(), defined in explain.sql, removes line
containing Planning: and we end up with output
                       explain_filter
  ---------------------------------------------------------
   Seq Scan on int8_tbl i8  (cost=N.N..N.N rows=N width=N)
    Memory: used=N bytes, allocated=N bytes
 (2 rows)

Hence this weird difference.

--
Best Wishes,
Ashutosh Bapat



pgsql-hackers by date:

Previous
From: Amit Kapila
Date:
Subject: Re: Synchronizing slots from primary to standby
Next
From: Bharath Rupireddy
Date:
Subject: Re: Fix race condition in InvalidatePossiblyObsoleteSlot()