Re: BUG #1135: integer::bit returns incorrect results - Mailing list pgsql-bugs

From elein
Subject Re: BUG #1135: integer::bit returns incorrect results
Date
Msg-id 20040418124026.I21280@cookie.varlena.com
Whole thread Raw
In response to BUG #1135: integer::bit returns incorrect results  ("PostgreSQL Bugs List" <pgsql-bugs@postgresql.org>)
List pgsql-bugs
It may be that the cast is taking the high bit and not
the low bit.  I would have thought it went the other way.

On Sun, Apr 18, 2004 at 04:04:08PM -0300, PostgreSQL Bugs List wrote:
>
> The following bug has been logged online:
>
> Bug reference:      1135
> Logged by:          elein
>
> Email address:      elein@varlena.com
>
> PostgreSQL version: 7.4
>
> Operating system:   SuSE
>
> Description:        integer::bit returns incorrect results
>
> Details:
>
>
> * There exists a cast utils/adt.c/bitfromint4()
>   in pg_casts listed to cast an integer to a bit.
>
>   This cast seems to always set the value to 0.
>   On cursory glance bitfromint4 seems right, but
>   the shortcut shifting could be wrong. (Why isn't
>   just the low bit set?).
>
>   If I have time, I'll look more carefully, and
>   perhaps submit a patch unless someone gets to
>   it before I do.
>
> * There is no cast from an integer to a bit varying.
>
>   If there exists a cast from integer to bit (in question :-)
>   there should be one from integer to bit varying.
>   It should be a straight copy.
>
> These all return 0.
>    select 1::bit;
>    select 2::bit;
>    select 111::bit;
>    select 101::bit;
>
> elein=# select 1::bit varying;
> ERROR:  cannot cast type integer to bit varying
>
>
> Side note: the text string cast to bit and bit varying
> works fine and the digits are limited to 1s and 0s.
> But that should not be how integer to bit/bit varying should
> work.
>
> elein=# select '101'::bit;
>  bit
> -----
>  1
> (1 row)
>
> elein=# select '2'::bit;
> ERROR:  "2" is not a valid binary digit
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
>                http://archives.postgresql.org

pgsql-bugs by date:

Previous
From: "PostgreSQL Bugs List"
Date:
Subject: BUG #1135: integer::bit returns incorrect results
Next
From: Tom Lane
Date:
Subject: Re: BUG #1135: integer::bit returns incorrect results