Fixed DBI::DBD docs to refer to DBI::DBD::Metadata
Fixed disconnect_all() to not be required by drivers.
Added $okay = $h->can($method_name) to check if a method exists.
Added DBD::*::*->install_method($method_name, \%attr) so driver private
methods can be 'installed' into the DBI dispatcher and no longer
need to be called using $h->func(..., $method_name).
Enhanced $dbh->clone() and documentation.
Removed old DBI::Shell from distribution and added Tom Lowery's improved
version to the Bundle::DBI file.
Updated minimum version numbers for modules in Bundle::DBI.
Added $dbh2 = $dbh1->clone to make a new connection to the database
that is identical to the original one. clone() can be called even after
the original handle has been disconnected. See the docs for more details.
Fixed unescaping of newlines in DBI::ProfileData
Fixed Taint bug with fetchrow_hashref
Fixed $dbh->{Active} for DBD::Proxy
Fixed STORE to not clear error during nested DBI call
Fixed DBI::PurePerl error clearing behaviour.
Fixed problem that meant ShowErrorStatement could show wrong statement
Changed Apache::DBI hook to check for $ENV{MOD_PERL} instead of
$ENV{GATEWAY_INTERFACE} thanks to Ask Bjoern Hansen.
No longer tries to dup trace logfp when an interpreter is being cloned.
Database handles no longer inherit shared $h->err/errstr/state storage
from their drivers, so each $dbh has it's own $h->err etc. values
and is no longer affected by calls made on other dbh's.
Now when a dbh is destroyed it's err/errstr/state values are copied
up to the driver so checking $DBI::errstr still works as expected.
Documentation changes:
Documented $high_resolution_time = dbi_time() function.
Documented that bind_col() can take an atribute hash.
Clarified documentation for ParamValues attribute hash keys.
Many good DBI documentation tweaks
including a major update to the DBI::DBD driver author guide.
Clarified that execute() should itself call finish() if it's
called on a statement handle that's still active.
Clarified $sth->{ParamValues}. Driver authors please note.
Removed "NEW" markers on some methods and attributes and
added text to each giving the DBI version it was added in,
if it was added after DBI 1.21 (Feb 2002).
Fixed to work with 5.005_03 (I've not tested it).
Reenabled taint tests (accidentally left disabled)
Improved docs for FetchHashKeyName attribute
Fixed core dump if fetchrow_hashref given bad argument (name of attribute
with a value that wasn't an array reference)
Fixed some compiler warnings
Updated Steven Hirsch's enhanced proxy work (seems I left out a bit).
The fetchall_arrayref method, when called with a $maxrows parameter,
no longer gives an error if called again after all rows have been
fetched. This simplifies application logic when fetching in batches.
Also added batch-fetch while() loop example to the docs.
The proxy now supports non-lazy (synchronous) prepare, positioned
updates (for selects containing 'for update'), PlRPC config set
via attributes, and accurate propagation of errors
The DBI_AUTOPROXY env var can now hold the full dsn of the proxy driver
plus attributes, like "dbi:Proxy(proxy_foo=>1):host=...".
Added TaintIn & TaintOut attributes to give finer control over
tainting
The RootClass attribute no longer ignores failure to load a module,
but also doesn't try to load a module if the class already exists
HandleError attribute works for connect failures
The connect() RaiseError/PrintError message now includes the username.
Changed "last handle unknown or destroyed" warning to be a trace message.
Removed undocumented $h->event() method.
Further enhancements to DBD::PurePerl accuracy.
The CursorName attribute now defaults to undef and not an error.
Most notable changes:
Fixed problems with selectrow_array, selectrow_arrayref, and
selectall_arrayref introduced in DBI 1.29.
The trace output can be sent to STDOUT instead of STDERR by using
"STDOUT" as the name of the file, i.e., $h->trace(..., "STDOUT")
Added $sth->{ParamValues} to return a hash of the most recent
values bound to placeholders via bind_param() or execute().
Enhanced ShowErrorStatement to include ParamValues if available:
"DBD::foo::st execute failed: errstr [for statement ``...'' with params: 1='foo']"
Fixed missing column in C implementation of fetchall_arrayref()
Added C implementations of selectrow_arrayref() and fetchall_arrayref()
in Driver.xst. All compiled drivers using Driver.xst will now be
faster making those calls.
Drivers just need to be recompiled and reinstalled to enable it.
Added $max_rows parameter to fetchall_arrayref() to optionally limit
the number of rows returned. Can now fetch batches of rows.
Added MaxRows attribute to selectall_arrayref()
which then passes it to fetchall_arrayref().
Documented that $h->func() does not trigger RaiseError etc
so applications must explicitly check for errors.
HandleError subroutine interface is now regarded as stable.
Fixed reference loop causing a handle/memory leak
that was introduced in DBI 1.16.
Fixed DBI::Format to work with 'filehandles' from IO::Scalar
and similar modules
Fixed $h->func for DBI::PurePerl
Fixed $dbh->{Name} for DBI::PurePerl
Added DBI method call profiling and benchmarking.
Added execute_array() and bind_param_array() documentation
Removed undocumented Handlers attribute (replaced by HandleError).
Greatly improved DBI::PurePerl in performance and accuracy.
Added DBI::PurePerl, a transparent DBI emulation for pure-perl drivers
See Perldoc DBI::PurePerl for details.
Added DBI::Const::GetInfo* modules
Added write_getinfo_pm utility to DBI::DBD
Added $allow_active==2 mode for prepare_cached()
Extend $h->{Warn} to commit/rollback ineffective warning
Fixed DBD::Proxy support for AutoCommit
Fixed DBI::ProxyServer bind_param(_inout) handling
Fixed DBI::ProxyServer fetch loop
Fixed install_driver do-the-right-thing with $@ on error. It, and connect(),
will leave $@ empty on success and holding the error message on error.
Fixed fetchrow_hashref to assign columns to the hash left-to-right
so later fields with the same name overwrite earlier ones
as per DBI < 1.15
Changed tables() to use quote_indentifier() if the driver returns a
true value for $dbh->get_info(29) # SQL_IDENTIFIER_QUOTE_CHAR
Changed ping() so it no longer triggers RaiseError/PrintError.
Changed connect() to not call $class->install_driver unless needed.
Changed DESTROY to catch fatal exceptions and append to $@.
Added ISO SQL/CLI & ODBCv3 data type definitions
Removed the definition of SQL_BIGINT data type constant as the value is
inconsistent between standards (ODBC=-5, SQL/CLI=25).
Added $dbh->column_info(...)
Added $dbh->foreign_key_info(...)
Added $dbh->quote_identifier(...)
Added $h->{HandleError} = sub { ... } addition and/or alternative
to RaiseError/PrintError.
Added Fowler/Noll/Vo hash type as an option to DBI::hash().
Added DBI::Changes so now you can "perldoc DBI::Changes", yeah!
Added selectrow_arrayref & selectrow_hashref docs
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.
Made fetchall_arrayref({ foo=>1, ...}) be more strict to the specification
in relation to wanting hash slice keys to be lowercase names.
Fixed $sth->execute() to update $dbh->{Statement} to $sth->{Statement}.
Added row number to trace output for fetch method calls.
Added $h->{FetchHashKeyName} = 'NAME_lc' or 'NAME_uc' to alter
behaviour of fetchrow_hashref() method. See docs.
Added type_info quote caching to quote() method
Makes using quote() with second data type param much much faster.
Added type_into_all() caching to type_info()
Added new API definition for table_info() and tables(),
Added primary_key_info() to DBI API
Added primary_key() to DBI API as simpler interface to primary_key_info().
Indent and other fixes for DBI::DBD doc
Added prepare_cached() insert_hash() example
Removed false docs for fetchall_hashref(), use fetchall_arrayref({}).
Fixed that altering ShowErrorStatement also altered AutoCommit!
Fixed DBD::Proxy to handle commit() and rollback(). Long overdue, sorry.
Fixed incompatibility with perl 5.004 (but no one's using that right? :)
Fixed connect_cached and prepare_cached to not be affected by the order
of elements in the attribute hash.
Fixed version number of DBI::Shell
Defined and documented table_info() attribute semantics (ODBC compatible)
Reimplemented fetchrow_hashref in C, now fetches about 25% faster!
Changed behaviour if both PrintError and RaiseError are enabled
to simply do both (in that order, obviously :)
Slight reduction in DBI handle creation overhead
Fixed $dbh->{Driver} & $sth->{Database} to return 'outer' handles.
Fixed execute param count check to honour RaiseError
Fixed build for perl5.6.1 with PERLIO
Fixed client sql restrictions in ProxyServer.pm
Fixed batch mode command parsing in Shell
Fixed typo in selectcol_arrayref docs
Fixed selectrow_hashref to be available to callers
Fixed core dump if statement handle didn't define Statement attribute
Added bind_param_inout docs to DBI::DBD
Added note to data_sources() method docs that some drivers may
require a connected database handle to be supplied as an attribute
Trace of install_driver method now shows path of driver file loaded
Changed many '||' to 'or' in the docs
Updated DBD::ADO again (improvements in error handling)
Updated Win32::DBIODBC (Win32::ODBC emulation)
Updated email and web addresses in DBI::FAQ
Added selectrow_arrayref, selectrow_hashref, selectall_hashref
Added DBI->connect(..., { dbi_connect_method => 'method' })
Added $h->{ShowErrorStatement}=1 to cause the appending of the
relevant Statement text to the RaiseError/PrintError text.
Trace method uses warn() if it can't open the new file.
Trace shows source line and filename during global destruction.
Documentation:
Documented $DBI::lasth (which has been there since day 1).
Documented SQL_* names.
Clarified and extended docs for $h->state
Clarified fetchall_arrayref({}) docs
Clarified type_info_all re lettercase and index values.
Updated DBI::FAQ to 0.38
Added cute bind_columns example
Extended docs on \%attr arg to data_sources method.
Proxy:
Removed debug messages from DBD::Proxy AUTOLOAD
Added fix for problem using table_info
Added better determination of where to put the pid file
Added KNOWN ISSUES section to DBD::Proxy docs
Known issues:
Perl 5.005 and 5.006 both leak memory doing local($handle->{Foo}).
Perl 5.004 doesn't. The leak is not a DBI or driver bug.
NOTE: This version is the one the DBI book is based on.
NOTE: This version requires at least Perl 5.004.
Perl 5.6 ithreads changes with thanks to Doug MacEachern.
Changed trace output to use PerlIO thanks to Paul Moore.
Fixed bug in RaiseError/PrintError handling.
(% chars in the error string could cause a core dump.)
Fixed Win32 PerlEx IIS concurrency bugs thanks to Murray Nesbitt.
Major documentation polishing thanks to Linda Mui at O'Reilly.
Password parameter now shown as **** in trace output.
Added two fields to type_info and type_info_all.
Added $dsn to PrintError/RaiseError message from DBI->connect().
Changed prepare_cached() croak to carp if sth still Active.
Added prepare_cached() example to the docs.
Added further DBD::ADO enhancements from Thomas Lowery.
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 :)
Changes in DBI 1.13, 11th July 1999
Fixed Win32 PerlEx IIS concurrency bugs thanks to ActiveState.
Fixed problems with DBD::ExampleP long_list test mode.
Added SQL_WCHAR SQL_WVARCHAR SQL_WLONGVARCHAR and SQL_BIT
to list of known and exportable SQL types.
Improved data fetch performance of DBD::ADO.
Added GetTypeInfo to DBD::ADO thanks to Thomas Lowery.
Actually documented connect_cached thanks to Michael Schwern.
Fixed user/key/cipher bug in ProxyServer thanks to Joshua Pincus.
Changes in DBI 1.12, 29th June 1999
Fixed significant DBD::ADO bug (fetch skipped first row).
Fixed ProxyServer bug handling non-select statements.
Fixed VMS problem with t/examp.t thanks to Craig Berry.
Trace only shows calls to trace_msg and _set_fbav at high levels.
Modified t/examp.t to workaround Cygwin buffering bug.
Changes in DBI 1.11, 17th June 1999
Fixed bind_columns argument checking to allow a single arg.
Fixed problems with internal default_user method.
Fixed broken DBD::ADO.
Made default $DBI::rows more robust for some obscure cases.
Changes in DBI 1.10, 14th June 1999
Fixed trace_msg.al error when using Apache.
Fixed dbd_st_finish enhancement in Driver.xst (internals).
Enable drivers to define default username and password
and temporarily disabled warning added in 1.09.
Thread safety optimised for single thread case.
Changes in DBI 1.09, 9th June 1999
Added optional minimum trace level parameter to trace_msg().
Added warning in Makefile.PL that DBI will require 5.004 soon.
Added $dbh->selectcol_arrayref($statement) method.
Fixed fetchall_arrayref hash-slice mode undef NAME problem.
Fixed problem with tainted parameter checking and t/examp.t.
Fixed problem with thread safety code, including 64 bit machines.
Thread safety now enabled by default for threaded perls.
Enhanced code for MULTIPLICITY/PERL_OBJECT from ActiveState.
Enhanced prepare_cached() method.
Minor changes to trace levels (less internal info at level 2).
Trace log now shows "!! ERROR..." before the "<- method" line.
DBI->connect() now warn's if user / password is undefined and
DBI_USER / DBI_PASS environment variables are not defined.
The t/proxy.t test now ignores any /etc/dbiproxy.conf file.
Added portability fixes for MacOS from Chris Nandor.
Updated mailing list address from fugue.com to isc.org.