24794975 Update DBD::mysql to 4.0.37
authorVladimir Marek <Vladimir.Marek@oracle.com>
Tue, 04 Oct 2016 14:04:16 +0200
changeset 7129 6587d6b48782
parent 7126 c0715e78cafb
child 7130 73b1ef197337
24794975 Update DBD::mysql to 4.0.37 24794982 problem in PERL-MOD/DBD-MYSQL
components/perl_modules/dbd-mysql/DBD-mysql-PERLVER.p5m
components/perl_modules/dbd-mysql/Makefile
components/perl_modules/dbd-mysql/patches/01_test05.patch
components/perl_modules/dbd-mysql/patches/02_int_min_max_test.patch
components/perl_modules/dbd-mysql/patches/05_31insertid.t.patch
components/perl_modules/dbd-mysql/test/results-all.master
--- a/components/perl_modules/dbd-mysql/DBD-mysql-PERLVER.p5m	Tue Oct 18 13:46:28 2016 -0500
+++ b/components/perl_modules/dbd-mysql/DBD-mysql-PERLVER.p5m	Tue Oct 04 14:04:16 2016 +0200
@@ -40,11 +40,9 @@
 
 #file path=usr/perl5/$(PERLVER)/lib/$(PERL_ARCH)/perllocal.pod
 file path=usr/perl5/$(PERLVER)/man/man3/Bundle::DBD::mysql.3
-file path=usr/perl5/$(PERLVER)/man/man3/DBD::README.3
 file path=usr/perl5/$(PERLVER)/man/man3/DBD::mysql.3
 file path=usr/perl5/$(PERLVER)/man/man3/DBD::mysql::INSTALL.3
 file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/Bundle/DBD/mysql.pm
-file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/DBD/README.pod
 file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/DBD/mysql.pm
 file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/DBD/mysql/GetInfo.pm
 file path=usr/perl5/vendor_perl/$(PERLVER)/$(PERL_ARCH)/DBD/mysql/INSTALL.pod
--- a/components/perl_modules/dbd-mysql/Makefile	Tue Oct 18 13:46:28 2016 -0500
+++ b/components/perl_modules/dbd-mysql/Makefile	Tue Oct 04 14:04:16 2016 +0200
@@ -32,16 +32,16 @@
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		DBD-mysql
-COMPONENT_VERSION=	4.035
-IPS_COMPONENT_VERSION=  4035
+COMPONENT_VERSION=	4.037
+IPS_COMPONENT_VERSION=  4037
 HUMAN_VERSION=		$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE_HASH=	\
-	sha256:b7eca365ea16bcf4c96c2fc0221304ff9c4995e7a551886837804a8f66b61937
+	sha256:df578acef28ed3f6aaae52dc98e6821a1407d3bfa88585255729bb0ebfed3cfc
 COMPONENT_ARCHIVE_URL=	http://search.cpan.org/CPAN/authors/id/M/MI/MICHIELB/$(COMPONENT_ARCHIVE)
 COMPONENT_PROJECT_URL=	https://github.com/perl5-dbi/DBD-mysql
 COMPONENT_BUGDB=	perl-mod/dbd-mysql
 
-TPNO=			30300
+TPNO=			32078
 
 
 # MySQL 5.7 is not available in S11.
