Changes for the DBD::Pg module

RT refers to rt.cpan.org

Version 3.16.0 (August 8, 2022)

 - Automatically use 64-bit versions of large object functions when available
   [Dagfinn Ilmari Mannsåker, David Christensen]

 - Set UTF8 flag as needed for error messages
   [Github user olafgw]
   (Github issue #97)

 - In tests, do not assume what the default transaction isolation level will be
   [Rene Schickbauer]
   (Github issue #94)

 - Make tests smarter about detecting pg_ctl results in different locales
   [Greg Sabino Mullane]
   (Github issue #95)


Version 3.15.1  (released February 13, 2022)

 - Fix missing "use File::Temp"
   [Greg Sabino Mullane]
   (Github issue #79)

 - Switch from DynaLoader to XSLoader
   [Todd Rinaldo <toddr@cpan.org>]
   (Github pull request #76)

 - Replace use of "vars" with "our"
   [James Raspass <jraspass@gmail.com>]
   (Github pull request #75)

 - Documentation improvements
   [Ed Sabol]
   [Nicholas Clark <nick@ccl4.org>]

 - Use non-root user when calling pg_resetwal
   [Greg Sabino Mullane]

 - Allow use of $ENV{DBDPG_TEMPDIR} to shorten test directory paths.
   (Github issue #78)


Version 3.15.0  (released May 21, 2021)

 - Correctly pull back pg_async status from statement handle.
   Previously, $dbh->{pg_async} would return undef.
   [Greg Sabino Mullane]
   (RT ticket #136553)

 - Adjust tests for the fact that reltuples can be -1 in Postgres
     version 14 and later. This is mostly reflected in the CARDINALITY
     column for $dbh->statistics_info.
   [Greg Sabino Mullane]

 - Remove the experimental 'fulltest' Makefile target.
   [Greg Sabino Mullane]
   (RT ticket #136567)


Version 3.14.2  (released August 13, 2020)

 - Fix ENV typo in the test suite
   [Gregor Herrmann]

 - Renamed and enhanced test helper script: dbdpg_test_postgres_versions.pl
   [Greg Sabino Mullane]


Version 3.14.1  (released August 12, 2020)

 - Force the version string so undefined errors in the "driver" sub go away.
   [Greg Sabino Mullane]
   (RT ticket #83057)


Version 3.14.0  (released July 19, 2020)

 - The $dbh->primary_key_info and $dbh->foreign_key_info methods will now always return 
     a statement handle, even with no matches. Previously, they returned undef directly.
   Callers can check if the returned handle contains any rows.
   [Greg Sabino Mullane]

 - The $dbh->tables method will always return a list, even if it is empty.
   [Greg Sabino Mullane]

 - Add pg_lo_tell64, pg_lo_seek64, and pg_lo_truncate64, for anyone dealing 
     with really, really, really large 'large objects'. Requires Postgres 9.3 or better.
   [Greg Sabino Mullane]
   (RT ticket #123561)

 - Allow test to run again when using a non-superuser to connect
   [Greg Sabino Mullane]
   (RT ticket #132865)

 - Adjust tests to force loading proper version of DBD::Pg every time.
   [Greg Sabino Mullane]

 - Removed the long-deprecated _pg_use_catalog method.
   [Greg Sabino Mullane]

 - Many improvements and changes to the test suite.
   [Greg Sabino Mullane]


Version 3.13.0  (released June 17, 2020)

 - Redo the "last_result" internals in dbdimp.c, which 
     fixes a memory leak.
   [Greg Sabino Mullane]
   (RT ticket #132812)

 - Fix regression in Perl length() for returned query results
   [Jon Jensen]
   (Github issue #72)

 - Make $sth->finish() do a little less. Notably, even 
     after calling finish(), pg_error_field will still work
     on the last action performed.
   [Greg Sabino Mullane]

 - Tweak tests so Windows boxes pass
   [Greg Sabino Mullane]


Version 3.12.3  (released June 5, 2020)

 - Prevent DBI from flipping AutoCommit to 'on' after a failed commit
   [Greg Sabino Mullane]
   (Github issue #71)


Version 3.12.2  (released June 4, 2020)

 - Revert overly aggressive testing shortcut as it can cause installs to fail
   [Greg Sabino Mullane, with apologies]


Version 3.12.1  (released June 3, 2020)

 - Remove test that assumed '(12,34)' is an invalid entry for type "circle",
     as the Postgres source code changed this behavior on April 7, 2020
   [Greg Sabino Mullane]
   (RT ticket #132740)


Version 3.12.0  (released May 7, 2020)

 - Add CONTRIBUTING.md file

 - Return the table info row last in statistics_info.
   This fixes statistics_info on pre-8.3 servers.
   [Dagfinn Ilmari Mannsåker]

 - Fix ASC_OR_DESC field in statistics_info
   [Dagfinn Ilmari Mannsåker]

 - Indicate NULL ordering in statistics_info
   [Dagfinn Ilmari Mannsåker]


Version 3.11.1  (released April 28, 2020)

 - Adjust Makefile to fix failing 'fulltest' target on BSD systems
   [Slaven Rezić]
   (RT ticket #132412)


Version 3.11.0  (released April 23, 2020)

 - Indicate non-key index columns (INCLUDE) in statistics_info
   [Dagfinn Ilmari Mannsåker]

 - Return an empty result set instead of undef from statistics_info
     when the requested table doesn't exist and $unique_only is false.
   [Dagfinn Ilmari Mannsåker]

 - Fix segfault during st destroy
   [Gregory Oschwald]
   (Github pull request #66)
   (Github issue #57)

 - Improve testing for table_info()
   [Greg Sabino Mullane]
   (Github issue #67)

 - Improve UTF-8 wording in docs
   [Felipe Gasper]
   (Github pull request #65)


Version 3.10.5  (released March 23, 2020)

 - Minor adjustment for Windows build
   (RT ticket #131752)

 - Allow test suite to work on an EnterpriseDB server
   [H.Merijn Brand]
   (RT ticket #132203)

 - Add small warning regarding ShowErrorStatement
   (RT ticket #120268)


Version 3.10.4  (released February 3, 2020)

 - Allow localtime from Time::Piece to be used directly as a bind value again.
   This applies to all "magical" arrays.
   [Greg Sabino Mullane]
   (Github issue #63)

 - Force tests to NOT run in parallel.
   [Greg Sabino Mullane]
   (RT ticket #130834)


Version 3.10.3  (released January 20, 2020)

 - Set things cleared via PQclear to NULL as soon as possible, to remove race conditions
   [Greg Sabino Mullane]
   (RT ticket #131522)


Version 3.10.2  (released January 17, 2020)

 - Adjust tests to pass on 32-bit machines
   [Greg Sabino Mullane]
   (RT ticket #131482)


Version 3.10.1  (released January 13, 2020)

 - Prevent double-free memory errors
   [Greg Sabino Mullane]
   (RT ticket #130681)

 - Fix crash when pg_error_field is called
   [Greg Sabino Mullane]
   (RT ticket #130721)

 - Update the list of Postgres reserved words in quote.c


Version 3.10.0  (released September 3, 2019)

 - Prevent memory leak related to pg_error_field
   [Greg Sabino Mullane]
   (RT ticket #130430)

 - Fix for bug by making sure pg_error_field works properly when switching between 
     do-with-params and do-without-params.
   [Greg Sabino Mullane]
   (Github issue #57)

 - If a commit or rollback fails, do not set BegunWork
   [Greg Sabino Mullane]
   (Github issue #40)

 - Treat partitioned tables same as regular tables for column_info, table_info, 
     and foreign_key_info (i.e. support pg_class.relkind = 'p')
   [Octavian R. Corlade]
   (Github pull request #55)

 - Allow last_insert_id() to work against inherited tables
   [Greg Sabino Mullane]
   (RT ticket #52441)

 - Add DBI SQL_BLOB, SQL_BINARY and SQL_LONGVARBINARY types as alias for PG_BYTEA
   [Pali]
   (Github pull request #58)


Version 3.9.1  (released August 15, 2019)

 - Bug fix for pg_error_field: make sure we do not feed null to newSVpv,
     handle older versions of Postgres better.
   [Greg Sabino Mullane]


Version 3.9.0  (released August 13, 2019)

 - ShowErrorStatement works for "quickexec" do() calls
   [Dmitry Karasik]
   (RT ticket #120268)
   (Github issue #44)

 - Add :pg_limits to add constants such as PG_MAX_SMALLINT
   [Greg Sabino Mullane]
   (Github issue #51)

 - Add $dbh->pg_error_field() function
   [Greg Sabino Mullane]

 - Fix failing tests due to incorrect 'initdb' check
   [Greg Sabino Mullane]
   (Github issue #54)
   (RT ticket #130279)


Version 3.8.1  (released July 6, 2019)

 - Fix encoding of SQL_VARBINARY type in $dbh->quote() function
   [Pali]

 - Fix encoding in $dbh->do() function
   [Pali]
   (RT ticket #122991)

 - Fix E'' string escape handling on architectures with unsigned chars
   (Github issue #46)

 - Minor fix to allow DBD::Pg to connect to internal 'pgbouncer' database
     that is created by PgBouncer
   [Greg Sabino Mullane]
   (Github issue #47)

 - Fix so table_info test works on non-empty databases
   [Matt Buchanan]
   (RT ticket #127906)


Version 3.8.0  (released April 25, 2019)

 - Increase minimum supported PostgreSQL version to 8.0
   [Dagfinn Ilmari Mannsåker]

 - Add support for foreign tables in table_info() and column_info()
   [Dagfinn Ilmari Mannsåker]

 - Return the current database name as TABLE_CAT in info methods
   [Dagfinn Ilmari Mannsåker]

 - Handle backslash-escaped quotes in E'' strings
   [Dagfinn Ilmari Mannsåker]

 - Fix typo in Makefile.PL
   (RT ticket #127097)

 - Fix parsing of PostgreSQL versions >= 10 on Debian/Ubuntu
   [Dagfinn Ilmari Mannsåker]

 - Fix client_min_messages=FATAL test when PostgreSQL caps it to ERROR
   [Dagfinn Ilmari Mannsåker]
   (RT ticket #128529)

 - Fix ->ping error detection on PostgreSQL 12
   [Dagfinn Ilmari Mannsåker]

 - Adjust tests for new pg_ctl output
   [Erik Rijkers    er at xs4all.nl]
   (RT ticket #128966)

 - Adjust tests for removal of WITH OIDS in PostgreSQL 12
   [Dagfinn Ilmari Mannsåker]

 - Fix support for PostgreSQL versions back to 8.0
   [Dagfinn Ilmari Mannsåker]

 - Remove usage of deprecated pg_attrdef.adsrc and pg_constraint.consrc columns
   [Dagfinn Ilmari Mannsåker]

 - Fix typo in pg_placeholder_colons example
   (Github issue #41)

 - Support GENERATED ... AS IDENTITY columns in last_insert_id()
   [Dagfinn Ilmari Mannsåker]


Version 3.7.4  (released February 12, 2018)

 - Fix typo in META.yml
   (RT ticket #124405)


Version 3.7.3  (released February 12, 2018)

 - Test tweak so we don't try to use jsonb on older versions.
   (RT ticket #124934)


Version 3.7.2  (released February 11, 2018)

 - Remove Data::Peek dependency accidentally left in t/12placeholders.t
   (RT ticket #124393)


Version 3.7.1  (released February 11, 2018)

 - Fixed problem when using placeholders and escaped question marks, the recopied string 
     was not terminated correctly.
   [Greg Sabino Mullane]
   (Github issue #33)
   (RT tickets #121630, #123187, #123999)

 - Make sure nulls in our self-generated arrays are not set as read-only in some Perls.
   [Greg Sabino Mullane]
   (RT ticket #107556)

 - If the server returns no error message, and an "unknown" code from libpq, supply a custom
     message mentioning client_min_messages may be to blame.
   [Greg Sabino Mullane]
   (RT ticket #109591)

 - Declare VERSION with 'our' in seldom-used Bundle module
   (RT ticket #123218)


Version 3.7.0  (released September 24, 2017)

 - If no placeholders, use PQexec instead of PQexecParams
   [Greg Sabino Mullane]

 - Fix running tests with non-UTF8 server_encoding
   [Dagfinn Ilmari Mannsåker]
   (Github issue #26)

 - Fix crash with missing client_encoding
   [David Christensen, reported by Marko Tiikkaja]
   (Github issue #29)

 - Fix crash with missing server_version
   [David Christensen]

 - Fix leak in ->state methods
   [Dagfinn Ilmari Mannsåker]
   (Github issue #30)

 - Add $sth->{pg_async_status} to determine async status of a statement handle.
   Values can be 0 (no async), 1 (async), or -1 (cancelled)
   [Greg Sabino Mullane, as requested by Dmytro Zagashev (ZDM)]
   (RT ticket #116172)


Version 3.6.2  (released May 23, 2017)

 - Remove errant debugging aid from test suite


Version 3.6.1  (released May 22, 2017)

 - Various fixes to support testing against Postgres 10beta
   [David Christensen]


Version 3.6.0  (released April 17, 2017)

 - Make sure we do not inadvertently modify the string passed to prepare() when 
     doing the new backslash escape manipulation.
   [Greg Sabino Mullane]
   (RT ticket #114000)

 - Fix bug where $DBD::Pg::DBDPG_DEFAULT not picked up as a magic 
     string first time it is used in a script.
   [Greg Sabino Mullane]
   (RT ticket #112309)

 - Fix UTF8 flag handling in pg_(get|put)copydata
   [Dagfinn Ilmari Mannsåker]

 - Fix UTF8 double-encoding with pg_enable_utf8 = 0
   [Serge Pushkin]
   (RT ticket #103137)

 - Fix bug in quote_name which would fail to quote in some circumstances
   (Github issue #22)

 - Allow clean parsing of new Postgres X.Y version format
   [Erik Rijkers    er at xs4all.nl]

 - Add pg_canonical_ids() and pg_canonical_names(), which returns information 
     about each column in the result set.
   [Warstone    warstone at list.ru]
   (RT ticket #106858)

 - Map SQL_NUMERIC to PG_NUMERIC (instead of PG_FLOAT8)
   [Alice Maz    alice at alizemaz.com]
   (RT ticket #120358)

 - Force real, float, and double precision into SvNVs
   [Greg Sabino Mullane]
   (RT ticket #113683 and other places)

 - Support for number of rows greater than an "int". Requires support for same 
     from a future version of libpq before it will work completely.
   [Greg Sabino Mullane]
   (RT ticket #102444)

 - Fix skipped test counts in Win32 builds
   [Andy Grundman]

 - Allow tests to work against Postgres 8.4 by tweaking client_encoding calls.
   [Pavel Raiskup    praiskup at redhat.com]
   (RT ticket #116179)

 - Silence warnings in t/02attribs.t and t/04misc.t
   [Dagfinn Ilmari Mannsåker]

 - Support binary COPY format
   [Dagfinn Ilmari Mannsåker]

 - Ensure tests do not use $ENV{PGSERVICE} or $ENV{PGDATABASE}
   [Erik Rijkers]

 - Switched canonical repo to git://github.com/bucardo/dbdpg.git


Version 3.5.3  (released October 1, 2015)

 - Minor fix in the test file t/03dbmethod.t


Version 3.5.2  (released September 29, 2015)

 - Fix enum value ordering on Postgres servers 9.1 and greater
   [Dagfinn Ilmari Mannsåker]

 - Return bigint values as plain integer values when they fit
   [Dagfinn Ilmari Mannsåker]

 - Fix typo in sprintf for get_info() SQL_DATA_SOURCE_NAME
   [Craig A. James]
   (RT ticket #106604)

 - Set the repository in META.yml to github


Version 3.5.1  (released February 17, 2015)

 - Prevent core dump if the second argument to the quote() method is 
     anything but a hashref
   [Greg Sabino Mullane]
   (RT ticket #101980)

 - Better "support" for SQL_ASCII servers in the tests.
   Allow env var DBDPG_TEST_ALWAYS_ENV to force use of DBI_DSN and DBI_USER in tests.
   [Greg Sabino Mullane]

 - Fix client_encoding detection on pre-9.1 servers
   [Dagfinn Ilmari Mannsåker]

 - Fix operator existence check in tests on pre-8.3 servers
   [Dagfinn Ilmari Mannsåker]

 - Documentation fix
   [Stuart A Johnston]

 - Fix pg_switch_prepared database handle documentation
   [Dagfinn Ilmari Mannsåker]


Version 3.5.0  (released January 6, 2015)

 - Allow "placeholder escaping" by the use of a backslash directly before it, 
     e.g. "SELECT 1 FROM jsontable WHERE foo \\? ?"
     will contain a single placeholder, and the first question mark will be sent directly 
     to the backend to be parsed as an operator.
   [Greg Sabino Mullane, Tim Bunce]
   (RT ticket #101030)

 - Improve the workings of the ping() method, so it always tests for 
     a valid database backend and returns the correct true/false.
   [Greg Sabino Mullane, with help from Andrew Gierth and Tim Bunce]
   (RT ticket #100648)

 - Add get_info(9000) => 1 to indicate driver can escape placeholders.
   [Tim Bunce]

 - In tests, force the client_encoding to UTF8, skip tests that involve 
     characters not supported by the server_encoding
   [Dagfinn Ilmari Mannsåker]

 - Fix memory leak when selecting from arrays
   [Dagfinn Ilmari Mannsåker, reported by Krystian Samp]

 - Make get_info much more efficient and slightly simpler.
   [Tim Bunce]


Version 3.4.2  (released September 25, 2014)

 - Fix bug where single-quoted type arguments to the table_info()
     method were causing a SQL error.
   [Greg Sabino Mullane]
   (RT ticket #99144)


Version 3.4.1  (released August 20, 2014)

 - Allow '%' again for the type in table_info() and thus tables()
   It's not documented or tested in DBI, but it used to work until DBD::Pg 3.4.0, 
     and the change broke DBIx::Class::Schema::Loader, which uses type='%'.
   [Dagfinn Ilmari Mannsåker]


Version 3.4.0  (released August 16, 2014)

 - Cleanup and improve table_info()
   [Mike Pomraning <mjp@pilcrow.madison.wi.us>]
   (Github issue #7)

   Method table_info() type searching now supports TABLE, VIEW, SYSTEM TABLE,
     SYSTEM VIEW, and LOCAL TEMPORARY

   Method table_info() object searching fully supports the above types.

   Method table_info() object searching no longer ignores invalid types - a filter 
     of 'NOSUCH' will return no rows, and 'NOSUCH,LOCAL TEMPORARY' will
     return only temp objects.

   Method tableinfo() type filters are strictly matched now ... previously a 
     search for SYSTEM TABLE would have fetched plain TABLE objects.

   Method table_info() now treats temporary tables and temporary views as LOCAL TEMPORARY

 - Make sure column_info() and table_info() can handle materialized views.
   [Greg Sabino Mullane]
   (RT ticket #97032)


Version 3.3.0  (released May 31, 2014)

 - Major cleanup of UTF-8 support:
   Fix quoting of UTF-8 values
   Add support for UTF-8 statement strings
   Fix UTF-8 support in placeholders and return values
   [Dagfinn Ilmari Mannsåker]
   (RT tickets #95214 and #91655)

 - Test that the Pg server agrees with us about the lengths of input strings.
   Refactor Unicode test to use anon hashes to describe the tests to run.
   Test pg_enable_utf8 of -1, in addition to 0 and 1.
   Extend the Unicode round-trip tests to verify ASCII, BMP and non-BMP code points.
   Test that characters created in the server reach the client correctly.
   [Nicholas Clark]

 - Rewrite foreign_key_info to be just one query
   [Dagfinn Ilmari Mannsåker]

 - Remove ODBC support from foreign_key_info
   [Dagfinn Ilmari Mannsåker]

 - Remove use of dTHX in functions in quote.c and types.c
   [Nicholas Clark]


Version 3.2.1  (released May 20, 2014)

 - Stricter testing for array slices: disallow number-colon-number from being
     parsed as a placeholder.
   [Greg Sabino Mullane]
   (RT ticket #95713)

 - Fix for small leak with AutoInactiveDestroy
   [David Dick]
   (RT ticket #95505)

 - Adjust test regex to fix failing t/01_connect.t on some platforms
   [Greg Sabino Mullane]

 - Further tweaks to get PGINITDB working for test suite.
   [Nicholas Clark]


Version 3.2.0  (released May 15, 2014)

 - Add new attribute pg_placeholder_nocolons to turn off all parsing of
     colons into placeholders.
   [Graham Ollis]
   (RT ticket #95173)

 - Fix incorrect skip count for HandleSetErr
   [Greg Sabino Mullane]
   (RT ticket #94841)

 - Don't attempt to use the POSIX signaling stuff if the OS is Win
   [Greg Sabino Mullane]
   (RT ticket #94841)

 - Fix missing check for PGINITDB in the test suite.
   [Nicholas Clark]


Version 3.1.1  (released April 6, 2014)

 - Minor adjustments so tests pass in varying locales.


Version 3.1.0  (released April 4, 2014)

 - Make sure UTF-8 enabled notifications are handled correctly
   [Greg Sabino Mullane]

 - Allow "WITH" and "VALUES" as valid words starting a DML statement
   [Greg Sabino Mullane]
   (RT ticket #92724)


Version 3.0.0  (released February 3, 2014)

 - Major change in UTF-8 handling. If client_encoding is set to UTF-8, always 
     mark returned Perl strings as utf8. See the pg_enable_utf8 docs for more information.
   [Greg Sabino Mullane, David E. Wheeler, David Christensen]

 - Bump DBI requirement to 1.614

 - Bump Perl requirement to 5.8.1

 - Add new handle attribute, switch_prepared, to control when we stop 
     using PQexecParams and start using PQexecPrepared. The default is 2: 
     in previous versions, the effective behavior was 1 (i.e. PQexecParams 
     was never used).
   [Greg Sabino Mullane]

 - Better handling of items inside of arrays, particularly bytea arrays.
   [Greg Sabino Mullane]
   (RT ticket #91454)

 - Map SQL_CHAR back to bpchar, not char
   [Greg Sabino Mullane, reported by H.Merijn Brand]

 - Do not force oids to Perl ints
   [Greg Sabino Mullane]
   (RT ticket #85836)

 - Return better sqlstate codes on fatal errors
   [Rainer Weikusat]

 - Better prepared statement names to avoid bug
   [Spencer Sun]
   (RT ticket #88827)

 - Add pg_expression field to statistics_info output to show 
     functional index information
   [Greg Sabino Mullane]
   (RT ticket #76608)

 - Adjust lo_import_with_oid check for 8.3
   (RT ticket #83145)

 - Better handling of libpq errors to return SQLSTATE 08000
   [Stephen Keller]

 - Make sure CREATE TABLE .. AS SELECT returns rows in non do() cases

 - Add support for AutoInactiveDestroy
   [David Dick]
   (RT ticket #68893)

 - Fix ORDINAL_POSITION in foreign_key_info
   [Dagfinn Ilmari Mannsåker]
   (RT ticket #88794)

 - Fix foreign_key_info with unspecified schema
   [Dagfinn Ilmari Mannsåker]
   (RT ticket #88787)

 - Allow foreign_key_info to work when pg_expand_array is off
   [Greg Sabino Mullane and Tim Bunce]
   (RT ticket #51780)

 - Remove math.h linking, as we no longer need it
   (RT ticket #79256)

 - Spelling fixes
   (RT ticket #78168)

 - Better wording for the AutoCommit docs
   (RT ticket #82536)

 - Change NOTICE to DEBUG1 in t/02attribs.t test for handle attribute "PrintWarn":
     implicit index creation is now quieter in Postgres.
   [Erik Rijkers]

 - Use correct SQL_BIGINT constant for int8
   [Dagfinn Ilmari Mannsåker]

 - Fix assertion when binding array columns on debug perls >= 5.16
   [Dagfinn Ilmari Mannsåker]

 - Adjust test to use 3 digit exponential values
   [Greg Sabino Mullane]
   (RT ticket #59449)

 - Avoid reinstalling driver methods in threads
   [Dagfinn Ilmari Mannsåker]
   (RT ticket #83638)

 - Make sure App::Info does not prompt for pg_config location 
     if AUTOMATED_TESTING or PERL_MM_USE_DEFAULT is set
   [David E. Wheeler]
   (RT ticket #90799)

 - Fix typo in docs for pg_placeholder_dollaronly
   [Bryan Carpenter]
   (RT ticket #91400)

 - Cleanup dangling largeobjects in tests
   [Fitz Elliott]
   (RT ticket #92212)

 - Fix skip test counting in t/09arrays.t
   [Greg Sabino Mullane]
   (RT ticket #79544)

 - Explicitly specify en_US for spell checking
   [Dagfinn Ilmari Mannsåker]
   (RT ticket #91804)


Version 2.19.3  (released August 21, 2012)

 - Fix bug in pg_st_split_statement causing segfaults
   (RT ticket #79035)

 - Make sure table_info() and other functions use pg_tablespace_location() 
     instead of spclocation for Postgres servers 9.2 and greater.
   [Greg Sabino Mullane + others]
   (RT ticket #77042)


Version 2.19.2  (released March 12, 2012)

 - Fix errors when multiple same-named placeholders are used.
   [Greg Sabino Mullane]
   (RT ticket #75713)


Version 2.19.1  (released March 10, 2012)

 - Fix crash when passing in an array with undefined elements.
   [Greg Sabino Mullane]


Version 2.19.0  (released March 9, 2012)

 - Use proper formatting for warn() and croak()
   [Niko Tyni]
   (RT ticket #75642)

 - Fix localized regex in test
   (RT ticket #70759)

 - Fix for named placeholders
   [Jan Pazdziora]
   (RT ticket #70953)

 - Various fixes to the array-marshaling code
   [Noah Misch, Mark Stosberg, and David Christensen]
   (RT ticket #58552)

 - Allow hi-bit chars in dollar-quoted identifiers 
   [David Christensen]
   (RT ticket #73832)

 - Have do() return count for things such as CREATE TABLE .. AS SELECT
   Will only work on 9.0 or better.
   [Pavel Stehule]
   (RT ticket #71073)

 - Better error message when trying to do things post-disconnect
   [Greg Sabino Mullane]

 - Always respect pg_server_prepare=0 by using PQexec not PQexecParams.
   [Greg Sabino Mullane]

 - Fix error in async docs
   (RT ticket #72812)

 - Switch from subversion to git
   Install with: git clone git://bucardo.org/dbdpg.git
   [Greg Sabino Mullane]


Version 2.18.1  (released May 9, 2011)

 - Fix LANG testing issue
   [Greg Sabino Mullane]
   (RT ticket #56705)

 - Fix bug when async commands issued immediately after a COPY.
   [Greg Sabino Mullane]
   (RT ticket #68041)


Version 2.18.0  (released March 28, 2011)

 - Thanks to 123people.com for sponsoring work on this release
   [Greg Sabino Mullane]

 - New cancel() method per DBI spec.
   [Eric Simon]
   (RT ticket #63516)

 - Fix memory leak when binding arrays
   [Greg Sabino Mullane]
   (RT ticket #65734)

 - Fix memory leak with ParamValues.
   [Martin J. Evans]
   (RT ticket #60863)

 - Fix memory leak in handle_old_async (missing PQclear)
   [Rainer Weikusat]
   (RT ticket #63408)

 - Fix memory leak in pg_db_cancel (missing PQclear)
   [Rainer Weikusat]
   (RT ticket #63441)

 - Mark pg_getcopydata strings as UTF8 as needed
   (RT ticket #66006)

 - Function dequote_bytea returning void should not try to return something
   [Dagobert Michelsen]
   (RT ticket #63497)

 - Fix the number of tests to skip in t/01connect.t when the $DBI_DSN
     environment variable lacks a database specification.
   [David E. Wheeler]

 - Fix algorithm for skipping tests in t/06bytea.t when running on a version
     of PostgreSQL lower than 9.0.
   [David E. Wheeler]

 - Small tweaks to get tests working when compiled against Postgres 7.4
   [Greg Sabino Mullane]
   (RT ticket #61713)

 - Fix failing test when run as non-superuser
   [Greg Sabino Mullane]
   (RT ticket #61534)


Version 2.17.2  (released November 21, 2010)

 - Support dequoting of hex bytea format for 9.0.
   [Dagfinn Ilmari Mannsåker]
   (RT ticket #60200)

 - Don't PQclear on execute() if there is an active async query
   [rweikusat at mssgmbh.com]
   (RT ticket #58376)

 - Allow data_sources() to accept any case-variant of 'dbi:Pg'
   (RT ticket #61574)

 - Fix failing test in t/04misc.t on Perl 5.12.
   [Eric Simon]

 - Fix for some 7.4 failing tests
   [Dagfinn Ilmari Mannsåker]

 - Return bare instead of undef in test connections
   (RT ticket #61574)


Version 2.17.1  (released April 8, 2010)

 - Only use lo_import_with_oid if Postgres libraries are 8.4 or better
   [Greg Sabino Mullane]
   (RT ticket #56363)


Version 2.17.0  (released April 6, 2010)

 - Do not automatically ROLLBACK on a failed pg_cancel
   [Greg Sabino Mullane]
   (RT ticket #55188)

 - Added support for new lo_import_with_oid function.
   [Greg Sabino Mullane]
   (RT ticket #53835)

 - Don't limit stored user name to \w in tests
   [Greg Sabino Mullane]
   (RT ticket #54372)

 - Allow tests to support versions back to Postgres 7.4
   [Greg Sabino Mullane]


Version 2.16.1  (released January 20, 2010)

 - Output error messages in UTF-8 as needed. Reported by Michael Hofmann.
   [Greg Sabino Mullane]
   (RT ticket #53854)


Version 2.16.0  (released December 17, 2009)

 - Put in a test for high-bit characters in bytea handling.
   [Bryce Nesbitt]
   (RT ticket #39390)

 - Better SQLSTATE code on connection failure
   [Chris Travers with help from Andrew Gierth]
