('GSM' is Greg Sabino Mullane, greg@turnstep.com) 1.49 - Thanks to Backcountry.com for sponsoring work on this release. [GSM] - Add the statement handle attribute ParamTypes, and fix an error in ParamValues. ParamTypes requires DBI 1.49 or better. [GSM] - Strip the final newline from error messages, so that die can add in the line number. (CPAN bug #18900) [GSM] - Make workaround for PQresultErrorField not returning proper result when an error is set and we are connecting via TCP/IP. This allows correct $dbh->state() values. [GSM] - Fix incorrect quoting preventing compiling. (CPAN bug #18640) - Add support for quoting and binding of geometric types: POINT, LINE, LSEG, BOX, PATH, POLYGON, and CIRCLE. Also added the TID type. [GSM] 1.48 April 5, 2006 - Bump minimum DBI version to 1.45 (CPAN bug #18260) (plus problems in versions 1.42 and 1.44) [GSM] - Fix typo in Pg.pm code (CPAN bug #18537) [marc@sssonline.com] - Ensure begin_work is properly set before err. (CPAN bug #18387) [GSM] - Force PQexecParams to only run with DML. (CPAN bug #18258) [GSM] - Fix bytea encoding problem (CPAN bug #18264) [GSM] - Add documentation about connection service files (pg_service.conf). [David Fetter] 1.47 March 20, 2006 - Fix problem with selecting arrays. (CPAN bugs #18128 and #18177) [GSM] - Fix problem with dollar-sign placeholders. [GSM] 1.46 March 16, 2006 - Fix problem with dollar-sign placeholders. (husseinp@gmail.com) (CPAN bug #18209) [GSM] 1.45 February 27, 2006 - Fix bug preventing bytea values over 20 characters from showing. Spotted by Igor Shevchenko. [GSM] 1.44 February 21, 2006 - Make sure pg_warn does not warn if the database attribute PrintWarn is off. (Tyler MacDonald tyler@yi.org) [GSM] - Add SIGNATURE file for Module::Signature verification. [GSM] - Fix error in documentation for pg_errorlevel. (CPAN bug #17434) - Add experimental support for using DEFAULT values inside of execute with $DBDPG_DEFAULT. [GSM] - Return the proper SQLSTATE codes on connection failures. (CPAN bug #17115) [GSM] - Fix parser to handle leading parens. (CPAN bug #15481) [GSM] - Make statement handles destruction abort early if InactiveDestroy is set (CPAN bug #14978) [GSM] - Make quote work properly for time/date types (CPAN bug #15082) [GSM] - Ensure all lo_ functions begin a transaction as needed if they are the first action in a script (CPAN bug # 13810) [GSM] - Fix memory leak in dbdimp.c (k@sawada.cc) [Kenchi Sawada] - Fix memory leak in dbdimp.c (dmitri@karasik.eu.org) (CPAN bug #16054) - Move package declaration lines to fix RPM parser problems (CPAN bug #14509) [GSM] - Add support for dollar quoting (CPAN bug #13608) [GSM] - Added $dbh->{pg_default_port} method [GSM] - Overhaul get_info data, add many more values [GSM] - Overhaul type_info data (CPAN bug #13806) [GSM] - Rewrite some of the quoting functions, reduce dependence on libpq versions [GSM] - Rewrite and optimize the do() method. Should be much faster when called without placeholders. Thanks to Tom Lane for suggesting this. [GSM] - Double check PQserverVersion return and use alternate method if it returns 0 (CPAN bug #14302) - Add support for specifying type in $dbh->quote(), such as $dbh->quote($var, {pg_type => DBD::Pg::PG_BYTEA}) Also support type => SQL_xx [GSM] (CPAN bug #13942) - Fix pg_notifies() bug (CPAN bug #14232) [door@lcpi.ru] - Add pg_ping() method [GSM] - Make sure ping returns true, even if in failed transaction state [thanks to Bill Moseley] [GSM] - Fix COPY-related core dump [GSM] - Fix strncpy bug in quote.c [Jun Kuriyama] (CPAN bug #14897) - Fix error in is_high_bit_set() [Alexey Tourbin] (CPAN bug #13406) 1.43 June 23, 2005 - Added README.dev file. [GSM] - Fix statement-name related core dump. [GSM] - Ensure state() returns an empty string, not 00000 on success. (CPAN bug #13237) [michael.bell@web.de of OpenCA] [GSM] - Fix rare core dump when $sth still in scope after disconnect [GSM] - Enhancements to README.win32 [fenlisesi@gmail.com] - Fix incorrect sprintf calls (CPAN bug #12204) [Jakub Jelinek] - Fix get_info(18) ("ODBCVERSION") (CPAN bug #12968) [thanks to szinger@lanl.gov] [GSM] 1.42 May 21, 2005 - Fix minor issues with copying and bytea quoting on older servers. Fix some other memory leaks. [GSM] - Fix backslash parsing in statements (CPAN bug #12870) [felix.klee@inka.de] [GSM] - Make rollback/commit reset copy state (CPAN bug #12866) [imb@rentrak.com] [GSM] - Make sure lo_creat issues a begin if necessary [GSM] - Fix incorrect behavior when AutoCommit switched on. (CPAN bug #12748) [thanks to Vivek Khera] [GSM] - Have last_insert_id use set_err, not die. (CPAN bug #12503) [thanks to Alexandra Walford] [GSM] - Fixed tests to correctly handle older DBI versions reporting failures on last_insert_id() (CPAN bug #12204) [jpo@di.uminho.pt] [GSM] - Re-enable REMARKS field on column_info (CPAN bug #12399) [thanks to morni@cpan.org] [GSM] - Many minor compiler optimizations and cleanups [GSM] - Fix two separate memory leaks in dbdimp.c [hertzog@debian.org and richardg@eSentire.com] - Change VARCHAROID to UNKNOWNOID, suggested by users on mailing list [GSM] 1.41 April 6, 2005 - Make sure tests remove all temporary tables. [Frank Bax] [GSM] - Preserve sqlstate if rolling back on deallocate, fix potential segfault. [Stephen Clouse] - Fix CPAN bug #12004: commit and rollback now return true [GSM] (thanks to ivan-dbdpg@420.am) - Overhaul and update COPY support; use new protocol. New dbh methods: pg_putline, pg_getline, pg_endcopy. [GSM] - Rewrote version detection code. Compiled version and target version are now available via $dbh->{pg_lib_version} and $dbh->{pg_server_version} [GSM] - Set our default type_id to 0, not 1043 (VARCHAR) when possible. Suggested by Abhijit Menon-Sen via David Wheeler. [GSM] - Add $dbh methods pg_savepoint(), pg_rollback_to(), and pg_release() [Stephen Clouse] [GSM] 1.40 Tue Feb 22 06:06:45 UTC 2005 - Raise required DBI version to 1.38 - Execute returns 0 (0E0) not -1 for successful DDL commands. [Robert Treat] [GSM] - Change all string lengths to use STRLEN [rink@stack.nl] - Added $dbh->pg_server_trace($fh) [GSM] - Added $dbh->{pg_errorlevel}. [GSM] - Fix utf8 quote() support [Dominic Mitchell ] - Added explicit support for types SQL_BOOLEAN, DATE, TIME, TIMESTAMP, and TIMESTAMPTZ. Return correct values for DATEOID and TIMEOID. [GSM] - Added tablespace support for table_info and primary_key_info. [GSM] - Added new attributes to $dbh: pg_db, pg_user, pg_pass, pg_host, pg_port, pg_options, pg_socket, pg_pid [GSM] - Minor fixes in quote.c, dbdimp.c, and types.h [Christophe Martin: schplurtz at free.fr] - Added support for SQLSTATE via $dbh->state and $sth->state [GSM] - Major overhaul of prepare/execute to handle new server-side prepare system. See Pg.pm for details. [GSM] - Make the tests honor the DBD_SCHEMA variable instead of assuming that the "public" schema is available. [Rainer Weikusat] - dbdimp.c cleanups: better error messages, ensure commit is only called once after a transaction fails. [Alexey Slynko] - primary_key() returns empty list not undef if no match. [Julian Mehnle] - Added the pg_protocol database handle attribute [GSM] - Changed "noprefix" to pg_noprefix 1.32 Wed Feb 25 18:24:18 UTC 2004 - Bugfix for memory allocation problems on win systems [Rafael Kitover ] - Rewrote the foreign_key_info() method to handle multi-column keys. [GSM] - Rewrote the primary_key_info() and primary_key() methods to cleanly handle multi-column primary keys. Also added a "pg_onerow" attribute to allow primary_key_info() to return a single row containing multiple-column information. [GSM] - Switched commit behavior from commit->execute->begin to begin->execute->commit [xelah-junk@xelah.com] [GSM] - Made the _pg_use_catalog subroutine use {private_dbgpg}. (CPAN bug #4841) [GSM] - Changed strdup to safemalloc/strcpy in dbdimp.c (CPAN bug #4578) [anonymous CPAN user] - Made the data_sources method escape the database names as needed. Added support for databases with spaces in their names. [GSM] - Added the "noprefix" attribute to prevent the tables() method from prepending the schema name. [GSM] - Rewrote the testing suite. Many more tests are performed. Servers with a low client_min_messages are handled correctly. [GSM] - Fixed bug causing '$\d' to be picked up as a placeholder. (CPAN bug #4799) [GSM] - pg_notifies now catches and reports when PQconsumeInput fails. (CPAN bug #4027) [nmueller@cs.wisc.edu] - Enabled the "pg_bool_tf" database handle [GSM] - Added required fields to the type_info() method: SQL_DATA_TYPE, SQL_DATETIME_SUB, and INTERVAL PRECISION [GSM] - Fixed bug where the table_attributes() method was incorrectly removing the NULLABLE column. [GSM] - Fixed bug where case was not being preserved by the foreign_key_info() method [GSM] - a fetch on any column that had a type that did not have an entry in the type_info array would segfault DBD::Pg. (CPAN bugs #4818,4432) [Rudy Lippan] - Duplicate rows bug with column_info() REMARKS has been fixed. However, support for Postgres 7.1.x which worked briefly for 1.31 has now been dropped for this feature. (Mark Stosberg) - Bumped required Perl version to 5.6.1 in Makefile.PL. We were already already requiring 5.6.1 for Pg.pm since 1.31. - Removed extra "return" statement in quote.c to make Solaris happy (CPAN bug #4419) [Rudy Lippan] - Changed get_info(29) to return (") instead of (\") (CPAN bug #4829) [GSM] 1.31 Mon Nov 17 21:21:21 UTC 2003 - $dbh->{TYPE} now returns SQL_TYPE_TIMESTAMP instead of 1114 for timestamp columns. (In 1.31_x {x| x<8} $sth->{TYPE} returned 0 but reported by ["Hirche, Joachim" ]). - Raised required versions to Perl 5.6.1 and DBI 1.35 - Fix syntax error related to pg_server_version (CPAN bugs #2492,2755,3121) - Cache multiple calls to pg_server_version. - Notice messages generated by the database now use the perl warning mechanism instead of going to stderr. [Dominic Mitchell ] - $dbh->prepare() rewrites the SQL statement into an internal form, striping out comments and whitespace, and if PostgreSQL > 7.3 takes the stripped statement and passes that to Postgres' PREPARE statement, then rewrites the statement as 'EXECUTE "DBD::PG::cached_query n" ($1, $2, ... $n, $n+1)' for DBD::Pg's execute. -- Currently disabled until PREPARE works a little better - Allows the use of :n and :foo bind params. So: (SELECT * FROM foo WHERE 1 = :this and 2 = :that) will now work. - Complains on execute when unbound bind params are submitted (instead of defaulting to NULL) - Switched over to use driver.xst. - pg_error() removes \n's rather than truncating the message on the first \n. - Fixed statement scan problem where the preparse of "SELECT foo[3:33] from bar" was scanning :33 as a placeholder - Moved the quoting of bind values out of execute() and into bind -- as there is no need to requote the value every time execute is called. - :veryverylongplaceholdername == Long walk, short pier -- fixed. - quote() is now in C and uses same code as bind_param. - Quoting and dequoting now use libpq quoting functions where available (I still need to take the libpq functions swiped out of quote.c and move it into libpqswip.c with license info &c., and switch ifndefs to ifdefs) - bind_param() will convert from 1,0 to TRUE/FALSE when pg_type is PGBOOLOID. - Fixed many heap buffer overruns. - Added support for the get_info() method [GSM] - Added tests for POD validation [Mark Stosberg] - Several improvements to column_info, including: - Fixed column_info so NULLABLE field shows correctly. [kevin@sysexperts.com] - REMARKS field works now [Mark Stosberg] - COLUMN_DEF fixed - COLUMN_SIZE fixed - pg_constraint column added to display column constraints - additional documentation and tests added - make test is now more intelligent and will bail out early if db connection fails. [GSM] 1.22 Wed Mar 26 22:33:44 EST 2003 - Win32 compile fix for snprintf [Joe Spears] - Fix memory allocation problem in bytea escaping [Barrie Slaymaker] - Add utf8 support [Dominic Mitchell ] - Transform Perl arrays into PostgreSQL arrays [Alexey Slynko] - Fix for foreign_key_info() [Keith Keller] - Fix PG_TEXT parameter binding - Doc cleanups [GSM] - Fix warning from func($table, 'table_attributes') [GSM] - Added support for schemas [GSM] - Fix binary to a bytea field conversion [Chris Dunlop ] 1.21 Sun Jan 12 21:00:44 EST 2003 - System tables no longer returned by tables(). [Dave Rolsky] - Fix table_attributes to handle removal of pg_relcheck in 7.3, from Ian Barwick - Properly reset transaction status after failed transaction when autocommit is off. Properly report transaction failure message. Kai - New pg_bool_tf database handle that when set to true booleans are returned as 't'/'f' rather than 1/0. 1.20 Wed Nov 27 16:19:26 2002 - Maintenance transferred to GBorg, http://gborg.postgresql.org/project/dbdpg/projdisplay.php. Incremented version number to reflect new management. [Bruce Momjian] - README cleaned up. [Bruce Momjian] - Added t/15funct.t, a series of tests that determine if the meta data is working. [Thomas Lowery] - Added implementations of column_info() and table_info(), and primary_key_info(). [Thomas Lowery] - The POD formatting was cleaned up. [David Wheeler] - The preparser was updated to better handle escaped characters. [Rudy Lippan] - Removed redundant use of strlen() in pg_error() (Jason E. Stewart). - Test suite cleaned up, converted to use Test::More, and updated to use standard DBI environment variables for connecting to a test database. [Jason E. Stewart] - Added eg/lotest.pl as a demonstration of using large objects in buffers rather than files. Contributed by Garth Webb. - Added LISTEN/NOTIFY functionality. Contributed by Alex Pilosov. - Added constants for common PostgreSQL data types, plus simple tests to make sure that they work. These are exportable via "use DBD::Pg qw(:pg_types);". [David Wheeler] - Deprecated the undocumented (and invalid) use of SQL_BINARY in bind_param() and documented the correct approach: "bind_param($num, $val { pg_type => PG_BYTEA });". Use of SQL_BINARY in bind_param() will now issue a warning if $h->{Warn} is true. [David Wheeler] - Removed invalid (and broken) support for SQL_BINARY in quote(). [David Wheeler] - Added App::Info::RDBMS::PostgreSQL to the distribution (but it won't be installed) to help Makefile.PL find the PostgreSQL include and library files. [David Wheeler] - Fixed compile-time warnings. [David Wheeler and Jason E. Stewart] 2002-04-27 Jeffrey W. Baker - dbdimp.c: Add default at end of switch statement for pg_type attrib. - t/13pgtype.t: test for above. 2002-04-09 Jeffrey W. Baker - Pg.pm, dbdimp.c: Applied patch from Thomas A. Lowery concerning metadata in table_info and so forth. 2002-03-06 Jeffrey W. Baker - Pg.pm (quote): Applied patch from David Wheeler to simplify and speed up quoting. - t/11quoting.t: Tests for above patch. - t/12placeholders.t: Tests for placeholder parsing in quoted strings. 2002-03-06 Jeffrey W. Baker - Version 1.10 uploaded to CPAN. 1.01 Jun 27, 2001 - fixed core dump when trying to use a BYTEA value with a byte outside 0..127 Alex Pilosov 1.00 May 27, 2001 - Fetching all records now resets Active flag as it should. 0.99 May 24, 2001 - fix the segmentation fault in pg_error. 0.98 Apr 25, 2001 - bug-fix for core-dump after any failed function call. - applied patch from Alex Pilosov which adds support for the datatype bytea 0.97 Apr 20, 2001 - fix bug in connect method, which erroneously set the userid and the password to the environment variables DBI_USER and DBI_PASS. - applied patch from Jan-Pieter Cornet , which removed the special handling of a backslash when used for octal presentation. Now a backslash always will be escaped. 0.96 Apr 09, 2001 - remove memory-leak in ping function, bug-fix from Doug Perham - correct the recognition of primary keys in table_attributes(). Patch from Brian Powell . - applied patch from David D. Kilzer which fixes a segmentation fault in DBD::pg::blob_read() when reading LOBs that required perl to reallocate space for the variable holding the scalar value - updated test.pl to create a test blob larger than 256 bytes (now 128 Kbytes) - apply patch from Tom Lane, which fixes a segmentation fault when inserting large amounts of text. - apply patch from Peter Haworth pmh@edison.ioppublishing.com, which removes the newlines from the error messages and which quotes date placeholders. 0.95 Jul 10, 2000 - add Win32 port from Bob Kline . 0.94 Jul 07, 2000 - applied patch from Rudy Lippan which fixes a memory-leak with failed connections. - applied patch from Hein Roehrig which fixes a bug with escaping a backslash except for octal presentation - applied patch from Francis J. Lacoste to enhance the table_attributes subroutine 0.93 Sep 29, 1999 - it is required now to set the environment variables POSTGRES_INCLUDE and POSTGRES_LIB for compiling the module. - add Win32 port from Bob Kline . - support for all large-object functions via the func interface. - fixed bug with placeholders and casts spotted bymschout@gkg.net - replaced the method attributes by the method table_attributes, from Scott Williams . - fix type definitions for type_info_all(). bug spotted by "carlos" . - now the Pg-specific quote() method also evaluates the data-type parameter. 0.92 Jun 16, 1999 - proposal from Philip Warner : increase BUFSIZE from 1024 to 32768 in order to improve I/O performance. - bug-fix in Makefile.PL for $POSTGRES_HOME not defined spotted by mdalphin@amgen.com (Mark Dalphin) - bug-fix for data-type datetime in type_info_all spotted by Alan Grover - bug-fix for escaped 's spotted by Hankin - removed 'large objects' related tests from test.pl 0.91 Feb 14, 1999 - removed restriction for commercial use in copyright - corrected DATA_TYPE in type_info_all() 0.90 Jan 15, 1998 - discard parameter authtype from connect string - remove work-around for bug in the large object interface of postgresql 0.89 Nov 05, 1998 - bug-fix from Jan Iven : fix problem with quoting Null in bind variables. 0.88 Oct 10, 1998 - fixed blob_read - suppressed warning when testing DBI::errstr 0.87 Sep 05, 1998 - Pg.xs adapted to Driver.xst from DBI-1.0 - major rewrite of module documentation - major rewrite of the test script - use built-in DBI method for $dbh->do - add macro dHTR in order to avoid compile errors with threaded perl5.005 - renamed attribute AutoEscape to pg_auto_escape - renamed attribute SIZE to pg_size - new attribute pg_type - added support for DBI->data_sources($driver) - added support for $dbh->table_info - blob_read documented and added to test.pl - added support for attr parameter in bind_param() 0.86 Aug 21, 1998 - added /usr/lib/ to search path for libpq. - added ChopBlanks, patch from Victor Krasinsky - changed test.pl to test multiple database handles 0.85 July 19, 1998 - non-printable characters in parameters will not be converted to '.'. They are passed unchanged to the database. 0.84 July 18, 1998 - bug-fix from Max Cohan : check for \xxx presentation before escaping backslash in parameters. - introduce new database handle attribute AutoEscape, which controls escaping of quotes and backslashes in parameters. When set to on, all quotes except at the beginning and at the end of a line will be escaped and all backslashes except when used to indicate an octal presentation (\xxx) will be escaped. Default of AutoEscape is on. 0.83 July 10, 1998 - bug-fix from Max Cohan : using traces together with undef in place-holders dumped core. 0.82 June 20, 1998 - bug-fix from Matthew Lenz : corrected include path in Makefile.PL . - added 'use strict;' to test.pl 0.81 June 13, 1998 - bug-fix from Rolf Grossmann : undefined parameters in an execute statement will be translated from 'undef' to 'NULL'. Also every parameter for bind_param() will be quoted by default (escape quote and backslash). Appropriate tests have been added to test.pl. - change ping method to use libpq-interface. 0.80 June 07, 1998 - adapted to postgresql-6.4: the backend protocol has changed, which needs an adapted ping method. A ping-test has been added to the test-script. Also some type identifiers have changed. 0.73 June 03, 1998 - changed include directives in Makefile.PL from archlib to installarchlib and from sitearch to installsitearch (Tony.Curtis@vcpc.univie.ac.at). - applied patch from Junio Hamano quote method also doubles backslash. 0.72 April 20, 1998 - applied patch from Michael J Schout which fixed the bug with queries containing the cast operator. - applied patch from "Irving Reid" which fixed a memory leak. 0.71 April 04, 1998 - applied patch from "Irving Reid" which fixed the the problem with the InactiveDestroy message. 0.70 March 28, 1998 - linking again with the shared version of libpq due to problems on several operating systems. 0.69 March 6, 1998 - expanded the search path for include files - module is now linked with static libpq.a 0.68 March 3, 1998 - return to UNIX domain sockets in test-scripts 0.67 February 21, 1998 - remove part of Driver.xst due to compile error on some systems. 0.66 February 19, 1998 - remove defines in Pg.h so that it compiles also with postgresql-6.2.1 - changed ping method: set RaiseError=0 0.65 February 14, 1998 - adapted to changes in DBI-0.91, so that the default setting for AutoCommit and PrintError is again conformant to the DBI specs. 0.64 February 01, 1998 - changed syntax of data_source (ODBC-conformant): 'dbi:Pg:dbname=dbname;host=host;port=port' !!! PLEASE ADAPT YOUR SCRIPTS !!! - implemented place-holders - implemented ping-method - added support for $dbh->{RaiseError} and $dbh->{PrintError}, note: DBI-default for PrintError is on ! - allow commit and rollback only if AutoCommit = off - added documentation for $dbh->tables; - new method to get meta-information about a given table: $dbh->DBD::Pg::db::attributes($table); - host-parameter in test.pl is set explicitly to localhost 0.63 October 05, 1997 - adapted to PostgreSQL-6.2: o $sth->rows as well as $sth->execute and $sth->do return the number of affected rows even for non-Select statements. o support for password authorization added, please check the man-page for pg_passwd. - the data_source parameter of the connect method accepts two additional parameters which are treated as host and port: DBI->connect("dbi:Pg:dbname:host:port", "uid", "pwd") - support for AutoCommit, please read the module documentation for impacts on your scripts ! - more perl-ish handling of data type bool, please read the module documentation for impacts on your scripts ! 0.62 August 26, 1997 - added blobs/README 0.61 August 23, 1997 - adapted to DBI-0.89/Driver.xst - added support for blob_read 0.52 August 15, 1997 - added support for literal $sth->{'TYPE'}, pg_type.pl / pg_type.pm. 0.51 August 12, 1997 - changed attributes to be DBI conformant: o OID_STATUS to pg_oid_status o CMD_STATUS to pg_cmd_status 0.5 August 05, 1997 - support for user authentication - support for bind_columns - added $dbh->tables 0.4 Jun 24, 1997 - adapted to DBI-0.84: o new syntax for DBI->connect ! o execute returns 0E0 -> n for SELECT statement -1 for non SELECT statement -2 on error - new attribute $sth->{'OID_STATUS'} - new attribute $sth->{'CMD_STATUS'} 0.3 Apr 24, 1997 - bug fix release, ( still alpha ! ) 0.2 Mar 13, 1997 - complete rewrite, ( still alpha ! ) 0.1 Feb 15, 1997 - creation, ( totally pre-alpha ! )