Andrew Dunstan

Andrew Dunstan is a Senior Principal Engineer at EDB. He has been contributing to the PostgreSQL project for more than 20 years, and for most of that time has been one of the project's core committers.

Among the features he has contributed to are the Windows port, CSV import and export, parallel pg_restore, and the JSON and JSONB data types and associated functions. In 2004 he created the PostgreSQL Build Farm, which he still maintains.

Andrew joined 2ndQuadrant in 2016 and EDB in 2020 when it acquired 2ndQuadrant.

Read Blogs

Technical Blog
From time to time we see queries about best practice for PostgreSQL backups. I saw one just the other day. The first thing to note is that a backup strategy needs to be part of a more complete Disaster Recovery plan. This plan needs to identify what risks it is addressing, and how they are being mitigated. The DR plan should be regularly reviewed and tested with simulated disasters. One very well...
EDB Labs
How and when to use SSL Client Certificates for Authentication with PostgreSQL
EDB Labs
How we ended up with two JSON parsers in PostgreSQL
Technical Blog
Con el lanzamiento de PostgreSQL 13, realizado el día de ayer, quizás sea un buen momento para hablar de cuándo y cómo debería implementarse la nueva versión de la base de datos. A menudo escuchamos preguntas como "¿Cuándo debería actualizar?" y "¿Debería cambiar mi plan de nueva implementación a la nueva versión?" Lo primero que hay que considerar es esto: no debería implementar ningún software...
Technical Blog
With the release yesterday of PostgreSQL 13, now is perhaps a good time to talk about when and how it should be deployed. We often get questions at such times like "When should I upgrade?" and "Should I switch my new planned deployment to the new release?" The first thing to consider is this: you shouldn’t deploy any software you haven’t tested with. So unless you have been testing your app...
Technical Blog
Let’s say you have two PostgreSQL servers that connect to each other using postgres_fdw. They communicate over TLS and they use client certificates to authenticate. You have a Certificate Authority you have set up, and it has issued server and client certificates for each server. On server one you have server1.crt, server1.key, client1.crt, client1.key and root.crt. On server two you have similar...
Technical Blog
Daniel Gustafsson has done some terrific work on using NSS as an alternative TLS library to OpenSSL for PostgreSQL. I’ve done some work making that build and run on Windows. Daniel recently asked how to get a working NSS on Windows to use for development, and this blog is about that process. First you need to start with a clean Windows environment. The simplest way is a new virtual machine...
Technical Blog
Let’s say you have an application that has a huge table and that needs to be available all the time. It’s got so big that managing it without partitioning it is getting increasingly difficult. But you can’t take the table offline to create a new partitioned version of the table, which would take a great deal of time since this is a huge table. Here is a recipe for dealing with the problem. It won...
Technical Blog
Recently there were some complaints about the behaviour of the jsonb_set function. Specifically, the complain was that if the value argument of the function is null the result is null. This happens because the function is declared STRICT, like many PostgreSQL functions. STRICT is in fact another way of spelling RETURNS NULL ON NULL INPUT. There are numerous advantages to having functions with this...
Technical Blog
Release 11 of the PostgreSQL Buildfarm client is now available. The release includes numerous bug fixes plus following features: Allow a list of branches as positional arguments to run_branches.pl This overrides what is found in the config file. The list can’t include metabranches like ALL, nor can it contain regexes. improve diagnostic capture for git and fetching branches of interest unify...