[ANN] pg 0.16.0 Released

pg version 0.16.0 has been released!

* <https://bitbucket.org/ged/ruby-pg> (home)
* <https://github.com/ged/ruby-pg> (mirror)
* <http://deveiate.org/code/pg> (docs)

Pg is the Ruby interface to the {PostgreSQL RDBMS}[http://www.postgresql.org/].

It works with {PostgreSQL 8.4 and later}[http://www.postgresql.org/support/versioning/].

A small example usage:

  #!/usr/bin/env ruby

  require 'pg'

  # Output a table of current connections to the DB
  conn = PG.connect( dbname: 'sales' )
  conn.exec( "SELECT * FROM pg_stat_activity" ) do |result|
    puts " PID | User | Query"
  result.each do |row|
      puts " %7d | %-16s | %s " %
        row.values_at('procpid', 'usename', 'current_query')
    end
  end

Changes:

···

== v0.16.0 [2013-07-22] Michael Granger <ged@FaerieMUD.org>

Bugfixes:

- Avoid warnings about uninitialized instance variables.
- Use a more standard method of adding library and include directories.
  This fixes build on AIX (Github #7) and Solaris (#164).
- Cancel the running query, if a thread is about to be killed (e.g. by CTRL-C).
- Fix GVL issue with wait_for_notify/notifies and notice callbacks.
- Set proper encoding on the string returned by quote_ident, escape_literal
  and escape_identifier (#163).
- Use nil as PG::Error#result in case of a NULL-result from libpq (#166).
- Recalculate the timeout of conn#wait_for_notify and conn#block in case
  of socket events that require re-runs of select().

Documentation fixes:

- Fix non working example for PGresult#error_field.

Enhancements:

- Add unique exception classes for each PostgreSQL error type (#5).
- Return result of the block in conn#transaction instead of nil (#158).
- Allow 'rake compile' and 'rake gem' on non mercurial repos.
- Add support for PG_DIAG_*_NAME error fields of PostgreSQL-9.3 (#161).