pg_map

pg_lake 内置并依赖的 PostgreSQL Map 数据类型。

概览

扩展包名版本分类许可证语言
pg_lake3.4OLAPApache-2.0C
ID扩展名BinLibLoadCreateTrustReloc模式
2560pg_lakelake
2561pg_extension_baseextension_base
2562pg_extension_updaterextension_updater
2563pg_mapmap_type
2564pg_lake_engine__lake__internal__nsp__
2565pg_lake_iceberglake_iceberg
2566pg_lake_table__pg_lake_table_writes
2567pg_lake_copypg_catalog
相关扩展
下游依赖pg_lake_engine

This packaged provider is Snowflake pg_lake pg_map 3.4, not the unrelated semenikhind/pg_map 1.0 array-mapping extension. The catalog name is unique, so the packaged provider supersedes that source-only row and is reassigned with the pg_lake family to OLAP ID 2563. Extension SQL/control version is 3.4; source and DEB/RPM package version is 3.4.0.

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY3.41817161514pg_lake-
RPMPIGSTY3.4.01817161514pg_lake_$v-
DEBPIGSTY3.4.01817161514postgresql-$v-pg-lake-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64PIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISS
el8.aarch64PIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISS
el9.x86_64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS
el9.aarch64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS
el10.x86_64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS
el10.aarch64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS
d12.x86_64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS
d12.aarch64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS
d13.x86_64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS
d13.aarch64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS
u22.x86_64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS
u22.aarch64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS
u24.x86_64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS
u24.aarch64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS
u26.x86_64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS
u26.aarch64PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY 3.4.0PIGSTY MISSPIGSTY MISS

构建

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

pig build pkg pg_lake         # 构建 RPM / DEB 包

安装

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

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

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

pig install pg_lake;          # 当前活跃 PG 版本安装
pig ext install -y pg_lake -v 18  # PG 18
pig ext install -y pg_lake -v 17  # PG 17
pig ext install -y pg_lake -v 16  # PG 16
dnf install -y pg_lake_18       # PG 18
dnf install -y pg_lake_17       # PG 17
dnf install -y pg_lake_16       # PG 16
apt install -y postgresql-18-pg-lake   # PG 18
apt install -y postgresql-17-pg-lake   # PG 17
apt install -y postgresql-16-pg-lake   # PG 16

创建扩展

CREATE EXTENSION pg_map;

用法

来源:

pg_map 将一个单参数 PostgreSQL 函数应用到数组的每个元素,并返回由函数结果组成的数组。它的两个重载分别用 OID 或文本标识待映射函数;带括号的文本签名按特定 regprocedure 解析,裸函数名按 regproc 解析。

在数组上映射函数

CREATE EXTENSION pg_map;

SELECT pg_map(
  'upper(text)',
  ARRAY['alpha', 'beta', 'gamma']::text[]
);

本例将 upper(text) 应用于每个元素,并返回大写文本数组。函数存在重载时,给出完整签名可避免歧义。

注意事项

  • 上游只声明与 PostgreSQL 9.6devel 兼容,没有说明支持现代 PostgreSQL 版本。
  • 1.0 版 C 实现使用 PostgreSQL 内部数组、catalog 和函数管理器 API。使用前应针对确切服务器源码构建并运行回归测试。
  • 被映射函数必须接收一个参数。数组元素类型不同于函数参数类型时,实现会尝试做元素类型转换;找不到转换函数时会报错。
  • 上游没有发布许可证或发行版兼容矩阵。

最后修改 2026-07-18: add pg_lake extensions (e065559)