Re: On disable_cost - Mailing list pgsql-hackers

From Laurenz Albe
Subject Re: On disable_cost
Date
Msg-id f0bc496d8926e1f8051e5431f84e7720743f421b.camel@cybertec.at
Whole thread Raw
In response to On disable_cost  (Zhenghua Lyu <zlv@pivotal.io>)
Responses Re: On disable_cost
List pgsql-hackers
On Sat, 2024-09-28 at 00:04 +1200, David Rowley wrote:
> On Fri, 27 Sept 2024 at 20:42, Laurenz Albe <laurenz.albe@cybertec.at> wrote:
> > 2. The "disabled nodes" are not only shown at the nodes where nodes
> >    were actually disabled, but also at every nodes above these nodes.
>
> I'm also not a fan either and I'd like to see this output improved.
>
> It seems like it's easy enough to implement some logic to detect when
> a given node is disabled just by checking if the disable_nodes count
> is higher than the sum of the disabled_node field of the node's
> children.  If there are no children (a scan node) and disabed_nodes >
> 0 then it must be disabled. There's even a nice fast path where we
> don't need to check the children if disabled_nodes == 0.
>
> Here's a POC grade patch of how I'd rather see it looking.
>
> I opted to have a boolean field as I didn't see any need for an
> integer count. I also changed things around so we always display the
> boolean property in non-text EXPLAIN. Normally, we don't mind being
> more verbose there.
>
> I also fixed a bug in make_sort() where disabled_nodes isn't being set
> properly. I'll do an independent patch for that if this goes nowhere.

Thanks, and the patch looks good.

Why did you change "Disabled" from an integer to a boolean?
If you see a join where two plans were disabled, that's useful information.

I would still prefer to see the disabled nodes only in VERBOSE explain,
but I'm satisfied if the disabled nodes don't show up all over the place.

Yours,
Laurenz Albe



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: pg_basebackup and error messages dependent on the order of the arguments
Next
From: "Daniel Westermann (DWE)"
Date:
Subject: Re: pg_basebackup and error messages dependent on the order of the arguments