Hello community, here is the log from the commit of package perl-DBD-mysql for openSUSE:Factory checked in at 2019-01-15 09:12:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-DBD-mysql (Old) and /work/SRC/openSUSE:Factory/.perl-DBD-mysql.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-DBD-mysql" Tue Jan 15 09:12:47 2019 rev:55 rq:664310 version:4.050 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-DBD-mysql/perl-DBD-mysql.changes 2018-12-08 11:20:51.322811531 +0100 +++ /work/SRC/openSUSE:Factory/.perl-DBD-mysql.new.28833/perl-DBD-mysql.changes 2019-01-15 09:13:06.930417038 +0100 @@ -1,0 +2,18 @@ +Thu Jan 10 06:04:35 UTC 2019 - Stephan Kulow <[email protected]> + +- updated to 4.050 + see /usr/share/doc/packages/perl-DBD-mysql/Changes + + DBI/DBD community (4.050) + * Fix SQL syntax for statements that have "...limit = ?" #288 + * Make tests pass on MySQL 4.1 #286 + * Travis-CI: Install Test::Deep #281 + * Fix undefined ssl_verify_set on MySQL 5.0 and before #283 + * Fix compilation on MySQL 4.1 #283 + * Move Travis to dbdeployer (#284) #284 + * Fix compiling on 8.0.0 and 8.0.1 #285 + * Fix compatibility with MariaDB 10.3 #291 + + 2018-10-25 Daniël van Eeden, Patrick Galbraith, + +------------------------------------------------------------------- Old: ---- DBD-mysql-4.049.tar.gz New: ---- DBD-mysql-4.050.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-DBD-mysql.spec ++++++ --- /var/tmp/diff_new_pack.5WUsw7/_old 2019-01-15 09:13:07.286416709 +0100 +++ /var/tmp/diff_new_pack.5WUsw7/_new 2019-01-15 09:13:07.286416709 +0100 @@ -1,7 +1,7 @@ # # spec file for package perl-DBD-mysql # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: perl-DBD-mysql -Version: 4.049 +Version: 4.050 Release: 0 %define cpan_name DBD-mysql Summary: MySQL driver for the Perl5 Database Interface (DBI) ++++++ DBD-mysql-4.049.tar.gz -> DBD-mysql-4.050.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.049/Changes new/DBD-mysql-4.050/Changes --- old/DBD-mysql-4.049/Changes 2018-11-17 19:49:27.000000000 +0100 +++ new/DBD-mysql-4.050/Changes 2019-01-09 07:46:33.000000000 +0100 @@ -1,4 +1,15 @@ 2018-10-25 Daniël van Eeden, Patrick Galbraith, +DBI/DBD community (4.050) +* Fix SQL syntax for statements that have "...limit = ?" #288 +* Make tests pass on MySQL 4.1 #286 +* Travis-CI: Install Test::Deep #281 +* Fix undefined ssl_verify_set on MySQL 5.0 and before #283 +* Fix compilation on MySQL 4.1 #283 +* Move Travis to dbdeployer (#284) #284 +* Fix compiling on 8.0.0 and 8.0.1 #285 +* Fix compatibility with MariaDB 10.3 #291 + +2018-10-25 Daniël van Eeden, Patrick Galbraith, DBI/DBD community (4.049) * Fix MariaDB issue #262 * Various fixes for travis builds diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.049/META.json new/DBD-mysql-4.050/META.json --- old/DBD-mysql-4.049/META.json 2018-11-17 19:56:13.000000000 +0100 +++ new/DBD-mysql-4.050/META.json 2019-01-09 10:00:28.000000000 +0100 @@ -72,7 +72,7 @@ "x_IRC" : "irc://irc.perl.org/#dbi", "x_MailingList" : "mailto:[email protected]" }, - "version" : "4.049", + "version" : "4.050", "x_contributors" : [ "Alceu Rodrigues de Freitas Junior <[email protected]>", "Alexandr Ciornii <[email protected]>", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.049/META.yml new/DBD-mysql-4.050/META.yml --- old/DBD-mysql-4.049/META.yml 2018-11-17 19:56:13.000000000 +0100 +++ new/DBD-mysql-4.050/META.yml 2019-01-09 10:00:27.000000000 +0100 @@ -34,7 +34,7 @@ homepage: http://dbi.perl.org/ license: http://dev.perl.org/licenses/ repository: https://github.com/perl5-dbi/DBD-mysql.git -version: '4.049' +version: '4.050' x_contributors: - 'Alceu Rodrigues de Freitas Junior <[email protected]>' - 'Alexandr Ciornii <[email protected]>' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.049/Makefile.PL new/DBD-mysql-4.050/Makefile.PL --- old/DBD-mysql-4.049/Makefile.PL 2018-11-02 13:31:28.000000000 +0100 +++ new/DBD-mysql-4.050/Makefile.PL 2019-01-09 07:45:48.000000000 +0100 @@ -617,10 +617,11 @@ $str =~ s/\-L\"(.*?)\"/-L$1/sg; # Separate libs from ldflags + # Ignore static libs like libgnutls.a as reported by MariaDB's mysql_config if ($param eq 'libs') { my (@libs, @ldflags); for (split ' ', $str) { - if (/^-[Ll]/ || /^[^\-]/) { push @libs, $_ } + if (/^-[Ll]/ || /^[^\-]/) { push @libs, $_ unless /\.a$/ } else { push @ldflags, $_ } } $str = "@libs"; @@ -628,6 +629,13 @@ $source->{ldflags} = "mysql_config"; } + if ($command =~ /10.3/) { + # MariaDB's mysql_config/mariadb_config reports the compile time + # locations, not the install location. This results in issues for + # dbdeployer etc. where these are not the same. + my $installdir = substr(dirname($opt->{'mysql_config'}), 1, -4); + $str =~ s#usr/local/mysql#$installdir#g; + } $opt->{$param} = $str; $source->{$param} = "mysql_config"; return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.049/dbdimp.c new/DBD-mysql-4.050/dbdimp.c --- old/DBD-mysql-4.049/dbdimp.c 2018-11-17 19:49:08.000000000 +0100 +++ new/DBD-mysql-4.050/dbdimp.c 2019-01-09 07:45:48.000000000 +0100 @@ -604,9 +604,9 @@ /* it would be good to be able to handle any number of cases and orders */ - if ((*statement_ptr == 'l' || *statement_ptr == 'L') && - (!strncmp(statement_ptr+1, "imit ", 5) || - !strncmp(statement_ptr+1, "IMIT ", 5))) + if (((*statement_ptr == ' ') || (*statement_ptr == '\n') || (*statement_ptr == '\t')) && + (!strncmp(statement_ptr+1, "limit ", 5) || + !strncmp(statement_ptr+1, "LIMIT ", 5))) { limit_flag = 1; } @@ -780,6 +780,7 @@ /* in case this is a nested LIMIT */ case ')': + case '=': limit_flag = 0; *ptr++ = *statement_ptr++; break; @@ -1908,7 +1909,7 @@ } #ifndef MARIADB_BASE_VERSION -#if (MYSQL_VERSION_ID >= 50723) +#ifdef MYSQL_OPT_GET_SERVER_PUBLIC_KEY if ((svp = hv_fetch(hv, "mysql_get_server_pubkey", 23, FALSE)) && *svp && SvTRUE(*svp)) { my_bool server_get_pubkey = 1; mysql_options(sock, MYSQL_OPT_GET_SERVER_PUBLIC_KEY, &server_get_pubkey); @@ -2036,7 +2037,11 @@ #endif if (ssl_verify) { + #ifdef HAVE_SSL_VERIFY if (!ssl_verify_usable() && ssl_enforce && ssl_verify_set) { + #else + if (!ssl_verify_usable() && ssl_enforce) { + #endif set_ssl_error(sock, "mysql_ssl_verify_server_cert=1 is broken by current version of MySQL client"); return NULL; } @@ -4050,7 +4055,12 @@ break; default: +#if MYSQL_VERSION_ID > 100300 + // https://jira.mariadb.org/browse/MDEV-18143 + buffer->buffer_length= fields[i].max_length ? fields[i].max_length : 2; +#else buffer->buffer_length= fields[i].max_length ? fields[i].max_length : 1; +#endif Newz(908, fbh->data, buffer->buffer_length, char); buffer->buffer= (char *) fbh->data; } @@ -4436,7 +4446,7 @@ case MYSQL_TYPE_DOUBLE: if (!(fields[i].flags & ZEROFILL_FLAG)) { - /* Coerce to dobule and set scalar as NV */ + /* Coerce to double and set scalar as NV */ (void) SvNV(sv); SvNOK_only(sv); } @@ -5308,6 +5318,16 @@ else imp_dbh= (imp_dbh_t*) imp_xxh; + /* reconnect a closed connection, used in do() for implicit reconnect */ + if (!DBIc_has(imp_dbh, DBIcf_ACTIVE) && DBIc_has(imp_dbh, DBIcf_AutoCommit)) { + if (my_login(aTHX_ h, imp_dbh)) { + DBIc_ACTIVE_on(imp_dbh); + DBIc_set(imp_dbh, DBIcf_AutoCommit, TRUE); + return TRUE; + } + return FALSE; + } + if (mysql_errno(imp_dbh->pmysql) != CR_SERVER_GONE_ERROR && mysql_errno(imp_dbh->pmysql) != CR_SERVER_LOST) /* Other error */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.049/dbdimp.h new/DBD-mysql-4.050/dbdimp.h --- old/DBD-mysql-4.049/dbdimp.h 2018-11-17 19:49:08.000000000 +0100 +++ new/DBD-mysql-4.050/dbdimp.h 2019-01-08 20:26:37.000000000 +0100 @@ -67,6 +67,11 @@ #define my_bool bool #endif +/* MYSQL_TYPE_BIT is not available on MySQL 4.1 */ +#ifndef MYSQL_TYPE_BIT +#define MYSQL_TYPE_BIT 16 +#endif + #define true 1 #define false 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.049/lib/Bundle/DBD/mysql.pm new/DBD-mysql-4.050/lib/Bundle/DBD/mysql.pm --- old/DBD-mysql-4.049/lib/Bundle/DBD/mysql.pm 2018-11-17 19:49:27.000000000 +0100 +++ new/DBD-mysql-4.050/lib/Bundle/DBD/mysql.pm 2019-01-09 07:45:48.000000000 +0100 @@ -3,7 +3,7 @@ use strict; use warnings; -our $VERSION = '4.049'; +our $VERSION = '4.050'; 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.049/lib/DBD/mysql.pm new/DBD-mysql-4.050/lib/DBD/mysql.pm --- old/DBD-mysql-4.049/lib/DBD/mysql.pm 2018-11-17 19:49:27.000000000 +0100 +++ new/DBD-mysql-4.050/lib/DBD/mysql.pm 2019-01-09 07:45:48.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.049'; +our $VERSION = '4.050'; bootstrap DBD::mysql $VERSION; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.049/mysql.xs new/DBD-mysql-4.050/mysql.xs --- old/DBD-mysql-4.049/mysql.xs 2018-10-07 13:28:35.000000000 +0200 +++ new/DBD-mysql-4.050/mysql.xs 2019-01-09 07:45:48.000000000 +0100 @@ -272,6 +272,9 @@ MYSQL_BIND *bind= NULL; #endif ASYNC_CHECK_XS(dbh); + if ((!DBIc_has(imp_dbh, DBIcf_ACTIVE)) && + (!mysql_db_reconnect(dbh))) + XSRETURN_UNDEF; #if MYSQL_VERSION_ID >= MULTIPLE_RESULT_SET_VERSION while (mysql_next_result(imp_dbh->pmysql)==0) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.049/t/15reconnect.t new/DBD-mysql-4.050/t/15reconnect.t --- old/DBD-mysql-4.049/t/15reconnect.t 2018-10-07 13:28:35.000000000 +0200 +++ new/DBD-mysql-4.050/t/15reconnect.t 2019-01-09 07:45:48.000000000 +0100 @@ -16,7 +16,7 @@ if ($@) { plan skip_all => "no database connection"; } -plan tests => 8 * 2; +plan tests => 13 * 2; for my $mysql_server_prepare (0, 1) { $dbh= DBI->connect("$test_dsn;mysql_server_prepare=$mysql_server_prepare;mysql_server_prepare_disable_fallback=1", $test_user, $test_password, @@ -38,5 +38,13 @@ ok($dbh->{Active}, "checking for reactivated handle"); -$dbh->disconnect(); +ok(!($dbh->{AutoCommit} = 0), "disabling autocommit"); + +ok($dbh->disconnect(), "disconnecting active handle"); + +ok(!$dbh->{Active}, "checking for inactive handle"); + +ok(!$dbh->do("SELECT 1"), "implicitly reconnecting handle with 'do'"); + +ok(!$dbh->{Active}, "checking for reactivated handle"); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.049/t/35limit.t new/DBD-mysql-4.050/t/35limit.t --- old/DBD-mysql-4.049/t/35limit.t 2018-10-07 13:28:35.000000000 +0200 +++ new/DBD-mysql-4.050/t/35limit.t 2019-01-02 21:43:51.000000000 +0100 @@ -19,15 +19,15 @@ if ($@) { plan skip_all => "no database connection"; } -plan tests => 111; +plan tests => 115; ok(defined $dbh, "Connected to database"); ok($dbh->do("DROP TABLE IF EXISTS dbd_mysql_t35"), "making slate clean"); -ok($dbh->do("CREATE TABLE dbd_mysql_t35 (id INT(4), name VARCHAR(64))"), "creating table"); +ok($dbh->do("CREATE TABLE dbd_mysql_t35 (id INT(4), name VARCHAR(64), name_limit VARCHAR(64))"), "creating table"); -ok(($sth = $dbh->prepare("INSERT INTO dbd_mysql_t35 VALUES (?,?)"))); +ok(($sth = $dbh->prepare("INSERT INTO dbd_mysql_t35 VALUES (?,?,?)"))); for my $i (0..99) { my @chars = grep !/[0O1Iil]/, 0..9, 'A'..'Z', 'a'..'z'; @@ -35,7 +35,7 @@ # save these values for later testing $testInsertVals->{$i} = $random_chars; - ok(($rows = $sth->execute($i, $random_chars))); + ok(($rows = $sth->execute($i, $random_chars, $random_chars))); } ok($sth = $dbh->prepare("SELECT * FROM dbd_mysql_t35 LIMIT ?, ?"), @@ -51,6 +51,24 @@ ok($sth->finish); +ok($dbh->do("UPDATE dbd_mysql_t35 SET name_limit = ? WHERE id = ?", undef, "updated_string", 1)); + +ok($dbh->do("UPDATE dbd_mysql_t35 SET name = ? WHERE name_limit > ?", undef, "updated_string", 999999)); + +# newline before LIMIT +ok($dbh->do(<<'SQL' +UPDATE dbd_mysql_t35 SET name = ? +LIMIT ? +SQL +, undef, "updated_string", 0)); + +# tab before LIMIT +ok($dbh->do(<<'SQL' + UPDATE dbd_mysql_t35 SET name = ? + LIMIT ? +SQL +, undef, "updated_string", 0)); + ok($dbh->do("DROP TABLE dbd_mysql_t35")); ok($dbh->disconnect); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-mysql-4.049/t/50chopblanks.t new/DBD-mysql-4.050/t/50chopblanks.t --- old/DBD-mysql-4.049/t/50chopblanks.t 2018-11-17 19:49:08.000000000 +0100 +++ new/DBD-mysql-4.050/t/50chopblanks.t 2018-12-26 13:43:28.000000000 +0100 @@ -14,8 +14,8 @@ if ($@) { plan skip_all => "no database connection"; } -if ($dbh->{mysql_serverversion} < 40103) { - plan skip_all => "You must have MySQL version 4.1.3 and greater for this test to run"; +if ($dbh->{mysql_serverversion} < 50000) { + plan skip_all => "You must have MySQL version 5.0.0 and greater for this test to run"; } for my $mysql_server_prepare (0, 1) {
