Re: confused about bit strings
От | Peter Eisentraut |
---|---|
Тема | Re: confused about bit strings |
Дата | |
Msg-id | Pine.LNX.4.44.0310082227460.26413-100000@peter.localdomain обсуждение исходный текст |
Ответ на | confused about bit strings (Neil Conway <neilc@samurai.com>) |
Список | pgsql-hackers |
Neil Conway writes: > nconway=# select 1::bit; > bit > ----- > 0 > (1 row) Oops. I've always thought that casting between int and bit should be disallowed, but apparently it keeps sneaking back in. > nconway=# select X'4'::bit varying; > varbit > -------- > 0100 > (1 row) > -- why is that 4 bits, not 3? SQL says so: 12) The declared type of a <hex string literal> is fixed-length bit string. Each <hexit> appearing in theliteral is equivalent to a quartet of bits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, and F areinterpreted as 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, and 1111, respectively. The <hexit>s a, b, c, d, e, and f have respectively the same values as the <hexit>sA, B, C, D, E, and F. > nconway=# select "bit"('14'::int); > bit > ---------------------------------- > 00000000000000000000000000001110 > (1 row) > -- shouldn't bit be equivalent to bit(1), which should be > right-truncated? It is, but here you're calling a function, not referring to the type. -- Peter Eisentraut peter_e@gmx.net
В списке pgsql-hackers по дате отправления: