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 to
bit varying(n), it will be truncated
on the right if it is more than n bits.
Refer to Section 4.1.2.3 for information about the syntax
of bit string constants. Bit-logical operators and string
manipulation functions are available; see Section 9.6.
Example 8-3. 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