PostgreSQL Icon


PostgreSQL is an open source database system.
42 Stories
All Topics

Michael Malis YouTube

Writing an interpreter in SQL for fun and no profit!

Michael Malis at !!Con 2019:

Writing SQL can be hard. SQL code is a bizarre combination of yelling and relational algebra. How can we make writing SQL easier? By embedding our own programming language in our SQL queries of course! In this talk, we’ll take a look at how you use a combination of various Postgres features to build a programming language out of SQL.

Parker Selbert

Reliable and observable job processing in Elixir via Postgres

Oban’s primary goals are reliability, consistency and observability. It is fundamentally different from other background job processing tools because it retains job data for historic metrics and inspection. You can leave your application running indefinitely without worrying about jobs being lost or orphaned due to crashes.


PostgreSQL tools for the visually inclined

jumping from SQL Server to PostgreSQL is much more than changing a tool. PostgreSQL was built on Unix, with Unix in mind as the platform of choice, and typically runs best when it’s sitting on some type of Unix box. The Unix world has a pretty specific idiom for how to go about things and it certainly isn’t visual!

Rob Conery with a deep dive into psql and what makes it awesome.

PostgreSQL tools for the visually inclined

Amazon Web Services

Is Amazon’s new MongoDB-compatible DBMS really PostgreSQL under the covers?

This is a nice rundown of the technical clues indicating that DocumentDB might be powered by Postgres.

PostgreSQL isn’t the only DBMS that scales writes vertically and reads horizontally via replication, but when you add this all up, especially some of the specific limitations, I think it makes a pretty compelling argument that PostgreSQL is the engine powering AWS DocumentDB.

Craig Kerstiens

The best Postgres feature you're not using

Craig Kerstiens on why common table expressions (CTEs) are so cool:

For some reason most people throw out principles we follow in other languages such as commenting and composability just for SQL. … [CTEs] actually makes SQL both readable and composable, and even for my own queries capable of coming back to them months later and understanding them, where previously they would not be.

Click through for examples of these in use.


Odyssey – a scalable PostgreSQL connection pooler

How does Odyssey scale?

Odyssey can significantly scale processing performance by specifying a number of additional worker threads. Each worker thread is responsible for authentication and proxying client-to-server and server-to-client requests. All worker threads are sharing global server connection pools. Multi-threaded design plays important role in SSL/TLS performance.

Currently in beta, but the authors are using it in production so it’s likely usable at this stage.

Dimitri Fontaine

PostgreSQL data types – series recap

Dimitri Fontaine, a PostgreSQL major contributor, has written an awesome blog series on PostgreSQL data types to show how to benefit from the PostgreSQL concept of a data type.

The PostgreSQL concept of a data type is more than input validation, a PostgreSQL data type also implements expected behaviors and processing functions. This allows an application developer to rely on PostgreSQL for more complex queries, having the processing happen where the data is — for instance when implementing advanced JOIN operations, then retrieving only the data set that is interesting for the application.

The posts in this series were extracted from his book Mastering PostgreSQL in Application Development — which teaches SQL to developers so they can replace thousands of lines of code with very simple queries.


Postgres looks to LLVM's JIT for up to 20% speed up

This was posted back in March, but it’s news to me:

A long-running project has been JIT-compiling SQL queries in PostgreSQL by making use of LLVM’s just-in-time compilation support, rather than passing SQL queries through Postgres’ interpreter. With the LLVM JIT’ed queries, more efficient code is generated by being able to make more use of run-time information and can especially help in increasing the performance of complex SQL queries.

JIT-compiling expressions for PostgreSQL has been found to be up to ~20%+ faster in database tests like TPC-H. Creating indexes was found to be even 5~19% faster with this JIT mode

Hopefully this feature will progress quick enough to land in Postgres 11. 🙏

Benjie Gillam

Graphile –  tools for building performant, pluggable GraphQL APIs

PostGraphile is the new incarnation of PostGraphQL (project history), which introspects your Postgres database schema and creates a fully functional GraphQL API for it.

I’ve been poking around with these tools as I get acquainted with the provider side of GraphQL. I don’t think we’ll end up using PostGraphile if/when we ship our public Changelog API (news + podcasts), because I’m a control freak. But it’s been great for getting started quickly and seeing what’s possible. Highly recommended 👌

0:00 / 0:00