New release of DBD::mysql (v3.0004)


Patrick released a new version of the perl MySQL connector. This .pm was my introduction to the mysql world, way back in the day. If you can program your way out of a perl brown paper bag and you haven’t used this tool yet, I recommend you write a hello world program to get familiar with it. Good stuff.

Dear DBD::mysql users,

This announcement comes a few days late, but DBD::mysql version 3.0004
(stable, production) and 3.0004_1 (dev) have been released!

Version 3.0004 is the production version with server-side prepare
statements turned off by default, and 3.0004_1 is the development
version with server-side prepare statements turned on by default.

The changes in 3.0004, as listed in the changelog:
  * Fix dbd_st_finish which closed the handle prematurely (Martin Evans)
  * Compile issues (Martin Evans)
  * Fix to dbd_bind_ph to deal with numbers (ints, floats) correctly
    (Alexey Stroganov)
  * Test changes - bind_param 41 and 42

The changes to 3.0004_1 as listed in the changelog:

* Fix dbd_st_finish which closed the handle prematurely (Martin Evans)
  * Compile issues (Martin Evans)
  * Small change to get utf8 data returned. One still has to:
      $dbh->do("set character set utf8");
      $dbh->do("set names utf8");

    to get utf8 back and even then you only get it back if the
    column is defined as utf8 in mysql.
  * Fix to dbd_bind_ph to deal with numbers (ints, floats) correctly
    (Alexey Stroganov)
  * Test changes - bind_param 41 and 42
  * Turned off 70takeimp test

Note: to turn on server-side prepared statements, simply append
";mysql_server_prepare=1" to the connect string or via the driver
handle. Please refer to documentation for further details.

Notes:

* The development (3.0004_1) version supports multiple result sets from
stored procedures. Documentation and sample code (in the ./eg dir) is
included on how to use multiple result sets. Also, the perldoc has
information on multiple result sets.

* To turn off server-side prepare statements to have emulated prepared
statements, append ";mysql_emulated_prepare=0" in the connect string or
via the driver handle.

*As listed in the second changelog, this code is now much better at
handling SQL statements that aren't supported in the prepared statement
C API, and silently deals with determining whether or not to use the
prepared statement calls.

I really appreciate the help of Martin Evans, Alexey Stroganov, Henri
Asseily, as well as the rest of the community in helping by giving
patches and feedback about various issues with the driver. Thank you!

NOTICE: Very soon, perhaps in a release or so, I intend to stabilise the
dev release and make that the production release. This means that server
side prepared statements will be turned on by default. I intend to test
this thoroughly prior to making the switch, so that users don't have any
problems when upgrading, when the time comes. This prepared statement
API is only available with MySQL server versions 4.1 and above, so if
you're using an older version, you won't notice anything. Though, be
assured that even for the driver emulated handling of prepared
statements, I will continue to make sure the code is improved.

As the community, one think you can do if you are interested in helping
is to turn on server side prepare statements in 3.0004, or try the
development driver, 3.0004_1 to see if there are any problems. I've
tested the code as much as I can, but I know nothing tests code like
1000s of developers thinking of unique ways of using the driver that I
never could have imagined. If you find a bug, please report it to me, or
at http://bugs.mysql.com. I'll fix that bug and add test coverage for it.

Coveati: Please make sure you don't use a threaded Perl with this driver
on Solaris.

Again, if anyone has any problems or questions with the driver, please
feel free to email me, or especially post to dbi-users@perl.org , and if
you find bugs, please report them to http://bugs.mysql.com

These versions for this module can be found at CPAN:

http://search.cpan.org/dist/DBD-mysql/

The files:

file: $CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-3.0004.tar.gz
size: 113043 bytes
md5: 5d328b9fdaf899eba6d72258242ad0a0

file: $CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-3.0004_1.tar.gz
size: 110175 bytes
md5: 4dfbd956417f5b036ab55defb8fdfac7

Kind regards,

Patrick Galbraith
, , , , ,

Leave a Reply