pg_map

Map type for PostgreSQL, bundled as a required pg_lake component.

Overview

PackageVersionCategoryLicenseLanguage
pg_lake3.4OLAPApache-2.0C
IDExtensionBinLibLoadCreateTrustRelocSchema
2560pg_lakeYesYesYesYesNoNolake
2561pg_extension_baseNoYesYesYesNoNoextension_base
2562pg_extension_updaterNoYesYesYesNoNoextension_updater
2563pg_mapNoYesNoYesNoNomap_type
2564pg_lake_engineNoYesYesYesNoNo__lake__internal__nsp__
2565pg_lake_icebergNoYesNoYesNoNolake_iceberg
2566pg_lake_tableNoYesYesYesNoNo__pg_lake_table_writes
2567pg_lake_copyNoYesYesYesNoNopg_catalog
Related
Depended Bypg_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.

Version

TypeRepoVersionPG VerPackageDeps
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

Build

You can build the RPM / DEB packages for pg_lake using pig build:

pig build pkg pg_lake         # build RPM / DEB packages

Install

You can install pg_lake directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:

pig repo add pgsql -u          # Add repo and update cache

Install the extension using pig or apt/yum/dnf:

pig install pg_lake;          # Install for current active PG version
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:

CREATE EXTENSION pg_map;

Usage

Sources:

pg_map applies a one-argument PostgreSQL function to every element of an array and returns an array of the function results. Its two overloads identify the mapped function by OID or by text; a text signature containing parentheses is resolved as a specific regprocedure, while a bare name is resolved as regproc.

Map a Function over an Array

CREATE EXTENSION pg_map;

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

The example applies upper(text) to each element and returns an uppercase text array. Supplying a full signature avoids ambiguity when a function name is overloaded.

Caveats

  • Upstream only claims compatibility with PostgreSQL 9.6devel. It does not document support for modern PostgreSQL releases.
  • The version 1.0 C implementation uses PostgreSQL internal array, catalog, and function-manager APIs. Build and regression-test it against the exact server source before use.
  • The mapped function must accept one argument. The implementation attempts an element-type cast when the array element type differs from the function argument type and errors if no cast function is available.
  • Upstream publishes no license or release compatibility matrix.

Last Modified 2026-07-18: add pg_lake extensions (ea0d6d9)