mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
cleanup: mysql_upgrade.test
make it strict, don't just ignore all the pesky numbers it shows, replace the current mariadb version with X.Y.Z, replace first two components of the current version with X.Y replace the first component (or first-1, if the second is 0) with X fix perl to write mysql_upgrade_info files in binary mode, otherwise mariadb-upgrade reads them incorrectly on Windows.
This commit is contained in:
@@ -4,6 +4,10 @@
|
||||
-- source include/have_partition.inc
|
||||
-- source include/no_valgrind_without_big.inc
|
||||
|
||||
let majorminor=`select substring_index(version(), '.', 2)`;
|
||||
# for major upgrade test, see below
|
||||
let major=`select substring_index(version(), '.', 1) - (version() like '%.0.%')`;
|
||||
|
||||
set sql_mode="";
|
||||
|
||||
#
|
||||
@@ -18,7 +22,7 @@ let $MYSQLD_DATADIR= `select @@datadir`;
|
||||
file_exists $MYSQLD_DATADIR/mysql_upgrade_info;
|
||||
|
||||
--echo Run it again - should say already completed
|
||||
--replace_regex /upgraded to [^\n].*/upgraded to VERSION./ /again for [^\n]*/again for VERSION./
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB
|
||||
--exec $MYSQL_UPGRADE 2>&1
|
||||
|
||||
# It should have created a file in the MySQL Servers datadir
|
||||
@@ -288,10 +292,11 @@ FLUSH PRIVILEGES;
|
||||
|
||||
--error 1
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --silent
|
||||
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB /
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB
|
||||
--error 1
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed
|
||||
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / /'mariadb.* as:[^\n]*/'mariadb' as: mariadb/
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB
|
||||
--replace_regex /'mariadb.* as:[^\n]*/'mariadb' as: mariadb/
|
||||
--error 1
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose
|
||||
|
||||
@@ -319,16 +324,18 @@ perl;
|
||||
my $file= $ENV{'DATADIR'} or die "MYSQLD_DATADIR not set";
|
||||
$ver =~ s/^(\d*)\.(\d*).(\d*)(.*)/$1.$2.0$4/;
|
||||
open(FILE, ">$file/mysql_upgrade_info") or die "Failed to open $file";
|
||||
binmode FILE;
|
||||
print FILE "$ver\n";
|
||||
close(FILE);
|
||||
EOF
|
||||
|
||||
--error 1
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --silent
|
||||
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / /'mariadb.* as:[^\n]*/'mariadb' as: mariadb/
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB $majorminor X.Y
|
||||
--replace_regex /'mariadb.* as:[^\n]*/'mariadb' as: mariadb/
|
||||
--error 1
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose
|
||||
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB /
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB $majorminor X.Y
|
||||
--exec $MYSQL_UPGRADE
|
||||
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info
|
||||
|
||||
@@ -343,16 +350,18 @@ let DATADIR= $MYSQLD_DATADIR;
|
||||
perl;
|
||||
my $ver= $ENV{'MYSQL_SERVER_VERSION'} or die "MYSQL_SERVER_VERSION not set";
|
||||
my $file= $ENV{'DATADIR'} or die "MYSQLD_DATADIR not set";
|
||||
$ver =~ s/^(\d*)\.(\d*).(\d*)(.*)/$1.0.$3$4/;
|
||||
$ver =~ s/^(\d*)\.(\d*).(\d*)(.*)/$1.0.99/;
|
||||
open(FILE, ">$file/mysql_upgrade_info") or die "Failed to open $file";
|
||||
binmode FILE;
|
||||
print FILE "$ver\n";
|
||||
close(FILE);
|
||||
EOF
|
||||
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --silent
|
||||
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB /
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB $major X
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed
|
||||
--replace_regex /\d\d\.\d*\.\d*[^ .\n]*/MariaDB / /'mariadb.* as:[^\n]*/'mysql' as: mysql/
|
||||
--replace_result $MYSQL_SERVER_VERSION X.Y.Z-MariaDB $major X
|
||||
--replace_regex /'mariadb.* as:[^\n]*/'mysql' as: mysql/
|
||||
--exec $MYSQL_UPGRADE --check-if-upgrade-is-needed --verbose
|
||||
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info
|
||||
drop table mysql.global_priv;
|
||||
|
Reference in New Issue
Block a user