Thread: [PATCH] Fix expressions always false
More about expressions always false.
1. /src/backend/executor/execExprInterp.c
ndims <= 0 neve be negative, because ndims aways is added up +1
2. src/backend/utils/adt/formatting.c
result is declared long. Comparison with int limits is always false.
3. src/backend/utils/adt/jsonfuncs.c
lindex is declared long. . Comparison with int limits is always false.
4. src/backend/utils/adt/network.c
ip_addrsize is macro and awlays return 4 or 16
regards,
Ranier Vilela
Attachment
Ranier Vilela <ranier.vf@gmail.com> writes: > More about expressions always false. > 2. src/backend/utils/adt/formatting.c > result is declared long. Comparison with int limits is always false. > 3. src/backend/utils/adt/jsonfuncs.c > lindex is declared long. . Comparison with int limits is always false. 1) long is 64 bits on Unix-like platforms 2) checking a long against LONG_MIN/LONG_MAX is _definitely_ pointless 3) it's being cast to an int for the from_char_set_int() call below Please take your time to read the whole context of the code you're changing, and consider other platforms than just Windows. - ilmari -- "A disappointingly low fraction of the human race is, at any given time, on fire." - Stig Sandbeck Mathisen
>1) long is 64 bits on Unix-like platforms
>2) checking a long against LONG_MIN/LONG_MAX is _definitely_ pointless
>3) it's being cast to an int for the from_char_set_int() call below
>Please take your time to read the whole context of the code you're
>changing, and consider other platforms than just Windows.
>2) checking a long against LONG_MIN/LONG_MAX is _definitely_ pointless
>3) it's being cast to an int for the from_char_set_int() call below
>Please take your time to read the whole context of the code you're
>changing, and consider other platforms than just Windows.
Thank you for point me, about this.
regards,
Ranier Vilela

Em qui., 19 de dez. de 2019 às 20:58, Dagfinn Ilmari Mannsåker <ilmari@ilmari.org> escreveu:
Ranier Vilela <ranier.vf@gmail.com> writes:
> More about expressions always false.
> 2. src/backend/utils/adt/formatting.c
> result is declared long. Comparison with int limits is always false.
> 3. src/backend/utils/adt/jsonfuncs.c
> lindex is declared long. . Comparison with int limits is always false.
1) long is 64 bits on Unix-like platforms
2) checking a long against LONG_MIN/LONG_MAX is _definitely_ pointless
3) it's being cast to an int for the from_char_set_int() call below
Please take your time to read the whole context of the code you're
changing, and consider other platforms than just Windows.
- ilmari
--
"A disappointingly low fraction of the human race is,
at any given time, on fire." - Stig Sandbeck Mathisen