PostgreSQL v6.0.0 Release Notes

  • ๐Ÿ’ฅ Breaking Changes

    • Remove pg.pools. There is still a reference kept to the pools created & tracked by pg.connect but it has been renamed, is considered private, and should not be used. Accessing this API directly was uncommon and was supposed to be private but was incorrectly documented on the wiki. Therefore, it is a breaking change of an (unintentionally) public interface to remove it by renaming it & making it private. Eventually pg.connect itself will be deprecated in favor of instantiating pools directly via new pg.Pool() so this property should become completely moot at some point. In the mean time...check out the new features...

    ๐Ÿ†• New features

    • ๐Ÿ—„ Replace internal pooling code with pg-pool. This is the first step in eventually deprecating and removing the singleton pg.connect. The pg-pool constructor is exported from node-postgres at require('pg').Pool. It provides a backwards compatible interface with pg.connect as well as a promise based interface & additional niceties.

    You can now create an instance of a pool and don't have to rely on the pg singleton for anything:

    var pg = require('pg')
    
    var pool = new pg.Pool()
    
    // your friendly neighborhood pool interface, without the singleton
    pool.connect(function(err, client, done) {
      // ...
    })
    

    ๐Ÿ‘ Promise support & other goodness lives now in pg-pool.

    Please read the readme at pg-pool for the full api.

    • ๐Ÿ‘ Included support for tcp keep alive. Enable it as follows:
    var client = new Client({ keepAlive: true });
    

    This should help with backends incorrectly considering idle clients to be dead and prematurely disconnecting them.