Re: domain on bit(N) type produces strange results

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Kris Jurka <books(at)ejurka(dot)com>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: domain on bit(N) type produces strange results
Date: 2004-11-06 06:40:05
Message-ID: 26787.1099723205@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Kris Jurka <books(at)ejurka(dot)com> writes:
> Creating a domain on bit(N) doesn't seem to work as expected when casting
> to the domain type.

> CREATE DOMAIN bit4 AS bit(4);

> SELECT 7::bit(4), 7::bit4;
> bit | bit4
> ------+------
> 0111 | 1000
> (1 row)

What's going on here is that "7::bit4" is implemented as
"7::bit::bit(4)", and since 7::bit is taken to mean 7::bit(1),
the result follows.

Bit is the only typmod-using datatype for which casting to the type
with typmod -1 risks discarding information. In a brief look I'm
not sure whether this can easily be fixed without introducing unwanted
side-effects.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message PostgreSQL Bugs List 2004-11-06 12:11:49 BUG #1307: Possible bug inheritance/referential integrity
Previous Message David Dick 2004-11-06 05:44:52 Re: BUG #1306: locale related issue.