pg_lake_table
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pg_lake | 3.4 | OLAP | Apache-2.0 | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 2560 | pg_lake | Yes | Yes | Yes | Yes | No | No | lake |
| 2561 | pg_extension_base | No | Yes | Yes | Yes | No | No | extension_base |
| 2562 | pg_extension_updater | No | Yes | Yes | Yes | No | No | extension_updater |
| 2563 | pg_map | No | Yes | No | Yes | No | No | map_type |
| 2564 | pg_lake_engine | No | Yes | Yes | Yes | No | No | __lake__internal__nsp__ |
| 2565 | pg_lake_iceberg | No | Yes | No | Yes | No | No | lake_iceberg |
| 2566 | pg_lake_table | No | Yes | Yes | Yes | No | No | __pg_lake_table_writes |
| 2567 | pg_lake_copy | No | Yes | Yes | Yes | No | No | pg_catalog |
| Related | btree_gist pg_lake_engine pg_lake_iceberg pg_ducklake pg_mooncake columnar pg_parquet storage_engine orioledb pg_sorted_heap aws_s3 pg_bulkload file_fdw |
|---|---|
| Depended By | pg_lake pg_lake_copy |
pg_extension_base auto-loads pg_lake_engine, pg_lake_iceberg, and pg_lake_table in dependency order. Extension SQL/control version is 3.4; source and DEB/RPM package version is 3.4.0.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 3.4 | 1817161514 | pg_lake | btree_gist, pg_lake_engine, pg_lake_iceberg |
| RPM | PIGSTY | 3.4.0 | 1817161514 | pg_lake_$v | - |
| DEB | PIGSTY | 3.4.0 | 1817161514 | postgresql-$v-pg-lake | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | N/A | N/A | N/A | N/A | N/A |
| el8.aarch64 | N/A | N/A | N/A | N/A | N/A |
| el9.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| el9.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| el10.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| el10.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| d12.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| d12.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| d13.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| d13.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| u22.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| u22.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| u24.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| u24.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| u26.x86_64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
| u26.aarch64 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | PIGSTY 3.4.0 | N/A | N/A |
Build
You can build the RPM / DEB packages for pg_lake using pig build:
Install
You can install pg_lake directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
Install the extension using pig or apt/yum/dnf:
Preload:
Create Extension:
Usage
Sources:
- Official data-lake file query guide
- Official Iceberg table guide
- Version 3.4 control file
- FDW, server, utility, and access-method SQL
pg_lake_table exposes object-store files as PostgreSQL foreign tables and provides the USING iceberg table syntax. It owns the pg_lake and pg_lake_iceberg foreign servers, file inspection/cache utilities, table catalogs, and transaction hooks; Iceberg metadata encoding is delegated to pg_lake_iceberg.
Query External Files
Install the complete stack, including the required pg_lake_engine, pg_lake_iceberg, and btree_gist dependencies:
An empty column list asks pg_lake to infer the file schema:
Create a writable Iceberg table through the extension-provided table access method:
File and Table Utility Index
lake_file.list(pattern): lists matching object paths, sizes, modification times, and ETags.lake_file.size(path)andlake_file.exists(path): inspect one remote object.lake_file.preview(url, format, compression): returns inferred column names and types.lake_file.delete(url): deletes a remote object; restrict it to roles that are allowed to remove data.lake_file_cache.add(path, refresh),remove(path), andlist(): manage the local file cache for members oflake_read.lake_iceberg.table_size(regclass): totals the current data-file sizes of an Iceberg table.- Foreign servers
pg_lakeandpg_lake_iceberg: read-file and writable-Iceberg entry points. - Access methods
icebergandpg_lake_iceberg: aliases used to translateCREATE TABLE ... USINGinto the extension’s foreign-table representation.
Operational Caveats
pg_extension_basemust be preloaded andpgduck_servermust be running with credentials for every referenced location.lake_read,lake_write, andlake_read_writecontrol access to servers, schemas, and utilities. Grant the narrowest role required by each application.- External tables are references to files, not imported copies. File replacement, cross-region access, and cache invalidation can change latency or results independently of PostgreSQL catalog state.
- Iceberg inserts are optimized for batches rather than single rows. Use a staging heap table for high-rate row-at-a-time ingestion and periodically flush batches.
- Internal
lake_table.*catalogs track files, field IDs, partitions, and recovery state. Do not modify them directly.
Was this page helpful?
Thanks—your feedback helps us improve this page.
What got in the way? (optional)