The latest version of the PostgreSQL open source relational database system has been released with improved JSON support, regular expression indexing, and writeable foreign data wrappers.

PostgreSQL is an open-source descendant of Postgres, the database developed at the University of California at Berkeley Computer Science Department.

The changes to the Foreign Data Wrappers (FDW) mean you can exchange data with alternative back end data stores both for reading and writing. The wrappers let you integrate external data sources with internal data. FDW data sources look like any other database table to users. Earlier versions were read only.

The new version has extra features for improved reliability and availability, starting with fast failover support promising sub-second switch-overs from a master database to a replica database. Data Page Checksums have been added to alert administrators to problems such as failing disks that are corrupting data. A further improvement for failover support is Streaming-Only Remastering to make it easier and faster to reconfigure cascading replicas after failover.For developers, the main improvement is the addition of JSON constructor and extractor methods. The JSON datatype and two supporting functions for converting rows and arrays were introduced in PostgreSQL 9.2. This release adds dedicated JSON operators, more JSON functions, and the JSON parser has been exposed for use by other modules such as extensions as an API.

Lateral Join support has also been added. This means that if you write a query where you specify columns in the FROM clause, you can then write a subquery that references those columns.

One interesting addition is a concept called User-Defined Background Workers. This lets you develop modules that register themselves as "background worker processes", so effectively operating as customized server processes. You could use this to monitor server activity, or to write your own task managers, request handlers, parallel processors or queuing tools. The idea is that you can then use PostgreSQL as a workload coordinator, and the release notes say that an example of this has already been released in the form of Mongres, a background worker that accepts MongoDB queries, interprets them and passes them on to PostgreSQL.