Changes from 1.41:
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
- ('Greg' is Greg Sabino Mullane, greg@turnstep.com)
- Make sure tests remove all temporary tables.
[Frank Bax]
- Preserve sqlstate if rolling back on deallocate, fix
potential segfault. [Stephen Clouse]
- Fix CPAN bug #12004: commit and rollback now return true
[Greg] (thanks to ivan-dbdpg@420.am)
- Overhaul and update COPY support; use new protocol.
New dbh methods: pg_putline, pg_getline, pg_endcopy.
[Greg]
- Rewrote version detection code. Compiled version and target
version are now available via $dbh->{pg_lib_version} and
$dbh->{pg_server_version} [Greg]
- Set our default type_id to 0, not 1043 (VARCHAR) when possible.
Suggested by Abhijit Menon-Sen via David Wheeler. [Greg]
- Add $dbh methods pg_savepoint(), pg_rollback_to(), and pg_release()
[Stephen Clouse] [Greg]
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]
- Change all string lengths to use STRLEN
[rink@stack.nl]
- Added $dbh->pg_server_trace($fh) [Greg Sabino Mullane]
- Added $dbh->{pg_errorlevel}. [Greg Sabino Mullane]
- Fix utf8 quote() support [Dominic Mitchell <dom@semantico.com>]
- Added explicit support for types SQL_BOOLEAN, DATE, TIME,
TIMESTAMP, and TIMESTAMPTZ. Return correct values for
DATEOID and TIMEOID. [Greg Sabino Mullane]
- Added tablespace support for table_info and primary_key_info.
[Greg Sabino Mullane]
- Added new attributes to $dbh: pg_db, pg_user, pg_pass,
pg_host, pg_port, pg_options, pg_socket, pg_pid
[Greg Sabino Mullane]
- 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
[Greg Sabino Mullane]
- Major overhaul of prepare/execute to handle new server-side
prepare system. See Pg.pm for details. [Greg Sabino Mullane]
- 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
[Greg Sabino Mullane]
- 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 <caelum@debian.org>]
- 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 "pg_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" <Joachim.Hirche@cimconcepts.com>]).
- 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 <dom@semantico.com>]
- $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]
module directory has changed (eg. "darwin-2level" vs.
"darwin-thread-multi-2level").
binary packages of perl modules need to be distinguishable between
being built against threaded perl and unthreaded perl, so bump the
PKGREVISION of all perl module packages and introduce
BUILDLINK_RECOMMENDED for perl as perl>=5.8.5nb5 so the correct
dependencies are registered and the binary packages are distinct.
addresses PR pkg/28619 from H. Todd Fujinaka.
- Fix memory allocation problem in bytea escaping
- Add utf8 support
- Transform Perl arrays into PostgreSQL arrays
- Fix for foreign_key_info()
- Fix PG_TEXT parameter binding
- Doc cleanups
- Fix warning from func($table, 'table_attributes')
- Added suppport for schemas
- Fix binary to a bytea field conversion
- System tables no longer returned by tables().
- Fix table_attributes to handle removal of pg_relcheck in 7.3,
- Properly reset transaction status after failed transaction when
autocommit is off. Properly report transaction failure message.
- New pg_bool_tf database handle that when set to true booleans are
returned as 't'/'f' rather than 1/0.
- Maintenance transferred to GBorg.
- Added implementations of column_info() and table_info(), and
primary_key_info().
- The POD formatting was cleaned up.
- The preparser was updated to better handle escaped characters.
- Added eg/lotest.pl as a demonstration of using large objects in buffers
rather than files.
- Added LISTEN/NOTIFY functionality.
- Added constants for common PostgreSQL data types.
- Fixed compile-time warnings.
The automatic truncation in gensolpkg doesn't work for packages which
have the same package name for the first 5-6 chars.
e.g. amanda-server and amanda-client would be named amanda and amanda.
Now, we add a SVR4_PKGNAME and use amacl for amanda-client and amase for
amanda-server.
All svr4 packages also have a vendor tag, so we have to reserve some chars
for this tag, which is normaly 3 or 4 chars. Thats why we can only use 6
or 5 chars for SVR4_PKGNAME. I used 5 for all the packages, to give the
vendor tag enough room.
All p5-* packages and a few other packages have now a SVR4_PKGNAME.
foo-* to foo-[0-9]*. This is to cause the dependencies to match only the
packages whose base package name is "foo", and not those named "foo-bar".
A concrete example is p5-Net-* matching p5-Net-DNS as well as p5-Net. Also
change dependency examples in Packages.txt to reflect this.
- fix segmentation fault in pg_error
- bug-fix for core-dump after any failed function call
- add support for the datatype bytea
- fix bug in connect method, which erroneously set the userid and the
password to the environment variables DBI_USER and DBI_PASS
- which removed the special handling of a backslash when used for octal
presentation. Now a backslash always will be escaped.
- remove memory-leak in ping function, bug-fix
- correct the recognition of primary keys in table_attributes().
- fix 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)
- fix a seg-fault when inserting large amounts of text.
- remove the newlines from the error messages and quote date placeholders.
- add Win32 port from Bob Kline .
- 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
Apache perl modules, and each compiled and installed/de-installed apparently
correctly.
As a side effect of the dynamic PLIST, we no longer need to to have separate
-static and -shared PLISTs. It's now easier than ever to make a perl5
package for NetBSD :)