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
I have just release version 8 of the PostgreSQL Buildfarm client It can be downloaded from http://buildfarm.postgresql.org/downloads/releases/build-farm-8.tgz or http://github.com/PGBuildFarm/client-code/archive/REL_8.tar.gz This release contains a number of small changes to make using the --from-source feature a bit nicer. It also contains a good deal of code cleanup to be perlcritic clean, with...
Technical Blog
I have released version 6.1 of the PostgreSQL Buildfarm client. It is available at http://buildfarm.postgresql.org/downloads/releases/build-farm-6_1.tgz This release fixes a couple of bugs that became apparent in yesterday’s release. The first was a relatively minor one where the verbosity was always set if using the run_branches.pl script. The second was a portability issue where some versions of...
Technical Blog
PostgreSQL Buildfarm client Release 6 is now available and can be downloaded from http://buildfarm.postgresql.org/downloads/releases/build-farm-6.tgz Features use a persistent cache for configure, leading to a substantial performance improvement for that step, based on an idea from Tom Lane improve installcheck security, mirroring earlier changes on this in Postgres itself allow skipping...
Technical Blog
Recently we’ve had a patch submitted to support the latest incarnation of the Microsoft build tools, Visual Studio 2017. I didn’t have a spare Windows machine available to test with, so I set up Windows machine on Amazon AWS to test with. I chose Windows Server 2016, a t2.medium instance with a 50 GB root disk (The default 30Gb is a bit tight.) This costs about US$0.065 per hour to run, so it’s...
Technical Blog
Release 5 of the PostgreSQL Buildfarm Client has been released and can be downloaded from http://buildfarm.postgresql.org/downloads/releases/build-farm-5.tgz In a similar move to PostgreSQL version numbering, with this release we move to a one part numbering system. In addition to a number of bug fixes and very minor changes, this release has the following features / changes: Cross-version pg...
Technical Blog
Some of my Italian colleagues have made a nifty little gadget called redislog for pushing postgres logs into Redis, the distributed in-memory cache. From there it can be fed into things like logstash. I thought it would be interesting instead to make the logs available via the Redis Foreign Data Wrapper as a Postgres table. That way we would have easy access to the running logs from Postgres with...
Technical Blog
Recently I was asked “what’s a vpath build?” If you regularly build postgres from source it’s something you should know about. A vpath build is one where the build tree is kept completely separate from the source tree, so you can completely remove the build tree and your source tree is still there, clean and pristine. It’s very easy to set up unless you’re building with the Microsoft toolset...
Technical Blog
I have released version 4.19 of the PostgreSQL Buildfarm client. It can be downloaded from http://buildfarm.postgresql.org/downloads/releases/build-farm-4_19.tgz Apart from some minor bug fixes, the following changes are made: Include the script’s path in @INC. That means you can usually run the script from anywhere rather than just its own directory. Set TZ after “make check” is run. This makes...
Technical Blog
I have just committed a series of patches that provide support for enum types in the btree_gin and btree_gist standard extensions. This is something I first started work on about a year ago. It turned out to be more involved that I had first thought it would be, as it requires some additional core code due to the way that enum comparisons work, which is a bit more complex than for most data types...
Technical Blog
My colleague Álvaro Herrera gave a terrific explanation of the new XMLTABLE feature from Pavel Stěhule that he’s put a huge amount of effort into, and finally recently committed. I thought it would be fun to see how the example he gave might work today with JSON. First, I came up with a JSON equivalent version of his piece of XML. Notice that in JSON, unlike in XML, containers are nameless, so we...