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-8. Some functions are also implemented using the regular syntax for function invocation. (See Table 9-9.)
Table 9-8. SQL Binary String Functions and Operators
| Function | Return Type | Description | Example | Result |
|---|
| string || string | bytea | String concatenation | E'\\\\Post'::bytea || E'\\047gres\\000'::bytea | \\Post'gres\000 |
get_bit(string, offset) | int | Extract bit from string | get_bit(E'Th\\000omas'::bytea, 45) | 1 |
get_byte(string, offset) | int | Extract byte from string | get_byte(E'Th\\000omas'::bytea, 4) | 109 |
octet_length(string) | int | Number of bytes in binary string | octet_length( E'jo\\000se'::bytea) | 5 |
position(substring in string) | int | Location of specified substring | position(E'\\000om'::bytea in E'Th\\000omas'::bytea) | 3 |
set_bit(string, offset, newvalue) | bytea | Set bit in string | set_bit(E'Th\\000omas'::bytea, 45, 0) | Th\000omAs |
set_byte(string, offset, newvalue) | bytea | Set byte in string | set_byte(E'Th\\000omas'::bytea, 4, 64) | Th\000o@as |
substring(string [from int] [for int]) | bytea | Extract substring | substring(E'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(E'\\000'::bytea from E'\\000Tom\\000'::bytea) | Tom |
Additional binary string manipulation functions are available and are listed in Table 9-9. Some of them are used internally to implement the SQL-standard string functions listed in Table 9-8.
Table 9-9. 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(E'\\000trim\\000'::bytea, E'\\000'::bytea) | trim |
decode(string text, type text) | bytea | Decode binary string from string previously encoded with encode. Parameter type is same as in encode. | decode(E'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(E'123\\000456'::bytea, 'escape') | 123\000456 |
length(string) | int | Length of binary string | length(E'jo\\000se'::bytea) | 5 |
md5(string) | text | Calculates the MD5 hash of string, returning the result in hexadecimal | md5(E'Th\\000omas'::bytea) | 8ab2d3c9689aaf18 b4958c334c82d8b1 |
User Comments
New comments cannot be added to old documentation versions.