Re: Fix typo with logical connector (src/backend/commands/vacuumparallel.c) - Mailing list pgsql-hackers

From Ranier Vilela
Subject Re: Fix typo with logical connector (src/backend/commands/vacuumparallel.c)
Date
Msg-id CAEudQAoFXZX11=xoLxqQBabqcRWNUO85GjOghxMQHBVnZDyzbA@mail.gmail.com
Whole thread Raw
In response to Re: Fix typo with logical connector (src/backend/commands/vacuumparallel.c)  (Amit Kapila <amit.kapila16@gmail.com>)
List pgsql-hackers
Em sáb., 20 de ago. de 2022 às 01:03, Amit Kapila <amit.kapila16@gmail.com> escreveu:
On Fri, Aug 19, 2022 at 7:45 PM Ranier Vilela <ranier.vf@gmail.com> wrote:
>
> Em sex., 19 de ago. de 2022 às 10:28, Tom Lane <tgl@sss.pgh.pa.us> escreveu:
>>
>> Ranier Vilela <ranier.vf@gmail.com> writes:
>> > At function parallel_vacuum_process_all_indexes there is
>> > a typo with a logical connector.
>> > I think that correct is &&, because both of the operators are
>> > bool types [1].
>> > As a result, parallel vacuum workers can be incorrectly enabled.
>>
>> Since they're bools, the C spec requires them to promote to integer
>> 0 or 1, therefore the & operator will yield the desired result.
>> So there's not going to be any incorrect behavior.
>
>
> So, my assumption is incorrect.
>

Right, but as Tom pointed it is still better to change this.
Sorry, I expressed myself badly.
As Tom pointed out, It's not a bug, as I stated in the first post.
But even if it wasn't a small performance improvement, by avoiding the function call.
The correct thing is to use logical connectors (&& ||) with boolean operands.

 
However,
I am not sure if we should backpatch this to PG15 as this won't lead
to any incorrect behavior.
+1 for backpath to PG15, too.
It's certainly a safe change.

regards,
Ranier Vilela

pgsql-hackers by date:

Previous
From: Erik Rijkers
Date:
Subject: Re: Schema variables - new implementation for Postgres 15
Next
From: Ranier Vilela
Date:
Subject: Re: Avoid unecessary MemSet call (src/backend/utils/cache/relcache.c)