Changes for version 1.00 - 2018-07-12

  • Do not remove test name and line from test error messages
  • Update documentation for mariadb_length and mariadb_max_length
  • Fix retrieving ODBC attribute SQL_USER_NAME via $dbh->get_info()
  • Do not show internal DBI packages on cpan
  • Fix checking for error value from mariadb_embedded options
  • Makefile.PL shows error message when no client library was specified
  • Fix checking if integer value should be signed or unsigned

Changes for version 0.90_01 - 2018-06-26

  • This is a new DBD::MariaDB driver, fork of DBD::mysql 4.041 with fixes
  • Attributes and methods with mysql_* prefix were renamed to mariadb_*
  • 1. Security fixes
    • CVE-2017-10788: Fix use-after-free after calling mysql_stmt_close()
    • CVE-2017-3302: Add workaround for defect of leaking dangling pointers
    • CVE-2018-2767: Handle SSL problems of MySQL and MariaDB clients
  • 2. Client/server changes
    • New support for MySQL 8.0+ clients
    • New support for MariaDB 10.2.4+ clients
    • New support for MariaDB 10.3.0+ clients
    • New support for MariaDB Connector/C 2.3.0+ clients
    • New support for MariaDB Connector/C 3.0.2+ clients
    • Minimal DBI version is now 1.608
    • Minimal MySQL client library version is now 4.1.3
    • Minimal MySQL server version is now 4.1.0
    • Requirement for utf8mb4 (preferred) or utf8(mb3) connection charset
  • 3. Functional changes
    • Full Unicode support for all Perl strings in all methods according to Perl Unicode model (same as in recent DBD::Pg and DBD::SQLite drivers), activated by default, improperly written applications may have problems
    • Embedded Server support is now in main DBD::MariaDB module and enabled at compile time if MariaDB/MySQL linking library supports it, additional module DBD::MariaDBEmb was therefore removed
    • Fix lot of bugs related to Unicode, mysql utf8mb4 charset and login
    • Remove support for Latin1 encoding
  • 4. Client compatibility changes
    • Fix initialization of MySQL/MariaDB client library, fix MariaDB 10.2.4+
    • Fix crashing when prepared statements are used
    • Do not access internal MYSQL* and MYSQL_STMT* structures
  • 5. Statement handling changes
    • Stop parsing SQL statements (exception are client side placeholders)
    • Fix support for client side placeholder replacing with MySQL 5.7.6+
    • Fix $dbh->quote() method for MySQL 5.7.6+ and MySQL 8.0+ clients
    • Fix error handling for statements with LIMIT and OFFSET
    • Fix processing statements with nul bytes
    • Fix calculation of buffer size for client side placeholder replacing
    • Fix checking if bind value is mysql number and if needs to be quoted
    • Check that correct number of bind parameters were supplied
  • 6. Miscellaneous changes
    • Fix fetching numeric values of types with fixed-length of decimals
    • Fix ChopBlanks for binary fields
    • Fix $dbh->ping() and $dbh->last_insert_id() with MySQL 5.7+ and 8.0+
    • Fix tests so can be run in parallel (via testrules.yml)
    • Fix retrieving $sth attributes after $sth->fetchall* call
    • Fix usage of normal eval, $@ and error handling
    • Fix and simplify code which uses number of returned or affected rows
    • Fix usage of boolean variables
    • Fix creating perl scalars with unsigned numbers
    • Fix autoreconnect for server side prepared statements
    • Fix and cleanup ODBC attributes returned by $dbh->get_info() method
    • Fix support for IMP_DATA
    • Fix propagating server error code and messages to DBI
    • Remove usage of %llu and %lld for PerlIO_printf
    • Remove usage of stringified eval
    • Remove old undocumented, legacy and hidden options and methods
    • Remove nonsense prototypes for object methods
    • Distinguish between undef (NULL) and "" for mysql_real_connect()
    • Check for valid and supported attribute names
    • Cleanup Makefile.PL options
    • Hide passwords in trace logs
    • Use DBI dbd_st_execute_iv() API when available
    • Add support for mariadb_conn_attrs attribute with MariaDB 10+ clients
    • Disable autoreconnect by default also for mod_perl
    • Implement $dbh->disconnect_all() method
    • Makefile.PL now depends on Devel::CheckLib 1.12 (ensure correct linking)
  • 7. List of fixed issues
    • https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=866821#17
    • https://github.com/gooddata/DBD-MariaDB/issues/13
    • https://github.com/perl5-dbi/DBD-mysql/issues/78
    • https://github.com/perl5-dbi/DBD-mysql/issues/110
    • https://github.com/perl5-dbi/DBD-mysql/issues/120
    • https://github.com/perl5-dbi/DBD-mysql/issues/126
    • https://github.com/perl5-dbi/DBD-mysql/issues/139
    • https://github.com/perl5-dbi/DBD-mysql/issues/140
    • https://github.com/perl5-dbi/DBD-mysql/issues/149
    • https://github.com/perl5-dbi/DBD-mysql/issues/165
    • https://github.com/perl5-dbi/DBD-mysql/issues/167
    • https://github.com/perl5-dbi/DBD-mysql/issues/169
    • https://github.com/perl5-dbi/DBD-mysql/issues/170
    • https://github.com/perl5-dbi/DBD-mysql/issues/182
    • https://github.com/perl5-dbi/DBD-mysql/issues/185
    • https://github.com/perl5-dbi/DBD-mysql/issues/187
    • https://github.com/perl5-dbi/DBD-mysql/issues/197
    • https://github.com/perl5-dbi/DBD-mysql/issues/201
    • https://github.com/perl5-dbi/DBD-mysql/issues/203
    • https://github.com/perl5-dbi/DBD-mysql/issues/204
    • https://github.com/perl5-dbi/DBD-mysql/issues/207
    • https://github.com/perl5-dbi/DBD-mysql/issues/211
    • https://github.com/perl5-dbi/DBD-mysql/issues/212
    • https://github.com/perl5-dbi/DBD-mysql/issues/214
    • https://github.com/perl5-dbi/DBD-mysql/issues/215
    • https://github.com/perl5-dbi/DBD-mysql/issues/218
    • https://github.com/perl5-dbi/DBD-mysql/issues/219
    • https://github.com/perl5-dbi/DBD-mysql/issues/220
    • https://github.com/perl5-dbi/DBD-mysql/issues/221
    • https://github.com/perl5-dbi/DBD-mysql/issues/228
    • https://github.com/perl5-dbi/DBD-mysql/issues/232
    • https://github.com/perl5-dbi/DBD-mysql/issues/244
    • https://github.com/perl5-dbi/DBD-mysql/issues/249
    • https://github.com/perl5-dbi/DBD-mysql/issues/250
    • https://github.com/perl5-dbi/DBD-mysql/issues/251
    • https://github.com/perl5-dbi/DBD-mysql/pull/133
    • https://github.com/perl5-dbi/DBD-mysql/pull/138
    • https://github.com/perl5-dbi/DBD-mysql/pull/223
    • https://github.com/perl5-dbi/DBD-mysql/pull/224
    • https://github.com/perl5-dbi/DBD-mysql/pull/225#issuecomment-357522793
    • https://github.com/perl5-dbi/DBD-mysql/pull/227
    • https://github.com/perl5-dbi/DBD-mysql/pull/230
    • https://github.com/perl5-dbi/DBD-mysql/pull/245
    • https://github.com/perl5-dbi/DBD-mysql/pull/246
    • https://rt.cpan.org/Public/Bug/Display.html?id=25590
    • https://rt.cpan.org/Public/Bug/Display.html?id=53130
    • https://rt.cpan.org/Public/Bug/Display.html?id=60987
    • https://rt.cpan.org/Public/Bug/Display.html?id=62516
    • https://rt.cpan.org/Public/Bug/Display.html?id=87428
    • https://rt.cpan.org/Public/Bug/Display.html?id=97541
    • https://rt.cpan.org/Public/Bug/Display.html?id=103306
    • https://rt.cpan.org/Public/Bug/Display.html?id=106527
    • https://rt.cpan.org/Public/Bug/Display.html?id=108650
    • https://rt.cpan.org/Public/Bug/Display.html?id=110983
    • https://rt.cpan.org/Public/Bug/Display.html?id=118837
    • https://rt.cpan.org/Public/Bug/Display.html?id=118977
    • https://rt.cpan.org/Public/Bug/Display.html?id=119902
    • https://rt.cpan.org/Public/Bug/Display.html?id=119904
    • https://rt.cpan.org/Public/Bug/Display.html?id=120141
    • https://rt.cpan.org/Public/Bug/Display.html?id=120709
    • https://rt.cpan.org/Public/Bug/Display.html?id=122065
    • https://rt.cpan.org/Public/Bug/Display.html?id=122429
    • https://rt.cpan.org/Public/Bug/Display.html?id=122431
    • https://rt.cpan.org/Public/Bug/Display.html?id=122541
    • https://rt.cpan.org/Public/Bug/Display.html?id=123826
    • https://rt.cpan.org/Public/Bug/Display.html?id=125517

Documentation

How to install and configure DBD::MariaDB

Modules

MariaDB and MySQL driver for the Perl5 Database Interface (DBI)