parray_gin

为 text[] 提供部分匹配运算符与 GIN 索引支持

概览

扩展包名版本分类许可证语言
parray_gin1.5.0FUNCPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
4860parray_gin-
相关扩展intarray btree_gin btree_gist pg_trgm smlar aggs_for_arrays aggs_for_vecs arraymath

PGXN dist name and PostgreSQL extension name are both parray_gin; Pigsty packages are built for PG 14-18.

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY1.5.01817161514parray_gin-
RPMPIGSTY1.5.01817161514parray_gin_$v-
DEBPIGSTY1.5.01817161514postgresql-$v-parray-gin-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
d12.aarch64
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
d13.x86_64
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
d13.aarch64
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
u22.x86_64
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
u22.aarch64
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
u24.x86_64
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
u24.aarch64
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
u26.x86_64
u26.aarch64
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0
PIGSTY 1.5.0

构建

您可以使用 pig build 命令构建 parray_gin 扩展的 RPM / DEB 包:

pig build pkg parray_gin         # 构建 RPM / DEB 包

安装

您可以直接安装 parray_gin 扩展包的预置二进制包,首先确保 PGDGPIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install parray_gin;          # 当前活跃 PG 版本安装
pig ext install -y parray_gin -v 18  # PG 18
pig ext install -y parray_gin -v 17  # PG 17
pig ext install -y parray_gin -v 16  # PG 16
pig ext install -y parray_gin -v 15  # PG 15
pig ext install -y parray_gin -v 14  # PG 14
dnf install -y parray_gin_18       # PG 18
dnf install -y parray_gin_17       # PG 17
dnf install -y parray_gin_16       # PG 16
dnf install -y parray_gin_15       # PG 15
dnf install -y parray_gin_14       # PG 14
apt install -y postgresql-18-parray-gin   # PG 18
apt install -y postgresql-17-parray-gin   # PG 17
apt install -y postgresql-16-parray-gin   # PG 16
apt install -y postgresql-15-parray-gin   # PG 15
apt install -y postgresql-14-parray-gin   # PG 14

创建扩展

CREATE EXTENSION parray_gin;

用法

parray_gintext[] 增加一个 GIN operator class,并提供严格匹配与部分匹配操作符。上游把它描述为基于 pg_trgm trigram 分解的数组索引。

创建扩展与索引

CREATE EXTENSION parray_gin;

CREATE TABLE test_table (
  id  bigserial,
  val text[]
);

CREATE INDEX test_tags_idx
ON test_table
USING gin (val parray_gin_ops);

可索引操作符

reference doc 说明 parray_gin_ops 支持下列操作符:

  • @>:严格包含。
  • <@:严格被包含。
  • @@>:部分包含,数组元素可以使用 LIKE 模式。
  • <@@:部分被包含。

示例:

SELECT * FROM test_table WHERE val @> ARRAY['must','contain'];
SELECT * FROM test_table WHERE val @@> ARRAY['what%like%'];
SELECT * FROM test_table WHERE val <@ ARRAY['galaxy','ago','vader'];
SELECT * FROM test_table WHERE val <@@ ARRAY['%ar%','vader'];

匹配行为

严格匹配要求数组元素完全相等。部分匹配允许 'foo%''%oo%' 这类模式。由于 trigram 索引可能返回误命中,文档说明索引查找之后还会做 recheck。

注意事项

README 表示支持范围一直到 PostgreSQL 18,而 reference doc 仍写成 9.1-14。两份文档对操作符和 opclass 行为的描述是一致的,但版本说明在上游尚未完全同步。


最后修改 2026-05-01: update extension data (e399d22)