int4->bool test coverage

Started by Christoph Bergover 2 years ago3 messageshackers
Jump to latest
#1Christoph Berg
myon@debian.org

I was surprised to learn that 2 is a valid boolean (thanks Berge):

# select 2::boolean;
bool
──────
t

... while '2' is not:

# select '2'::boolean;
ERROR: 22P02: invalid input syntax for type boolean: "2"
LINE 1: select '2'::boolean;
^
LOCATION: boolin, bool.c:151

The first cast is the int4_bool function, but it isn't covered by the
regression tests at all. The attached patch adds tests.

Christoph

Attachments:

0001-Add-tests-for-int4_bool.patchtext/x-diff; charset=us-asciiDownload+25-1
#2Michael Paquier
michael@paquier.xyz
In reply to: Christoph Berg (#1)
Re: int4->bool test coverage

On Thu, Dec 21, 2023 at 11:56:22AM +0100, Christoph Berg wrote:

The first cast is the int4_bool function, but it isn't covered by the
regression tests at all. The attached patch adds tests.

I don't see why not.

Interesting that there are a few more of these in int.c, like int2up,
int4inc, int2smaller, int{2,4}shr, int{2,4}not, etc.
--
Michael

#3Michael Paquier
michael@paquier.xyz
In reply to: Michael Paquier (#2)
Re: int4->bool test coverage

On Fri, Dec 22, 2023 at 11:48:11AM +0900, Michael Paquier wrote:

On Thu, Dec 21, 2023 at 11:56:22AM +0100, Christoph Berg wrote:

The first cast is the int4_bool function, but it isn't covered by the
regression tests at all. The attached patch adds tests.

I don't see why not.

And one month later, done.

Interesting that there are a few more of these in int.c, like int2up,
int4inc, int2smaller, int{2,4}shr, int{2,4}not, etc.

I've left these out for now.
--
Michael