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
Andrew Dunstan December 12, 2025 PostgreSQL을 운영하다 보면 한 가지 궁금증이 생길 수 있습니다. PostgreSQL 커뮤니티는 9.5에서 18처럼 서로 다른 버전 간의 업그레이드를 어떻게 테스트할까요? 자세히 알려지지 않은 이 과정에 대해 EDB의 Andrew Dunstan이 PostgreSQL Buildfarm의 내부 동작 방식을 설명합니다. 이전 PostgreSQL 버전에서 최신 버전으로의 업그레이드 호환성을 지속적으로 검증하는 자동화된 테스트 과정을 살펴봅니다. PostgreSQL Buildfarm의 핵심: TestUpgradeXversion PostgreSQL의 품질을 검증하는 Buildfarm 클라이언트의 기본 스크립트는 run_build.pl입니다. 이...
Technical Blog
작성자: Andrew Dunstan 작성일: 2026년 3월 10일 PostgreSQL jsonb 타입은 열(Column)을 미리 정의하지 않고도 다양한 구조의 데이터를 저장할 수 있다는 장점이 있습니다. 하지만 유연성이 큰 만큼, 잘못된 데이터가 입력되지 않도록 구조를 검증하는 방법도 필요합니다. jsonb 컬럼에 CHECK 제약 조건(CHECK constraint)을 적용할 수 있지만, 복잡한 검증 로직을 SQL이나 PL/pgSQL로 구현하면 코드가 빠르게 복잡해질 수 있습니다. 이 글에서는 PostgreSQL 안에서 JSON 및 JSONB 데이터를 JSON 스키마(JSON Schema) 규격에 따라 검증하는 json_schema_validate 확장 모듈을 소개합니다. CHECK 제약 조건 적용 방법...
Technical Blog
Andrew Dunstan · 2026년 6월 11일 PostgreSQL Buildfarm 데이터베이스의 정보를 웹 페이지 스크래핑 없이 조회할 수 있는 PostgreSQL Buildfarm Query API가 공개되었습니다. 이 글에서는 API가 개발된 배경과 특정 Buildfarm 멤버 및 브랜치의 최신 빌드 상태를 확인하는 실제 요청·응답 예시를 소개합니다. PostgreSQL Buildfarm Query API가 필요한 이유 얼마 전 한 동료가 PostgreSQL Buildfarm 데이터베이스를 조회할 수 있는 API가 있느냐고 물었습니다. 당시에는 이용할 수 있는 API가 없었습니다. 그동안 여러 사람이 Buildfarm 데이터를 얻기 위해 웹 페이지를 스크래핑해 왔다는 사실을 알고 있었기 때문에...
Technical Blog
A colleague asked me recently if there was an API for querying the PostgreSQL Buildfarm database. I told him there was not. I'm aware that a number of people have been scraping the web pages for data, so it seemed like there was a good case for something better. And with a little help from claude code, I create one. It's live now. There's a full description at https://github.com/PGBuildFarm/server...
Technical Blog
One of the great things about PostgreSQL's jsonb type is the flexibility it gives you — you can store whatever structure you need without defining columns up front. But that flexibility comes with a trade-off: there's nothing stopping bad data from getting in. You can slap a CHECK constraint on a jsonb column, but writing validation logic in SQL or PL/pgSQL for anything beyond the trivial gets...
Technical Blog
From time to time I see questions from otherwise well informed people about how the PostgreSQL Build farm checks how pg_upgrade checking is done across versions, e.g. how does it check upgrading from release 9.5 to release 18. I realize that this isn't well documented anywhere, so here is a description of the process. All of the code referenced here can be found at https://github.com/PGBuildFarm...
Technical Blog
Thomas Munro recently put together a page that shows a summary of the buildfarm builds for the tip of each branch. That looked neat to me, but rather than scraping data from the web interface, it seemed to me that it would be better done in the buildfarm server itself, with data drawn direct from the database. The only problem with this was that we haven't kept track of which commits are at the...
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