ReleaseSnowflake (Arctic)Snowflake (Arctic)published Jul 9, 2026seen 2w

Snowflake-Labs/pg_lake v3.4.0

Snowflake-Labs/pg_lake

Open original ↗

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.