Snowflake-Labs/pg_lake v3.4.0
Snowflake-Labs/pg_lake
Captured source
source ↗published Jul 9, 2026seen 2wcaptured 2whttp 200method plain
v3.4.0
Repository: Snowflake-Labs/pg_lake
Tag: v3.4.0
Published: 2026-07-09T14:11:02Z
Prerelease: no
Release notes:
What's changed
- CREATE SERVER syntax for reading from multiple external (REST) catalogs
- Improved Iceberg compatibility across platforms
- Performance improvements for Iceberg writes
- Various bug fixes and security patches
Upgrading to 3.4.0 or 3.3.5 is recommended to get the latest security patches.
PR list
- Make linting its own workflow by @sfc-gh-npuka in https://github.com/Snowflake-Labs/pg_lake/pull/317
- Export GetNotShippableDescription and CollectNotShippableObjects by @sfc-gh-okalaci in https://github.com/Snowflake-Labs/pg_lake/pull/318
- Bump all versions to 3.4 by @sfc-gh-npuka in https://github.com/Snowflake-Labs/pg_lake/pull/321
- Fix NOT NULL bypass when clamp mode converts values to NULL by @sfc-gh-npuka in https://github.com/Snowflake-Labs/pg_lake/pull/316
- Upload postgres log artifacts to CI by @sfc-gh-dachristensen in https://github.com/Snowflake-Labs/pg_lake/pull/323
- Pin PGINDENT_PG_VERSION by @sfc-gh-npuka in https://github.com/Snowflake-Labs/pg_lake/pull/325
- Bump max_replication_slots in CI by @sfc-gh-dachristensen in https://github.com/Snowflake-Labs/pg_lake/pull/324
- Fix double-free in WaitForResult when pgduck_server crashes mid-query by @sfc-gh-dachristensen in https://github.com/Snowflake-Labs/pg_lake/pull/326
- Fix TIMETZ corruption in Iceberg pushdown/snapshot writes by @sfc-gh-okalaci in https://github.com/Snowflake-Labs/pg_lake/pull/329
- Bound iceberg manifest-rewrite memory under high-churn workloads by @sfc-gh-okalaci in https://github.com/Snowflake-Labs/pg_lake/pull/334
- Allow per-table opt-out of autovacuum data-file compaction by @sfc-gh-okalaci in https://github.com/Snowflake-Labs/pg_lake/pull/335
- Add PAM support to PostgreSQL compile flags and Docker images by @sfc-gh-dachristensen in https://github.com/Snowflake-Labs/pg_lake/pull/313
- Onder/iceberg preserve required on autodetect by @sfc-gh-okalaci in https://github.com/Snowflake-Labs/pg_lake/pull/337
- Optimize pre-commit by avoiding to read stats of unchanged files by @sfc-gh-mslot in https://github.com/Snowflake-Labs/pg_lake/pull/339
- Allow external extensions to register objects to hide from installcheck by @sfc-gh-dachristensen in https://github.com/Snowflake-Labs/pg_lake/pull/340
- Fix double pfree of REST catalog access token after OAuth failure by @sfc-gh-dachristensen in https://github.com/Snowflake-Labs/pg_lake/pull/342
- Mark test_writable_iceberg_table_tx as flaky with reruns=2 by @sfc-gh-dachristensen in https://github.com/Snowflake-Labs/pg_lake/pull/343
- Fix DuckDB identifier and struct value quoting for special characters by @sfc-gh-dachristensen in https://github.com/Snowflake-Labs/pg_lake/pull/297
- Lock down extension-owner SPI / direct-call sites by @sfc-gh-dachristensen in https://github.com/Snowflake-Labs/pg_lake/pull/359
- pg_lake_table: ANALYZE pg_lake catalogs to keep commit-time diff off the N² cliff by @sfc-gh-okalaci in https://github.com/Snowflake-Labs/pg_lake/pull/352
- pg_lake: batch delete in_progress_files by @sfc-gh-okalaci in https://github.com/Snowflake-Labs/pg_lake/pull/354
- Escape JSON identifiers and paths in REST catalog request bodies by @sfc-gh-dachristensen in https://github.com/Snowflake-Labs/pg_lake/pull/358
- Add region detection to FileExists by @sfc-gh-mslot in https://github.com/Snowflake-Labs/pg_lake/pull/351
- Allow narrow temp-table creation under SPI_START_EXTENSION_OWNER by @sfc-gh-dachristensen in https://github.com/Snowflake-Labs/pg_lake/pull/360
- Bump polaris version from 1.2 to 1.5.0 by @sfc-gh-okalaci in https://github.com/Snowflake-Labs/pg_lake/pull/344
- pg_lake_table: tune autovacuum on commit-time diff catalogs by @sfc-gh-okalaci in https://github.com/Snowflake-Labs/pg_lake/pull/362
- pg_lake_table: bulk-INSERT data file catalog changes by @sfc-gh-okalaci in https://github.com/Snowflake-Labs/pg_lake/pull/355
- Fix CI for #327: Fix column type OIDs in pgduck_server row description metadata by @sfc-gh-mslot in https://github.com/Snowflake-Labs/pg_lake/pull/364
- Fix domain types in Iceberg always mapping to string by @sfc-gh-mslot in https://github.com/Snowflake-Labs/pg_lake/pull/370
- Fix base64 newline wrapping that corrupts the GHCR auth header by @sfc-gh-npuka in https://github.com/Snowflake-Labs/pg_lake/pull/374
- Fix misleading iceberg catalog option error messages by @sfc-gh-npuka in https://github.com/Snowflake-Labs/pg_lake/pull/368
- test_common: honor PGLAKE_EXTRA_INITDB_ARGS in initdb by @sfc-gh-dachristensen in https://github.com/Snowflake-Labs/pg_lake/pull/376
- postgres_scanner: convert PostGIS geometry to canonical WKB by @sfc-gh-dachristensen in https://github.com/Snowflake-Labs/pg_lake/pull/377
- pg_extension_base: install ProcessUtility hook before preloading libraries by @sfc-gh-mslot in https://github.com/Snowflake-Labs/pg_lake/pull/381
- New Catalog Configuration via CREATE SERVER by @sfc-gh-npuka in https://github.com/Snowflake-Labs/pg_lake/pull/242
- Reject hour partition transform on time columns (CI) by @sfc-gh-mslot in https://github.com/Snowflake-Labs/pg_lake/pull/379
- Push down array containment operators @> and <@ to DuckDB by @sfc-gh-okalaci in https://github.com/Snowflake-Labs/pg_lake/pull/386
- Invalidate Parquet metadata on explicit uncache (CI) by @sfc-gh-mslot in https://github.com/Snowflake-Labs/pg_lake/pull/378
- Allow r2:// URL scheme (CI) and make supported-URL errors generic by @sfc-gh-mslot in https://github.com/Snowflake-Labs/pg_lake/pull/380
- Support ALTER on external Iceberg tables to redirect path by @sfc-gh-mslot in https://github.com/Snowflake-Labs/pg_lake/pull/387
- pgduck_server: bound DuckDB spill to disk and fail gracefully by @sfc-gh-okalaci in https://github.com/Snowflake-Labs/pg_lake/pull/393
- Add hook in pg_lake_finish_postgres_recovery by @sfc-gh-mslot in https://github.com/Snowflake-Labs/pg_lake/pull/394
- Fix iceberg STRUCT text value escaping for embedded " and \ by @sfc-gh-mslot in https://github.com/Snowflake-Labs/pg_lake/pull/402
- Support copy from and insert..select pushdown with identity and time partitioning by @sfc-gh-mslot in https://github.com/Snowflake-Labs/pg_lake/pull/322
- pg_lake_iceberg: rewrite object_store catalog at least once per minute, include catalog-snapshot-time by @sfc-gh-mslot in https://github.com/Snowflake-Labs/pg_lake/pull/388
- Extract 5 components from rest_catalog.c into sibling source...
Excerpt shown — open the source for the full document.