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.
    
Note:      Prior to PostgreSQL 7.2, BIT data
     was always silently truncated or zero-padded on the right, with
     or without an explicit cast. This was changed to comply with the
     SQL standard.
    
    Refer to Section 1.1.2.2 for information about the syntax
    of bit string constants.  Bit-logical operators and string
    manipulation functions are available; see Chapter 6.
   
Example 5-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