9.14. Array Functions

Table 9-41 shows the operators available for the array types.

Table 9-41. array Operators

OperatorDescriptionExampleResult
= equalsARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3]t
|| array-to-array concatenationARRAY[1,2,3] || ARRAY[4,5,6]{{1,2,3},{4,5,6}}
|| array-to-array concatenationARRAY[1,2,3] || ARRAY[[4,5,6],[7,8,9]]{{1,2,3},{4,5,6},{7,8,9}}
|| element-to-array concatenation3 || ARRAY[4,5,6]{3,4,5,6}
|| array-to-element concatenationARRAY[4,5,6] || 7{4,5,6,7}

Table 9-42 shows the functions available for use with array types. See Section 8.10 for more discussion and examples for the use of these functions.

Table 9-42. array Functions

FunctionReturn TypeDescriptionExampleResult
array_append (anyarray, anyelement) anyarray append an element to the end of an array, returning NULL for NULL inputs array_append(ARRAY[1,2], 3){1,2,3}
array_cat (anyarray, anyarray) anyarray concatenate two arrays, returning NULL for NULL inputs array_cat(ARRAY[1,2,3], ARRAY[4,5,6]){{1,2,3},{4,5,6}}
array_dims (anyarray) text returns a text representation of array dimension lower and upper bounds, generating an ERROR for NULL inputs array_dims(array[[1,2,3],[4,5,6]])[1:2][1:3]
array_lower (anyarray, integer) integer returns lower bound of the requested array dimension, returning NULL for NULL inputs array_lower(array_prepend(0, ARRAY[1,2,3]), 1)0
array_prepend (anyelement, anyarray) anyarray append an element to the beginning of an array, returning NULL for NULL inputs array_prepend(1, ARRAY[2,3]){1,2,3}
array_to_string (anyarray, text) text concatenates array elements using provided delimiter, returning NULL for NULL inputs array_to_string(array[1.1,2.2,3.3]::numeric(4,2)[],'~^~')1.10~^~2.20~^~3.30
array_upper (anyarray, integer) integer returns upper bound of the requested array dimension, returning NULL for NULL inputs array_upper(array_append(ARRAY[1,2,3], 4), 1)4
string_to_array (text, text) text[] splits string into array elements using provided delimiter, returning NULL for NULL inputs string_to_array('1.10~^~2.20~^~3.30','~^~')::float8[]{1.1,2.2,3.3}