Changes for DBD::JDBC.
January 2022
Version 0.72
Update the server to Log4j2 as a response to CVE-2021-44228
(log4shell) and subsequent Log4j2 issues.
This version of the server is built for Java 1.8.
As part of the update to Log4j2, the dbd.trace property has been
removed. Logging levels should be configured using standard Log4j
methods.
November 2008
Version 0.71
Added a private method, jdbc_disconnect, that can be used
to invoke disconnect in cases where the public disconnect
method provided by DBI has been overridden or otherwise
made unavailable (this was happening in Apache::DBI).
Server changes: Modified the way methods are found when
invoking JDBC methods via reflection.
Added support for last_insert_id using the JDBC method
getGeneratedKeys.
Added code to the server to attempt to roll back any
existing transactions before closing a connection due to
a fatal error. Thanks to Martin Evans for the suggestion.
When the DBI version is >= 1.54, DBD::JDBC no longer
exports SQL_BIGINT since it's been added back to DBI.
June 2006
Version 0.70
Changed the default behavior when reading long fields to
read the entire field. Added a new property,
jdbc_longreadall, which can be set to false to disable
this behavior and return to the DBI standard behavior
controlled by LongReadLen and LongTruncOk.
Statements are now marked inactive when their DESTROY
method is called. Thanks to Jesper Krogh for the
suggestion.
Server changes: The server now uses log4j for its
logging.
The server will attempt to close database connections
when a connection thread is ending. Thanks to Jesper
Krogh for the patch.
January 2006
Version 0.69
Added the first bit of $dbh->get_info support thanks to
Jesper Krogh.
Server changes: Updated the method which reads data in
the server (handleRequest(FetchRequest aRequest)) to use
different JDBC methods for BLOB, CLOB, and LONGVARCHAR
data types. The server now retrieves BLOB and CLOB
objects using getBlob and getClob. The use of the
deprecated method getUnicodeStream to read LONGVARCHAR
has been replaced by use of getCharacterStream.
November 2005
Version 0.68
Fixed a bug in the handle DESTROY methods which caused
DESTROY to override the current value of $@. Code like
the following:
eval { my $sth = $dbh->prepare(...); $sth->execute() };
die $@ if $@;
might fail to die even when $sth->execute failed because
$sth->DESTROY was called when the eval block was exited.
Added distribution tests which use hsqlbd thanks to Frank
Tolstrup. hsqldb is a pure Java SQL database. This should
make it possible to run "make test" without having
another database set up.
November 2005
Version 0.67
This is DBD::JDBC 0.66 with a few further updates based
on reviewing the DBI 1.48 documentation.
Fixed the local build process to synchronize the
DBD::JDBC version with the server version.
Added support for $sth->{ParamValues}. (DBI 1.28)
Removed locally-defined err, errstr, and state
variables. (DBI 1.33)
Updated NUM_OF_FIELDS behavior. (DBI 1.42)
January 2005
Version 0.66
Unofficial release, not sent to CPAN.
Requires edits to DBI.pm.
Updated DBD::JDBC to work with DBI 1.46. No work has been
done to add support for DBI features added since the last
DBI release with which this driver was certified. "Works
with DBI 1.46" means that the test suite now passes
again.
This release uses DBI's install_method method to add
jdbc_func. Use of install_method requires that the
driver-specific prefix be registered with DBI. This has
not been done as of DBI 1.46, so until a DBI release is
made with the prefix registered, it is necessary to edit
DBI.pm to add the jdbc_ prefix to $dbd_prefix_registry.
Scripts which used $h->func to call JDBC methods must now
use $h->jdbc_func. Error handling with jdbc_func follows
the standard DBI model, so it's no longer necessary to
check for errors explicitly as it was when using func.
Removed references to the DBI constant SQL_BIGINT, which
was removed in an earlier DBI release. Scripts which need
to use SQL_BIGINT should import the constant from DBD::JDBC:
use DBI qw(:sql_types);
use DBD::JDBC qw(:sql_types);
May 2001
Version 0.64
Added support for arbitrary (string) JDBC connection
properties.
Added support for "jdbc_" prefixes on method names used
in $h->func() calls as required by DBI. Unprefixed method
names are still supported in this release, though support
may be removed in a future release.
Changed the format of the connect message between the
client and server. This means that this version of the
client is not compatible with any older version of the
server.
June 2000
Version 0.63
Changed required version of DBI to 1.13 in order to have
access to the SQL_BIT constant (used to specify boolean
method parameters for func).
Added $h->func implementations for $dbh and $sth
objects. This implementation passes the method name and
parameters to the Java server. The server uses reflection
to call the requested method. The current implementation
only supports a limited set of types for parameters and
return values. Most object types are not supported.
Allow the driver to close Statement objects when
$sth->DESTROY is called.
Fixed, or at least altered, the behavior of the driver
when the JDBC driver doesn't provide a SQLSTATE value
in a SQLException. Previously, this problem caused DBI to
die.
Reset the value of the jdbc_error attribute before
setting a new error.
May 2000
Version 0.62.
Changed required version of Convert::BER to 1.31 and
removed Convert::BER 1.265 from the driver distribution.
Changed connect implementation to delay creation of $dbh
until server connection has succeeded. This allows
checking of $DBI::{err,errstr,state} in a separate
statement after the call to connect.
January 2000
Added ability to create a single Server with a
pre-existing Java connection within a Java
application. See the example in the example directory.
Added $! to socket error reporting; why'd I leave that
out?
October 1999
Initial version.