collection
在PlPGSQL中使用的内存优化高性能集合数据结构
仓库
aws/pgcollection
https://github.com/aws/pgcollection
源码
pgcollection-2.0.0.tar.gz
pgcollection-2.0.0.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pgcollection | 2.0.0 | TYPE | Apache-2.0 | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 3690 | collection | 否 | 是 | 否 | 是 | 否 | 是 | - |
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 2.0.0 | 1817161514 | pgcollection | - |
| RPM | PIGSTY | 2.0.0 | 1817161514 | pgcollection_$v | - |
| DEB | PIGSTY | 2.0.0 | 1817161514 | postgresql-$v-collection | - |
构建
您可以使用 pig build 命令构建 pgcollection 扩展的 RPM / DEB 包:
BASH
安装
您可以直接安装 pgcollection 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
BASH
使用 pig 或者是 apt/yum/dnf 安装扩展:
安装
BASH
pig
BASH
dnf
BASH
apt
BASH
创建扩展:
SQL
用法
collection 扩展提供了两种内存优化的集合数据类型,用于 PL/pgSQL 函数中。
SQL
数据类型
collection:文本键的键值对(最长 32,767 字符),按创建顺序存储icollection:64 位整数键的键值对,支持稀疏数组
两种类型都支持类型修饰符来指定元素类型:
SQL
下标访问
SQL
核心函数
| 函数 | 说明 |
|---|---|
add(coll, key, value) | 添加元素 |
count(coll) | 元素数量 |
delete(coll, key) | 删除元素 |
exist(coll, key) | 检查键是否存在 |
find(coll, key) | 获取值 |
first(coll) | 将迭代器移至起始位置 |
last(coll) | 将迭代器移至末尾位置 |
next(coll) | 迭代器前进 |
prev(coll) | 迭代器后退 |
key(coll) | 当前键 |
value(coll) | 当前值 |
copy(coll) | 创建副本 |
sort(coll) | 按键排序 |
keys_to_table(coll) | 所有键作为集合返回 |
values_to_table(coll) | 所有值作为集合返回 |
to_table(coll) | 键值对作为表返回 |
迭代器示例
SQL
稀疏数组(icollection)
icollection 支持非连续整数索引,并能区分 NULL 值和未初始化的键:
SQL