In Wednesday’s post on table access methods, I grouped Snowflake with Databricks and Microsoft as vendors with “bespoke storage layers underneath their Postgres-shaped products.” Elizabeth Christensen wrote in to point out that this is wrong about Snowflake, and she is right.
Snowflake Postgres is community Postgres. The storage, the heap, the table access method machinery, all of it is upstream. The acquisition of Crunchy Data did not result in a fork or a substituted storage layer underneath; what Snowflake ships as Postgres is what the community ships, plus operational tooling and a managed-service wrapper around it. There is no proprietary storage moat there to speak of.
That makes Snowflake a meaningfully different case from Aurora, which actually does run a modified Postgres with Aurora storage substituted below the buffer manager. Treating the two as the same kind of product was sloppy on my part.
What pg_lake Is, While We’re Here
The thing I was probably half-thinking of when I wrote that sentence is pg_lake, which is a separate extension and a separate animal. pg_lake exposes external Iceberg and Parquet data as queryable tables in Postgres — it is a path into lake-format storage from inside the database, not a replacement for the heap. It lives next to community Postgres, not underneath it, and it interacts with the planner and executor through extension hooks, not by substituting a TAM.
pg_lake is interesting on its own terms — it is one of the more credible attempts at bridging Postgres into the modern columnar lake stack without going the foreign data wrapper route — but it has nothing to do with the TAM extension story in the previous post, and conflating it with the Snowflake Postgres offering was an error.
So, was I right at all?
Sort of. Aurora has Aurora storage, and that is the canonical example of the pattern. Databricks Lakebase sits on a custom substrate. Past those two, the picture is messier than I made it sound: Azure’s mainline Azure Database for PostgreSQL is community Postgres on managed Azure infrastructure, not bespoke storage, and Snowflake Postgres — as above — is the same. The “every big cloud has a Postgres-shaped product with a proprietary storage moat” generalization was too tidy. Some do, some don’t, and the ones that don’t are worth knowing about when you are picking a hosted Postgres.
Thanks to Elizabeth for the catch!