| The PostgreSQL 9.0 Reference Manual - Volume 1A - SQL Language Reference
by The PostgreSQL Global Development Group Paperback (6"x9"), 454 pages ISBN 9781906966041 RRP £14.95 ($19.95) Sales of this book support the PostgreSQL project! Get a printed copy>>> |
6.10 Bit String Types
Bit strings are strings of 1's and 0's. They can be used to store
or visualize bit masks. There are two SQL bit types:
bit(n) and bit
varying(n), where
n is a positive integer.
bit type data must match the length
n exactly; it is an error to attempt to
store shorter or longer bit strings. bit varying data is
of variable length up to the maximum length
n; longer strings will be rejected.
Writing bit without a length is equivalent to
bit(1), while bit varying without a length
specification means unlimited length.
Note: If one explicitly casts a bit-string value to
bit(n), it will be truncated or zero-padded on the right to be exactly n bits, without raising an error. Similarly, if one explicitly casts a bit-string value tobit varying(n), it will be truncated on the right if it is more than n bits.
Refer to section 2.1.2.5 Bit-String Constants for information about the syntax of bit string constants. Bit-logical operators and string manipulation functions are available; see section 7.6 Bit String Functions and Operators.
Using the bit string types:
CREATE TABLE test (a BIT(3), b BIT VARYING(5)); INSERT INTO test VALUES (B'101', B'00'); INSERT INTO test VALUES (B'10', B'101'); ERROR: bit string length 2 does not match type bit(3) INSERT INTO test VALUES (B'10'::bit(3), B'101'); SELECT * FROM test; a | b -----+----- 101 | 00 100 | 101
A bit string value requires 1 byte for each group of 8 bits, plus 5 or 8 bytes overhead depending on the length of the string (but long values may be compressed or moved out-of-line, as explained in section 6.3 Character Types for character strings).
| ISBN 9781906966041 | The PostgreSQL 9.0 Reference Manual - Volume 1A - SQL Language Reference | See the print edition |