fix for Bug #55672 "mysql_upgrade dies with internal error":
it couldn't parse the --ssl option.
client/mysql_upgrade.c:
mysql_upgrade parses its options and passes some of them to the underlying
tools (mysqlcheck etc). To do this passdown, it reconstructs a
command-line-suitable text from the my_option object (which
contains the option's name and option's value). For options
which expect no parameter, it just had to use the option's name;
for other options, it had to concatenate the option's name,
a "=" symbol, and the option's value; it had code to handle
this latter case, but only for GET_STR options (options taking a
string as value). But since the work on WL 4738, the --ssl
option, a GET_BOOL, which used to have no parameter (NO_ARG), can
now have one (OPT_ARG), so with --ssl we came to the "default"
label, error. Fixed by constructing the command-line-suitable
representation for GET_BOOL too. For --ssl it will produce
--ssl=1 ; for --ssl=0, it will produce --ssl=0.
mysql-test/include/mysql_upgrade_preparation.inc:
handles requirements of tests which use mysql_upgrade
mysql-test/r/mysql_upgrade_ssl.result:
result; without the code fix we would get "internal error".
mysql-test/t/mysql_upgrade.test:
This test has requirements before running; moved them
to an include file in order to share with mysql_upgrade_ssl.
mysql-test/t/mysql_upgrade_ssl.test:
test for bug. Couldn't go into mysql_upgrade.test as this new test requires
SSL support. --force is needed, in case mysql_upgrade.test run before
(in which case mysql_upgrade_ssl would say that upgrade has already been
done); --force forces the upgrade in all cases.
2010-08-11 19:56:56 +02:00
|
|
|
# Include this in any test using mysql_upgrade
|
|
|
|
|
|
|
|
# Can't run test of external client with embedded server
|
|
|
|
-- source include/not_embedded.inc
|
|
|
|
#
|
|
|
|
# Hack:
|
|
|
|
#
|
|
|
|
# If running with Valgrind ($VALGRIND_TEST <> 0) then the resource
|
|
|
|
# consumption (CPU) for upgrading a large log table will be intense.
|
|
|
|
# Therefore, truncate the log table in advance and issue a statement
|
|
|
|
# that should be logged.
|
|
|
|
#
|
2010-11-17 11:16:13 +01:00
|
|
|
if ($VALGRIND_TEST)
|
fix for Bug #55672 "mysql_upgrade dies with internal error":
it couldn't parse the --ssl option.
client/mysql_upgrade.c:
mysql_upgrade parses its options and passes some of them to the underlying
tools (mysqlcheck etc). To do this passdown, it reconstructs a
command-line-suitable text from the my_option object (which
contains the option's name and option's value). For options
which expect no parameter, it just had to use the option's name;
for other options, it had to concatenate the option's name,
a "=" symbol, and the option's value; it had code to handle
this latter case, but only for GET_STR options (options taking a
string as value). But since the work on WL 4738, the --ssl
option, a GET_BOOL, which used to have no parameter (NO_ARG), can
now have one (OPT_ARG), so with --ssl we came to the "default"
label, error. Fixed by constructing the command-line-suitable
representation for GET_BOOL too. For --ssl it will produce
--ssl=1 ; for --ssl=0, it will produce --ssl=0.
mysql-test/include/mysql_upgrade_preparation.inc:
handles requirements of tests which use mysql_upgrade
mysql-test/r/mysql_upgrade_ssl.result:
result; without the code fix we would get "internal error".
mysql-test/t/mysql_upgrade.test:
This test has requirements before running; moved them
to an include file in order to share with mysql_upgrade_ssl.
mysql-test/t/mysql_upgrade_ssl.test:
test for bug. Couldn't go into mysql_upgrade.test as this new test requires
SSL support. --force is needed, in case mysql_upgrade.test run before
(in which case mysql_upgrade_ssl would say that upgrade has already been
done); --force forces the upgrade in all cases.
2010-08-11 19:56:56 +02:00
|
|
|
{
|
|
|
|
--disable_query_log
|
|
|
|
--disable_result_log
|
|
|
|
--disable_abort_on_error
|
|
|
|
TRUNCATE TABLE mysql.general_log;
|
|
|
|
SELECT 1;
|
|
|
|
--enable_abort_on_error
|
|
|
|
--enable_result_log
|
|
|
|
--enable_query_log
|
|
|
|
}
|