PostgreSQL 8.2.18 Documentation
Prev | Fast Backward | Chapter 8. Data Types | Fast Forward | Next

# 8.9. 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 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

Prev | Home | Next
Network Address Types | Up | Arrays