1.32_2 Thu Feb 19 02:33:24 UTC 2004 - Bugfix for memory allocation problems on win systems [Rafael Kitover ] - Rewrote the foreign_key_info() method to handle multi-column keys. [Greg Sabino Mullane] - Rewrote the primary_key_info() and primary_key() methods to cleanly handle multi-column primary keys. Also added a "onerow" attribute to allow primary_key_info() to return a single row containing multiple-column information. [Greg Sabino Mullane] - Switched commit behavior from commit->execute->begin to begin->execute->commit [xelah-junk@xelah.com] - Made the _pg_use_catalog subroutine use {private_dbgpg}. (CPAN bug #4841) [Greg Sabino Mullane] - 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. [Greg Sabino Mullane] - Added the "noprefix" attribute to prevent the tables() method from prepending the schema name. [Greg Sabino Mullane] - Rewrote the testing suite. Many more tests are performed. Servers with a low client_min_messages are handled correctly. [Greg Sabino Mullane] - Fixed bug causing '$\d' to be picked up as a placeholder. (CPAN bug #4799) [Greg Sabino Mullane] - pg_notifies now catches and reports when PQconsumeInput fails. (CPAN bug #4027) [nmueller@cs.wisc.edu] - Enabled the "pg_bool_tf" database handle [Greg Sabino Mullane] - Added required fields to the type_info() method: SQL_DATA_TYPE, SQL_DATETIME_SUB, and INTERVAL PRECISION [Greg Sabino Mullane] - Fixed bug where the table_attributes() method was incorrectly removing the NULLABLE column. [Greg Sabino Mullane] - Fixed bug where case was not being preserved by the foreign_key_info() method [Greg Sabino Mullane] - 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) [Greg Sabino Mullane] 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 [Greg Sabino Mullane] - 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. [Greg Sabino Mullane] 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 [Greg Sabino Mullane] - Fix warning from func($table, 'table_attributes') [Greg Sabino Mullane] - Added support for schemas [Greg Sabino Mullane] - 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 ! )