Bill Moran <[EMAIL PROTECTED]> writes: > Am I missing something here?
Hmm. It seems like int-to-bit casting ought to be aware of the bit-width one is casting to, and take that number of bits from the right end of the integer. This would make it be the inverse of the other direction. Right now it's only an inverse when you cast to and from bit(32). For shorter bitfield widths, we're effectively inserting at the right end of the integer, but removing bits from the left, which is not consistent. regression=# select B'11000'::bit(5)::int; int4 ------ 24 (1 row) regression=# select 24::int::bit(32); bit ---------------------------------- 00000000000000000000000000011000 (1 row) regression=# select 24::int::bit(32)::bit(5); bit ------- 00000 (1 row) regression=# select 24::int::bit(5); bit ------- 00000 (1 row) If we made int-to-bit-N take the rightmost N bits, then the last two cases would yield different results, but that doesn't seem unreasonable to me. Or at least it's less unreasonable than bit(5)-to-int not being the inverse of int-to-bit(5). Comments? regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org