Hello community, here is the log from the commit of package perl-DBD-mysql for openSUSE:Factory checked in at 2015-10-30 13:43:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-DBD-mysql (Old) and /work/SRC/openSUSE:Factory/.perl-DBD-mysql.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-DBD-mysql" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-DBD-mysql/perl-DBD-mysql.changes 2015-09-08 17:42:36.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-DBD-mysql.new/perl-DBD-mysql.changes 2015-10-30 13:43:44.000000000 +0100 @@ -1,0 +2,19 @@ +Thu Oct 29 09:48:35 UTC 2015 - [email protected] + +- updated to 4.033 + see /usr/share/doc/packages/perl-DBD-mysql/ChangeLog + + 2015-10-26 Patrick Galbraith, Michiel Beijen, DBI/DBD community (4.033) + * Full-release to include 03. + + 2015-10-25 Patrick Galbraith, Michiel Beijen, DBI/DBD community (4.032_03) + * Use mysql_get_option to read net_buffer_length and mysql_get_parameter + where available, needed for MySQL 5.7.9. Patch from berntm @ Oracle. + https://github.com/perl5-dbi/DBD-mysql/pull/42 + * Fix mysql_conn_attrs test when run against MySQL 5.1 server. + * Fix for memory leak to $sth->{ParamValues} , RT83051 + https://rt.cpan.org/Public/Bug/Display.html?id=83051 + * Fixes for running test suite on MySQL 5.7. + * Fix running test suite with InnoDB disabled, reported by bor. + +------------------------------------------------------------------- Old: ---- DBD-mysql-4.032.tar.gz New: ---- DBD-mysql-4.033.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-DBD-mysql.spec ++++++ --- /var/tmp/diff_new_pack.0iEZB9/_old 2015-10-30 13:43:45.000000000 +0100 +++ /var/tmp/diff_new_pack.0iEZB9/_new 2015-10-30 13:43:45.000000000 +0100 @@ -17,7 +17,7 @@ Name: perl-DBD-mysql -Version: 4.032 +Version: 4.033 Release: 0 %define cpan_name DBD-mysql Summary: MySQL driver for the Perl5 Database Interface (DBI) ++++++ DBD-mysql-4.032.tar.gz -> DBD-mysql-4.033.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.032/ChangeLog new/DBD-mysql-4.033/ChangeLog --- old/DBD-mysql-4.032/ChangeLog 2015-07-20 22:59:56.000000000 +0200 +++ new/DBD-mysql-4.033/ChangeLog 2015-10-27 04:25:38.000000000 +0100 @@ -1,3 +1,16 @@ +2015-10-26 Patrick Galbraith, Michiel Beijen, DBI/DBD community (4.033) +* Full-release to include 03. + +2015-10-25 Patrick Galbraith, Michiel Beijen, DBI/DBD community (4.032_03) +* Use mysql_get_option to read net_buffer_length and mysql_get_parameter + where available, needed for MySQL 5.7.9. Patch from berntm @ Oracle. + https://github.com/perl5-dbi/DBD-mysql/pull/42 +* Fix mysql_conn_attrs test when run against MySQL 5.1 server. +* Fix for memory leak to $sth->{ParamValues} , RT83051 + https://rt.cpan.org/Public/Bug/Display.html?id=83051 +* Fixes for running test suite on MySQL 5.7. +* Fix running test suite with InnoDB disabled, reported by bor. + 2015-07-20 Patrick Galbraith, Michiel Beijen, DBI/DBD community (4.032) * Full-release to include 02 and 01. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.032/META.json new/DBD-mysql-4.033/META.json --- old/DBD-mysql-4.032/META.json 2015-07-20 23:04:44.000000000 +0200 +++ new/DBD-mysql-4.033/META.json 2015-10-27 04:35:11.000000000 +0100 @@ -51,5 +51,5 @@ "x_IRC" : "irc://irc.perl.org/#dbi", "x_MailingList" : "mailto:[email protected]" }, - "version" : "4.032" + "version" : "4.033" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.032/META.yml new/DBD-mysql-4.033/META.yml --- old/DBD-mysql-4.032/META.yml 2015-07-20 23:04:44.000000000 +0200 +++ new/DBD-mysql-4.033/META.yml 2015-10-27 04:35:11.000000000 +0100 @@ -28,4 +28,4 @@ repository: https://github.com/perl5-dbi/DBD-mysql x_IRC: irc://irc.perl.org/#dbi x_MailingList: mailto:[email protected] -version: 4.032 +version: 4.033 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.032/dbdimp.c new/DBD-mysql-4.033/dbdimp.c --- old/DBD-mysql-4.032/dbdimp.c 2015-06-15 16:43:03.000000000 +0200 +++ new/DBD-mysql-4.033/dbdimp.c 2015-10-27 04:07:04.000000000 +0100 @@ -4629,7 +4629,7 @@ keylen, newSVsv(imp_sth->params[n].value), 0); } } - retsv= newRV_noinc((SV*)pvhv); + retsv= sv_2mortal(newRV_noinc((SV*)pvhv)); } break; case 'S': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.032/lib/Bundle/DBD/mysql.pm new/DBD-mysql-4.033/lib/Bundle/DBD/mysql.pm --- old/DBD-mysql-4.032/lib/Bundle/DBD/mysql.pm 2015-07-20 23:03:02.000000000 +0200 +++ new/DBD-mysql-4.033/lib/Bundle/DBD/mysql.pm 2015-10-27 04:25:38.000000000 +0100 @@ -3,7 +3,7 @@ use strict; use warnings; -our $VERSION = '4.032'; +our $VERSION = '4.033'; 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.032/lib/DBD/mysql.pm new/DBD-mysql-4.033/lib/DBD/mysql.pm --- old/DBD-mysql-4.032/lib/DBD/mysql.pm 2015-07-20 23:00:14.000000000 +0200 +++ new/DBD-mysql-4.033/lib/DBD/mysql.pm 2015-10-27 04:25:38.000000000 +0100 @@ -15,7 +15,7 @@ # SQL_DRIVER_VER is formatted as dd.dd.dddd # for version 5.x please switch to 5.00(_00) version numbering # keep $VERSION in Bundle/DBD/mysql.pm in sync -our $VERSION = '4.032'; +our $VERSION = '4.033'; bootstrap DBD::mysql $VERSION; @@ -1261,76 +1261,84 @@ =item mysql_conn_attrs The option <mysql_conn_attrs> is a hash of attribute names and values which can be -used to send custom connection attributes to the server. - - node1$ cat ./foo.pl - #!/usr/bin/perl - - use DBI; - use Data::Dumper; - - my ($test_dsn, $test_user, $test_password) = ($ARGV[0], $ARGV[1], $ARGV[2]); - - my $dbh= DBI->connect($test_dsn, $test_user, $test_password, - { AutoCommit => 0, - mysql_conn_attrs => { foo => 'bar', wiz => 'bang' }, - }); - - my $results = $dbh->selectall_hashref('SELECT * FROM performance_schema.session_connect_attrs', 'ATTR_NAME'); - print Dumper($results); - - $dbh->disconnect(); - node1$ perl ./foo.pl 'DBI:mysql:test;hostname=127.0.0.1;port=5624' msandbox msandbox - $VAR1 = { - 'program_name' => { - 'ATTR_VALUE' => './foo.pl', - 'PROCESSLIST_ID' => '3', - 'ATTR_NAME' => 'program_name', - 'ORDINAL_POSITION' => '5' - }, - '_os' => { - 'ATTR_VALUE' => 'osx10.8', - 'PROCESSLIST_ID' => '3', - 'ATTR_NAME' => '_os', - 'ORDINAL_POSITION' => '0' - }, - 'wiz' => { - 'ATTR_VALUE' => 'bang', - 'PROCESSLIST_ID' => '3', - 'ATTR_NAME' => 'wiz', - 'ORDINAL_POSITION' => '3' - }, - '_platform' => { - 'ATTR_VALUE' => 'x86_64', - 'PROCESSLIST_ID' => '3', - 'ATTR_NAME' => '_platform', - 'ORDINAL_POSITION' => '4' - }, - '_client_name' => { - 'ATTR_VALUE' => 'libmysql', - 'PROCESSLIST_ID' => '3', - 'ATTR_NAME' => '_client_name', - 'ORDINAL_POSITION' => '1' - }, - '_pid' => { - 'ATTR_VALUE' => '59860', - 'PROCESSLIST_ID' => '3', - 'ATTR_NAME' => '_pid', - 'ORDINAL_POSITION' => '2' - }, - 'foo' => { - 'ATTR_VALUE' => 'bar', - 'PROCESSLIST_ID' => '3', - 'ATTR_NAME' => 'foo', - 'ORDINAL_POSITION' => '6' - }, - '_client_version' => { - 'ATTR_VALUE' => '5.6.24', - 'PROCESSLIST_ID' => '3', - 'ATTR_NAME' => '_client_version', - 'ORDINAL_POSITION' => '7' - } - }; +used to send custom connection attributes to the server. Some attributes like +'_os', '_platform', '_client_name' and '_client_version' are added by libmysqlclient +and 'program_name' is added by DBD::mysql. + +You can then later read these attributes from the performance schema tables which +can be quite helpful for profiling your database or creating statistics. +You'll have to use a MySQL 5.6 server and libmysqlclient or newer to leverage this +feature. + + my $dbh= DBI->connect($dsn, $user, $password, + { AutoCommit => 0, + mysql_conn_attrs => { + foo => 'bar', + wiz => 'bang' + }, + }); + +Now you can select the results from the performance schema tables. You can do this +in the same session, but also afterwards. It can be very useful to answer questions +like 'which script sent this query?'. + + my $results = $dbh->selectall_hashref( + 'SELECT * FROM performance_schema.session_connect_attrs', + 'ATTR_NAME' + ); + +This returns: + + $result = { + 'foo' => { + 'ATTR_VALUE' => 'bar', + 'PROCESSLIST_ID' => '3', + 'ATTR_NAME' => 'foo', + 'ORDINAL_POSITION' => '6' + }, + 'wiz' => { + 'ATTR_VALUE' => 'bang', + 'PROCESSLIST_ID' => '3', + 'ATTR_NAME' => 'wiz', + 'ORDINAL_POSITION' => '3' + }, + 'program_name' => { + 'ATTR_VALUE' => './foo.pl', + 'PROCESSLIST_ID' => '3', + 'ATTR_NAME' => 'program_name', + 'ORDINAL_POSITION' => '5' + }, + '_client_name' => { + 'ATTR_VALUE' => 'libmysql', + 'PROCESSLIST_ID' => '3', + 'ATTR_NAME' => '_client_name', + 'ORDINAL_POSITION' => '1' + }, + '_client_version' => { + 'ATTR_VALUE' => '5.6.24', + 'PROCESSLIST_ID' => '3', + 'ATTR_NAME' => '_client_version', + 'ORDINAL_POSITION' => '7' + }, + '_os' => { + 'ATTR_VALUE' => 'osx10.8', + 'PROCESSLIST_ID' => '3', + 'ATTR_NAME' => '_os', + 'ORDINAL_POSITION' => '0' + }, + '_pid' => { + 'ATTR_VALUE' => '59860', + 'PROCESSLIST_ID' => '3', + 'ATTR_NAME' => '_pid', + 'ORDINAL_POSITION' => '2' + }, + '_platform' => { + 'ATTR_VALUE' => 'x86_64', + 'PROCESSLIST_ID' => '3', + 'ATTR_NAME' => '_platform', + 'ORDINAL_POSITION' => '4' + } + }; =back @@ -1591,7 +1599,7 @@ rows: 1 Extra: Using index condition 1 row in set (0.00 sec) - + MariaDB [test]> explain select * from test where value0 = 3 -> \G *************************** 1. row *************************** @@ -1944,7 +1952,7 @@ =head2 Issues with multiple result sets Please be aware ther could be issues if your result sets are "jagged", -meaning the number of columns of your results vary. Varying numbers of +meaning the number of columns of your results vary. Varying numbers of columns could result in your script crashing. @@ -2018,7 +2026,7 @@ For the past nine years DBD::mysql has been maintained by Patrick Galbraith (I<[email protected]>), and recently with the great help of Michiel Beijen (I<[email protected]>), along with the entire community -of Perl developers who keep sending patches to help continue improving DBD::mysql +of Perl developers who keep sending patches to help continue improving DBD::mysql =head1 CONTRIBUTIONS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.032/mysql.xs new/DBD-mysql-4.033/mysql.xs --- old/DBD-mysql-4.032/mysql.xs 2015-05-11 15:13:02.000000000 +0200 +++ new/DBD-mysql-4.033/mysql.xs 2015-10-27 04:07:04.000000000 +0100 @@ -872,6 +872,11 @@ IV type = 0; SV* retsv=NULL; bool using_322=0; +#if !defined(net_buffer_length) + /* From MySQL 5.7.9 net_buffer_length is no longer a macro that + can be used. Instead we declare a local variable. */ + IV net_buffer_length; +#endif if (SvMAGICAL(sql_info_type)) mg_get(sql_info_type); @@ -897,12 +902,15 @@ ); break; case SQL_IDENTIFIER_QUOTE_CHAR: - /*XXX What about a DB started in ANSI mode? */ - /* Swiped from MyODBC's get_info.c */ - using_322 = ((strncmp(mysql_get_server_info(imp_dbh->pmysql),"3.22",4) == 0) ? 1 : 0 ); - retsv = newSVpv(!using_322 ? "`" : " ", 1); + retsv = newSVpv("`", 1); break; case SQL_MAXIMUM_STATEMENT_LENGTH: +#if !defined(net_buffer_length) + /* From MySQL 5.7.9 net_buffer_length is no longer a macro + that can be used. Instead we use mysql_get_option to retrieve the + value into a local varaible. */ + mysql_get_option(NULL, MYSQL_OPT_NET_BUFFER_LENGTH, &net_buffer_length); +#endif retsv = newSViv(net_buffer_length); break; case SQL_MAXIMUM_TABLES_IN_SELECT: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.032/t/10connect.t new/DBD-mysql-4.033/t/10connect.t --- old/DBD-mysql-4.032/t/10connect.t 2015-05-11 15:13:02.000000000 +0200 +++ new/DBD-mysql-4.033/t/10connect.t 2015-10-27 04:07:04.000000000 +0100 @@ -47,9 +47,16 @@ like($driver_ver, qr/^04\./, 'SQL_DRIVER_VER starts with "04." (update for 5.x)'); -my $result = $dbh->selectall_arrayref('select @@storage_engine'); -my $storage_engine = $result->[0]->[0] || 'unknown'; -diag "Default storage engine is: $storage_engine"; +# storage engine function is @@storage_engine in up to 5.5.03 +# at that version, @@default_storage_engine is introduced +# http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_storage_engine +# in MySQL Server 5.7.5 the old option is removed +# http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_storage_engine + +my $storage_engine = $dbh->{mysql_serverversion} >= 50503 ? '@@default_storage_engine' : '@@storage_engine'; +my $result = $dbh->selectall_arrayref('select ' . $storage_engine); +my $default_storage_engine = $result->[0]->[0] || 'unknown'; +diag "Default storage engine is: $default_storage_engine"; my $info_hashref = $dbh->{mysql_dbd_stats}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.032/t/40bit.t new/DBD-mysql-4.033/t/40bit.t --- old/DBD-mysql-4.032/t/40bit.t 2015-05-11 15:13:02.000000000 +0200 +++ new/DBD-mysql-4.033/t/40bit.t 2015-10-27 04:07:04.000000000 +0100 @@ -29,11 +29,7 @@ ok $dbh->do("DROP TABLE IF EXISTS dbd_mysql_b1"), "Drop table if exists dbd_mysql_b1"; -my $create = <<EOT; -create table dbd_mysql_b1 (b bit(8)) engine=innodb; -EOT - -ok ($dbh->do($create)); +ok( $dbh->do('CREATE TABLE dbd_mysql_b1 (b BIT(8))') ); ok ($dbh->do("insert into dbd_mysql_b1 set b = b'11111111'")); ok ($dbh->do("insert into dbd_mysql_b1 set b = b'1010'")); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.032/t/40catalog.t new/DBD-mysql-4.033/t/40catalog.t --- old/DBD-mysql-4.032/t/40catalog.t 2015-05-11 15:13:02.000000000 +0200 +++ new/DBD-mysql-4.033/t/40catalog.t 2015-10-27 04:07:04.000000000 +0100 @@ -34,7 +34,7 @@ skip "Server is too old to support INFORMATION_SCHEMA for foreign keys", 16 if !MinimumVersion($dbh, '5.0'); - my $have_innodb; + my $have_innodb = 0; if (!MinimumVersion($dbh, '5.6')) { my $dummy; ($dummy,$have_innodb)= @@ -45,15 +45,16 @@ if (!$engines) { DbiError($dbh->err, $dbh->errstr); } else { - foreach my $engine (@$engines) { - if (lc($engine->[0]) eq 'innodb') { - $have_innodb = 'YES'; - } + STORAGE_ENGINE: + for my $engine (@$engines) { + next STORAGE_ENGINE if lc $engine->[0] ne 'innodb'; + next STORAGE_ENGINE if lc $engine->[1] eq 'no'; + $have_innodb = 1; } } } skip "Server doesn't support InnoDB, needed for testing foreign keys", 16 - unless defined $have_innodb && $have_innodb eq "YES"; + if !$have_innodb; ok($dbh->do(qq{DROP TABLE IF EXISTS child, parent}), "cleaning up"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.032/t/mysql.mtest new/DBD-mysql-4.033/t/mysql.mtest --- old/DBD-mysql-4.032/t/mysql.mtest 2015-07-20 23:02:02.000000000 +0200 +++ new/DBD-mysql-4.033/t/mysql.mtest 2015-10-27 04:13:21.000000000 +0100 @@ -1,18 +1,18 @@ { local $opt = { + 'embedded' => '', 'mysql_config' => 'mysql_config', - 'ssl' => 0, - 'testport' => '', + 'libs' => '-L/usr/lib/x86_64-linux-gnu -lmariadbclient', + 'testhost' => '', 'testsocket' => '', + 'ssl' => 0, + 'testuser' => 'root', + 'nocatchstderr' => 0, 'ldflags' => '', 'testpassword' => 'root', - 'libs' => '-L/usr/lib/x86_64-linux-gnu -lmariadbclient', - 'nocatchstderr' => 0, - 'testuser' => 'root', - 'nofoundrows' => 0, - 'testhost' => '', 'cflags' => '-I/usr/include/mysql', - 'embedded' => '', - 'testdb' => 'test' + 'testdb' => 'test', + 'testport' => '', + 'nofoundrows' => 0 }; $::test_host = $opt->{'testhost'}; $::test_port = $opt->{'testport'};
