PostgreSQL 7.4.3 Documentation
Prev | Fast Backward | Chapter 9. Functions and Operators | Fast Forward | Next

# 9.5. Binary String Functions and Operators

This section describes functions and operators for examining and manipulating values of type `bytea`.

SQL defines some string functions with a special syntax where certain key words rather than commas are used to separate the arguments. Details are in Table 9-9. Some functions are also implemented using the regular syntax for function invocation. (See Table 9-10.)

Table 9-9. SQL Binary String Functions and Operators

Function | Return Type | Description | Example | Result
--- | --- | --- | --- | ---
`string `||` string` | `bytea` | String concatenation | `'\\\\Post'::bytea || '\\047gres\\000'::bytea` | `\\Post'gres\000`
``octet_length`(string)` | `integer` | Number of bytes in binary string | `octet_length( 'jo\\000se'::bytea)` | `5`
``position`(substring in string)` | `integer` | Location of specified substring | `position('\\000om'::bytea in 'Th\\000omas'::bytea)` | `3`
``substring`(string [from `integer`] [for `integer`])` | `bytea` | Extract substring | `substring('Th\\000omas'::bytea from 2 for 3)` | `h\000o`
``trim`([both] bytes from string)` | `bytea` | Remove the longest string containing only the bytes in bytes from the start and end of string | `trim('\\000'::bytea from '\\000Tom\\000'::bytea)` | `Tom`
`get_byte`(string, offset) | `integer` | Extract byte from string. | `get_byte('Th\\000omas'::bytea, 4)` | `109`
`set_byte`(string, offset, newvalue) | `bytea` | Set byte in string. | `set_byte('Th\\000omas'::bytea, 4, 64)` | `Th\000o@as`
`get_bit`(string, offset) | `integer` | Extract bit from string. | `get_bit('Th\\000omas'::bytea, 45)` | `1`
`set_bit`(string, offset, newvalue) | `bytea` | Set bit in string. | `set_bit('Th\\000omas'::bytea, 45, 0)` | `Th\000omAs`

Additional binary string manipulation functions are available and are listed in Table 9-10. Some of them are used internally to implement the SQL-standard string functions listed in Table 9-9.

Table 9-10. Other Binary String Functions

Function | Return Type | Description | Example | Result
--- | --- | --- | --- | ---
``btrim`(string `bytea` bytes `bytea`)` | `bytea` | Remove the longest string consisting only of bytes in bytes from the start and end of string. | `btrim('\\000trim\\000'::bytea, '\\000'::bytea)` | `trim`
``length`(string)` | `integer` | Length of binary string | `length('jo\\000se'::bytea)` | `5`
``decode`(string `text`, type `text`)` | `bytea` | Decode binary string from string previously encoded with `encode`. Parameter type is same as in `encode`. | `decode('123\\000456', 'escape')` | `123\000456`
``encode`(string `bytea`, type `text`)` | `text` | Encode binary string to ASCII-only representation. Supported types are: `base64`, `hex`, `escape`. | `encode('123\\000456'::bytea, 'escape')` | `123\000456`

Prev | Home | Next
String Functions and Operators | Up | Pattern Matching