Dear DBD::mysql users,

DBD::mysql version 3.0006 (stable, production) and 3.0006_1 (dev) have been released! If you noticed, 3.0005/3.0005_1 was skipped because I had to correct the changelog and CPAN doesn't allow replacement of file uploads.

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

  * Fix dbd_st_finish in 3.0004 didn't clean up bind buffers resulting
    in a memory leak. See eg/prepare_memory_usage.pl to see how this
    manifests itself. Thanks to Jason Snell for giving me a good script
    to reproduce this!
  * Fix to parse_params, mysql.xs dbh->do, and bind_param to deal with
    passing substr to "do" for placeholder value. Thanks Martin Waite
    for the patch to parse_params (extended to mysql.xs "do" and
    bind_param for server-side prepared statements.


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.0006_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.

Thanks to Martin Waitem! He provided a great patch to parse_params, which emulated prepared statement code uses to translate placeholders into values. The fix he provided enables parse_params to handle passing things like substring to "do" using placeholders. I noticed that the same problem existed in the server-side prepared code, and his fix gave me the idea of how to fix it in the bind_param and mysql.xs do.

Also thanks to Jason Snell, who informed me of a memory leak and provided me with a script that ran execute in a continuous loop showing the memory leak! With this, I was able to see that "finish" wasn't freeing all of the bind members. This script is now in "eg/prepare_memory_usage.pl". I would like to eventually put this in the test suite, if possible. I just need to find a way to have the test suite detect if memory usage increases as a loop iterates.

NOTICE: (as I said in the last release) 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.0006, or try the
development driver, 3.0006_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:

DBD::mysql 3.0006

  file: $CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-3.0006.tar.gz
  size: 114658 bytes
   md5: b6d46ea7df99800082a2d2480056b0ce

DBD::mysql 3.0006_1

  file: $CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-3.0006_1.tar.gz
  size: 111796 bytes
   md5: 417f52d07338422ac16afc038bcc3434

Kind regards,

Patrick Galbraith



Reply via email to