--- a/components/perl_modules/dbd-mysql/patches/01_test05.patch	Tue Oct 18 13:46:28 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-https://rt.cpan.org/Public/Bug/Display.html?id=112072
-
---- DBD-mysql-4.033/t/05dbcreate.t	2016-02-13 13:29:56.467130717 -0800
-+++ DBD-mysql-4.033/t/05dbcreate.t	2016-02-13 13:23:45.371688976 -0800
-@@ -10,7 +10,7 @@ use lib 't', '.';
- require 'lib.pl';
- 
- my $dbh;
--eval {$dbh= DBI->connect('DBI:mysql:', $test_user, $test_password,
-+eval {$dbh= DBI->connect($test_dsn, $test_user, $test_password,
-                       { RaiseError => 1, PrintError => 1, AutoCommit => 0 });};
- if ($@) {
-     diag $@;
--- a/components/perl_modules/dbd-mysql/patches/02_int_min_max_test.patch	Tue Oct 18 13:46:28 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-https://rt.cpan.org/Public/Bug/Display.html?id=57266
-
---- DBD-mysql-4.033/t/41int_min_max.t	2016-03-02 17:52:49.620948225 +0100
-+++ DBD-mysql-4.033/t/41int_min_max.t	2016-03-02 17:52:20.582073477 +0100
-@@ -0,0 +1,148 @@
-+use strict;
-+use warnings;
-+use bigint;
-+
-+use DBI;
-+use Test::More;
-+use lib 't', '.';
-+use Data::Dumper;
-+require 'lib.pl';
-+use vars qw($test_dsn $test_user $test_password);
-+
-+my $dbh;
-+eval {$dbh= DBI->connect($test_dsn, $test_user, $test_password,
-+                      { RaiseError => 1, PrintError => 1, AutoCommit => 1 });};
-+if ($@) {
-+    plan skip_all => "no database connection";
-+}
-+
-+if (!MinimumVersion($dbh, '4.1')) {
-+    plan skip_all => "ERROR: $DBI::errstr. Can't continue test";
-+    plan skip_all =>
-+        "SKIP TEST: You must have MySQL version 4.1 and greater for this test to run";
-+}
-+# nostrict tests + strict tests + init/tear down commands
-+plan tests => 19*8 + 17*8 + 4;
-+
-+my $table = 'dbd_mysql_t41minmax'; # name of the table we will be using
-+my $mode; # 'strict' or 'nostrict' corresponds to strict SQL mode
-+
-+sub test_int_type ($$$$) {
-+    my ($perl_type, $mysql_type, $min, $max) = @_;
-+
-+    # Disable the warning text clobbering our output
-+    local $SIG{__WARN__} = sub { 1; };
-+
-+    # Create the table
-+    ok($dbh->do(qq{DROP TABLE IF EXISTS $table}), "removing $table");
-+    ok($dbh->do(qq{
-+            CREATE TABLE `$table` (
-+                `id` int not null auto_increment,
-+                `val` $mysql_type,
-+                primary key (id)
-+            )
-+    }), "creating minmax table for type $mysql_type");
-+
-+    my ($store, $retrieve); # statements
-+    my $read_value;         # retrieved value
-+    ok($store = $dbh->prepare("INSERT INTO $table (val) VALUES (?)"));
-+    ok($retrieve = $dbh->prepare("SELECT val from $table where id=(SELECT MAX(id) FROM $table)"));
-+
-+    ########################################
-+    # Insert allowed min value
-+    ########################################
-+    ok($store->bind_param( 1, $min->bstr(), $perl_type ), "binding minimal $mysql_type, mode=$mode");
-+    ok($store->execute(), "inserting min data for type $mysql_type, mode=$mode");
-+
-+    ########################################
-+    # Read it back and compare
-+    ########################################
-+    ok{$retrieve->execute()};
-+    ($read_value) = $retrieve->fetchrow_array();
-+    cmp_ok($read_value, 'eq', $min, "retrieved minimal value for $mysql_type, mode=$mode");
-+
-+    ########################################
-+    # Insert allowed max value
-+    ########################################
-+    ok($store->bind_param( 1, $max->bstr(), $perl_type ), "binding maximal $mysql_type, mode=$mode");
-+    ok($store->execute(), "inserting max data for type $mysql_type, mode=$mode");
-+
-+    ########################################
-+    # Read it back and compare
-+    ########################################
-+    ok{$retrieve->execute()};
-+    ($read_value) = $retrieve->fetchrow_array();
-+    cmp_ok($read_value, 'eq', $max, "retrieved maximal value for $mysql_type, mode=$mode");
-+
-+    ########################################
-+    # Try to insert under the limit value
-+    ########################################
-+    ok($store->bind_param( 1, ($min-1)->bstr(), $perl_type ), "binding less than minimal $mysql_type, mode=$mode");
-+    if ($mode eq 'strict') {
-+        $@ = '';
-+        eval{$store->execute()};
-+        like($@, qr/Out of range value for column 'val'/, "Error, you stored ".($min-1)." into $mysql_type, mode=$mode\n".
-+            Data::Dumper->Dump([$dbh->selectall_arrayref("SELECT * FROM $table")]).
-+            Data::Dumper->Dump([$dbh->selectall_arrayref("describe $table")])
-+        );
-+    } else {
-+        ok{$store->execute()};
-+        ########################################
-+        # Check that it was rounded correctly
-+        ########################################
-+        ok{$retrieve->execute()};
-+        ($read_value) = $retrieve->fetchrow_array();
-+        cmp_ok($read_value, 'eq', $min, "retrieved minimal value for type $mysql_type, mode=$mode");
-+    };
-+
-+    ########################################
-+    # Try to insert over the limit value
-+    ########################################
-+    ok($store->bind_param( 1, ($max+1)->bstr(), $perl_type ), "binding more than maximal $mysql_type, mode=$mode");
-+    if ($mode eq 'strict') {
-+        $@ = '';
-+        eval{$store->execute()};
-+        like($@, qr/Out of range value for column 'val'/, "Error, you stored ".($max+1)." into $mysql_type, mode=$mode\n".
-+            Data::Dumper->Dump([$dbh->selectall_arrayref("SELECT * FROM $table")]).
-+            Data::Dumper->Dump([$dbh->selectall_arrayref("describe $table")])
-+        );
-+    } else {
-+        ok{$store->execute()};
-+        ########################################
-+        # Check that it was rounded correctly
-+        ########################################
-+        ok{$retrieve->execute()};
-+        ($read_value) = $retrieve->fetchrow_array();
-+        cmp_ok($read_value, 'eq', $max, "retrieved maximal value for type $mysql_type, mode=$mode");
-+    };
-+}
-+
-+# Set strict SQL mode
-+ok($dbh->do("SET SQL_MODE='STRICT_ALL_TABLES'"),"Enter strict SQL mode.");
-+$mode = 'strict';
-+
-+test_int_type(DBI::SQL_TINYINT,  'tinyint signed',     -2**7,  2**7-1);
-+test_int_type(DBI::SQL_TINYINT,  'tinyint unsigned',       0,  2**8-1);
-+test_int_type(DBI::SQL_SMALLINT, 'smallint signed',   -2**15, 2**15-1);
-+test_int_type(DBI::SQL_SMALLINT, 'smallint unsigned',      0, 2**16-1);
-+test_int_type(DBI::SQL_INTEGER,  'int signed',        -2**31, 2**31-1);
-+test_int_type(DBI::SQL_INTEGER,  'int unsigned',           0, 2**32-1);
-+test_int_type(DBI::SQL_BIGINT,   'bigint signed',     -2**63, 2**63-1);
-+test_int_type(DBI::SQL_BIGINT,   'bigint unsigned',        0, 2**64-1);
-+
-+# Do not use strict SQL mode
-+ok($dbh->do("SET SQL_MODE=''"),"Leave strict SQL mode.");
-+$mode = 'nostrict';
-+
-+test_int_type(DBI::SQL_TINYINT,  'tinyint signed',     -2**7,  2**7-1);
-+test_int_type(DBI::SQL_TINYINT,  'tinyint unsigned',       0,  2**8-1);
-+test_int_type(DBI::SQL_SMALLINT, 'smallint signed',   -2**15, 2**15-1);
-+test_int_type(DBI::SQL_SMALLINT, 'smallint unsigned',      0, 2**16-1);
-+test_int_type(DBI::SQL_INTEGER,  'int signed',        -2**31, 2**31-1);
-+test_int_type(DBI::SQL_INTEGER,  'int unsigned',           0, 2**32-1);
-+test_int_type(DBI::SQL_BIGINT,   'bigint signed',     -2**63, 2**63-1);
-+test_int_type(DBI::SQL_BIGINT,   'bigint unsigned',        0, 2**64-1);
-+
-+ok ($dbh->do("DROP TABLE $table"));
-+
-+ok $dbh->disconnect;
--- a/components/perl_modules/dbd-mysql/patches/05_31insertid.t.patch	Tue Oct 18 13:46:28 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-https://rt.cpan.org/Public/Bug/Display.html?id=108000
-https://bugs.mysql.com/bug.php?id=78778
-
-The fix will be available in next DBD::mysql stable release
-
-commit 85459c2f43243e41841180e554e4ef142d95d56b
-Author: Michiel Beijen <[email protected]>
-Date:   Mon Aug 1 08:10:33 2016 +0200
-
-    $dbh->{mysql_insertid} is cleared after SELECT
-    
-    Apparently, on t/31insertid.t, there is one test that fails when
-    compiled against libmysqlclient 5.7 or up; issuing a SELECT statement
-    on the same database handle that previously executed an INSERT clears
-    $dbh->{mysql_insertid}, while previously this was retained.
-      (https://rt.cpan.org/Ticket/Display.html?id=108000)
-
---- a/Changes
-+++ b/Changes
-@@ -1,3 +1,10 @@
-+2016-08-01 Patrick Galbraith, Michiel Beijen, DBI/DBD community (4.035_01)
-+* Apparently, on t/31insertid.t, there is one test that fails when compiled
-+  against libmysqlclient 5.7 or up; issuing a SELECT statement on the same
-+  database handle that previously executed an INSERT clears
-+  $dbh->{mysql_insertid}, while previously this was retained.
-+  (https://rt.cpan.org/Ticket/Display.html?id=108000)
-+
- 2016-07-09 Patrick Galbraith, Michiel Beijen, DBI/DBD community (4.035)
- *  Add DBI back to configure_requires, fix by miyagawa.
-
-diff --git a/lib/DBD/mysql.pm b/lib/DBD/mysql.pm
-index 069e882..4830b9d 100644
---- a/lib/DBD/mysql.pm
-+++ b/lib/DBD/mysql.pm
-@@ -1733,10 +1733,14 @@ have impact on the I<max_length> attribute.
- 
- =item mysql_insertid
- 
--MySQL has the ability to choose unique key values automatically. If this
--happened, the new ID will be stored in this attribute. An alternative
--way for accessing this attribute is via $dbh->{'mysql_insertid'}.
--(Note we are using the $dbh in this case!)
-+If the statement you executed performs an INSERT, and there is an AUTO_INCREMENT
-+column in the table you inserted in, this attribute holds the value stored into
-+the AUTO_INCREMENT column, if that value is automatically generated, by
-+storing NULL or 0 or was specified as an explicit value.
-+
-+Typically, you'd access the value via $sth->{mysql_insertid}. The value can
-+also be accessed via $dbh->{mysql_insertid} but this can easily
-+produce incorrect results in case one database handle is shared.
- 
- =item mysql_is_blob
- 
-diff --git a/t/31insertid.t b/t/31insertid.t
-index 18a6d3b..f00c5a4 100644
---- a/t/31insertid.t
-+++ b/t/31insertid.t
-@@ -16,7 +16,7 @@ if ($@) {
-     plan skip_all =>
-         "no database connection";
- }
--plan tests => 18;
-+plan tests => 19;
- 
- ok $dbh->do('SET @@auto_increment_offset = 1');
- ok $dbh->do('SET @@auto_increment_increment = 1');
-@@ -38,7 +38,8 @@ ok defined $sth;
- 
- ok $sth->execute("Jochen");
- 
--is $dbh->{'mysql_insertid'}, 1, "insert id == $dbh->{mysql_insertid}";
-+is $sth->{mysql_insertid}, 1, "insert id == $sth->{mysql_insertid}";
-+is $dbh->{mysql_insertid}, 1, "insert id == $dbh->{mysql_insertid}";
- 
- ok $sth->execute("Patrick");
- 
-@@ -53,12 +54,15 @@ ok ($max_id= $sth2->fetch());
- 
- ok defined $max_id;
- 
--cmp_ok $sth->{'mysql_insertid'}, '==', $max_id->[0], "sth insert id $sth->{'mysql_insertid'} == max(id) $max_id->[0]  in dbd_mysql_t31";
--
--cmp_ok $dbh->{'mysql_insertid'}, '==', $max_id->[0], "dbh insert id $dbh->{'mysql_insertid'} == max(id) $max_id->[0] in dbd_mysql_t31";
-+SKIP: {
-+  skip 'using libmysqlclient 5.7 or up we now have an empty dbh insertid',
-+    1, if $dbh->{mysql_clientversion} >= 50700;
-+  cmp_ok $dbh->{mysql_insertid}, '==', $max_id->[0],
-+    "dbh insert id $dbh->{'mysql_insertid'} == max(id) $max_id->[0] in dbd_mysql_t31";
-+}
-+cmp_ok $sth->{mysql_insertid}, '==', $max_id->[0],
-+  "sth insert id $sth->{'mysql_insertid'} == max(id) $max_id->[0]  in dbd_mysql_t31";
- 
- ok $sth->finish();
--
- ok $sth2->finish();
--
- ok $dbh->disconnect();
- 
--- a/components/perl_modules/dbd-mysql/test/results-all.master	Tue Oct 18 13:46:28 2016 -0500
+++ b/components/perl_modules/dbd-mysql/test/results-all.master	Tue Oct 04 14:04:16 2016 +0200
@@ -79,6 +79,6 @@
 t/rt91715.t .......................... ok
 t/version.t .......................... ok
 All tests successful.
-Files=67, Tests=1642, <TIMINGS REMOVED>
+Files=67, Tests=1640, <TIMINGS REMOVED>
 Result: PASS
 make[1]: Leaving directory '$(@D)'