intarray
intarray
intarray : functions, operators, and index support for 1-D arrays of integers
Overview
| ID | Extension | Package | Version | Category | License | Language |
|---|---|---|---|---|---|---|
| 4960 | intarray
|
intarray
|
1.5 |
FUNC
|
PostgreSQL
|
C
|
| Attribute | Has Binary | Has Library | Need Load | Has DDL | Relocatable | Trusted |
|---|---|---|---|---|---|---|
----dt-
|
No
|
No
|
No
|
Yes
|
no
|
yes
|
| Relationships | |
|---|---|
| See Also | aggs_for_arrays
aggs_for_vecs
arraymath
floatvec
vector
vchord
vectorscale
vectorize
|
Packages
| PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|
1.5
|
1.5
|
1.5
|
1.5
|
1.5
|
This is a built-in contrib extension ship with the PostgreSQL kernel
Install
Create this extension with:
CREATE EXTENSION intarray;Usage
intarray: integer array functions and operators with index support
Provides functions and operators for manipulating null-free integer arrays, with GiST and GIN index support for fast array searches.
CREATE EXTENSION intarray;Functions
| Function | Description | Example |
|---|---|---|
icount(int[]) |
Number of elements | icount('{1,2,3}') – 3 |
sort(int[], dir) |
Sort array ('asc' or 'desc') |
sort('{3,1,2}','asc') – {1,2,3} |
sort_asc(int[]) |
Sort ascending | sort_asc('{3,1,2}') – {1,2,3} |
sort_desc(int[]) |
Sort descending | sort_desc('{3,1,2}') – {3,2,1} |
uniq(int[]) |
Remove adjacent duplicates | uniq(sort('{1,2,3,2,1}')) – {1,2,3} |
idx(int[], item) |
Index of first match | idx('{11,22,33}', 22) – 2 |
subarray(int[], start, len) |
Extract sub-array | subarray('{1,2,3,4}', 2, 2) – {2,3} |
intset(int) |
Make single-element array | intset(42) – {42} |
Operators
| Operator | Description |
|---|---|
&& |
Arrays overlap (have common elements) |
@> |
Left array contains right |
<@ |
Left array is contained in right |
# |
Number of elements |
+ |
Array concatenation / append element |
- |
Remove elements |
| |
Union of arrays |
& |
Intersection of arrays |
@@ |
Array matches a query expression |
~~ |
Query expression matches array |
Index Support
-- GiST index for array containment/overlap queries
CREATE INDEX idx ON messages USING GIST (tags gist__intbig_ops);
-- GIN index (alternative)
CREATE INDEX idx ON messages USING GIN (tags gin__int_ops);
-- Query with index support
SELECT * FROM messages WHERE tags && '{1,2}'; -- overlap
SELECT * FROM messages WHERE tags @> '{1,2}'; -- contains
SELECT * FROM messages WHERE tags @@ '1&(2|3)'; -- query expressionLast updated on