Re: Fix typo with logical connector (src/backend/commands/vacuumparallel.c)
Ranier Vilela <ranier.vf@gmail.com>
From: Ranier Vilela <ranier.vf@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2022-08-19T14:15:33Z
Lists: pgsql-hackers
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.
It seems that you are right.
#include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif
int main()
{
bool op1 = false;
bool op2 = true;
bool band;
bool cand;
band = op1 & op2;
printf("res=%d\n", band);
cand = op1 && op2;
printf("res=%d\n", cand);
}
#ifdef __cplusplus
}
#endif
results:
res=0
res=0
So, my assumption is incorrect.
regards,
Ranier Vilela
Commits
-
Use logical operator && instead of & in vacuumparallel.c.
- 838f798f172d 16.0 landed
- 254d79f0b23d 15.0 landed