Just enough Postgres compatibility to keep your sanity
Wednesday, September 30 · 10:30–11:20
Postgres has become the most popular database. Which is why many other databases claim to be "Postgres compatible". But the hard truth is: Only PostgreSQL is fully "Postgres compatible". Everyone else is just a clever imposter attempting to fool most users. But given enough users, there's always one that finds a new compatibility bug.
I've spent years perfecting this art of deception, having implemented the Postgres protocol twice: First as a maintainer of the PgBouncer connection pooler, and then when implementing the "Postgres Endpoint" for MotherDuck (a data warehouse based on DuckDB).
In this talk I'll share the interesting, funny and often horrifying lessons I learned about building Postgres compatible servers.
What you'll learn in this talk:
- How to build your own "Postgres compatible" database with just a few lines of Go code
- A deep understanding of the Postgres protocol
- Why the line between the protocol and the SQL dialect is kinda blurry
- How clients and ORMs (mis)use the system catalogs in pg_catalog and information_schema
- When to say: "This is enough!"