Snowflake unties pg_lake from one Iceberg catalog

Snowflake unties pg_lake from one Iceberg catalog

Snowflake has fixed a small assumption with large consequences in its open source Postgres extension. In pg_lake 3.5: Universal Iceberg REST Catalog Support for Postgres, the engineering post explains that pg_lake, which lets Postgres read and write Apache Iceberg tables in object storage, shipped with a REST catalog client whose URLs “assume the Apache Polaris layout.” The Iceberg REST Catalog specification defines paths such as /v1/{prefix}/namespaces, “but it does not prescribe where these paths are mounted on a server.” Each catalog chose its own base path, and pg_lake hardcoded Polaris’s.

There are no adoption figures, and the post is precise about what works today. pg_lake 3.5, released in September, accepts a full base URI, so Postgres can now query Iceberg tables through Lakekeeper and Nessie as well as Polaris, using storage credentials vended by the catalog. Writable tables are “supported on Apache Polaris only”; other catalogs are read-only for now, tracked in a public issue. The next release adds automatic prefix discovery, clearer errors for misconfigured catalogs, unauthenticated catalogs for development, and Unity Catalog. The governance point is the best line: “When pg_lake requests access to an Iceberg table, the catalog decides whether Postgres can see it and which storage credentials it gets, the same way it does for every other engine.” Security moves to the catalog, once, instead of into every engine.

The catalog holds Snowflake’s own side of this. The Snowflake provider page lists 49 API pages, including the Snowflake Iceberg Table API and the Snowflake Catalog Integration API, which connects Snowflake to external Iceberg catalogs of exactly the kind pg_lake now speaks to. The agentic access profile maps 408 operations, 276 of them acting and 14 human-in-the-loop. On the Agent Readiness score, the MCP server, agent skills, idempotency, reversibility, error semantics and delegated identity are lit.

The Kin Score is 81.2, exemplar band, carried by access clarity at 92.1 and developer ergonomics at 80.4, with contract governance at 45.5. The Agent Readiness score is 45.6. The story is a clean illustration of a lesson this series keeps returning to: a specification that defines paths but not where they mount leaves every client to guess, and the first client guesses the vendor it knows. The fix was to take the base URI as configuration and append only the spec-defined paths. Snowflake has made Postgres a citizen of every Iceberg catalog rather than one. The unlit dimensions on its record, a well-known catalog among them, are the same kind of mount point for agents.

← Productboard says MCP is how the tools connect, and Productboard is the record
Subscription billing on apis.io lists Ace Hardware and misses Stripe →