Column Storage Intervals

Postgres uses native cpu alignment to store values in a row. This allows blocks to be copied unchanged from disk into shared buffers and accessed as local variables, as outlined...
April 25, 2017

Creating Descending Indexes

You might have noticed that create index allows you to specify asc or desc for each column being indexed, and you might have wondered why. Asc is the default, so...
April 18, 2017

Index Order Does Matter

Postgres has supported multi-column indexes since 1997, e.g. create index i_test on test (a, b, c). It can easily use an index if the supplied columns are all at the...
April 12, 2017

Statistics on Expression Indexes

Most people know that Postgres allows the creation of indexes on expressions. This is helpful if you need index lookups of expressions used in where clauses.
March 22, 2017

Getting the Most of out Application_Name

Application_name might be one of those Postgres settings that you have seen in various places but never understood its purpose. It is true that setting application_name doesn't change the behavior...
March 15, 2017

PostgreSQL: Aggregate Push-down in postgres_fdw

It's exciting times in PostgreSQL for those who are using postgres_fdw or Foreign Data Wrappers (FDWs) in general. Users often complained that a simple count(*) on a foreign table was...
December 22, 2016