PostgreSQL 7.2.1 Documentation
Prev | Chapter 3. Data Types | Next

# 3.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(`x`)` and `BIT VARYING(`x`)`; where `x` is a positive integer.

`BIT` type data must match the length `x` exactly; it is an error to attempt to store shorter or longer bit strings. `BIT VARYING` is of variable length up to the maximum length `x`; longer strings will be rejected. `BIT` without length is equivalent to `BIT(1)`, `BIT VARYING` without length specification means unlimited length.

> Note: Prior to PostgreSQL 7.2, `BIT` type data was zero-padded on the right. This was changed to comply with the SQL standard. To implement zero-padded bit strings, a combination of the concatenation operator and the `substring` function can be used.

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 4.

Example 3-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 does not match type bit(3)
    SELECT SUBSTRING(b FROM 1 FOR 2) FROM test;

Prev | Home | Next
Network Address Data Types | Up | Functions and Operators