Commit a18e5b88 authored by tomas@poseidon.ndb.mysql.com's avatar tomas@poseidon.ndb.mysql.com

Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0

into  poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
parents 5c31b5d6 31a42892
...@@ -333,6 +333,7 @@ our @data_dir_lst; ...@@ -333,6 +333,7 @@ our @data_dir_lst;
sub main (); sub main ();
sub initial_setup (); sub initial_setup ();
sub command_line_setup (); sub command_line_setup ();
sub snapshot_setup ();
sub executable_setup (); sub executable_setup ();
sub environment_setup (); sub environment_setup ();
sub kill_running_server (); sub kill_running_server ();
...@@ -343,7 +344,7 @@ sub ndbcluster_install (); ...@@ -343,7 +344,7 @@ sub ndbcluster_install ();
sub ndbcluster_start ($); sub ndbcluster_start ($);
sub ndbcluster_stop (); sub ndbcluster_stop ();
sub run_benchmarks ($); sub run_benchmarks ($);
sub run_tests (); sub initialize_servers ();
sub mysql_install_db (); sub mysql_install_db ();
sub install_db ($$); sub install_db ($$);
sub run_testcase ($); sub run_testcase ($);
...@@ -374,7 +375,7 @@ sub main () { ...@@ -374,7 +375,7 @@ sub main () {
command_line_setup(); command_line_setup();
executable_setup(); executable_setup();
check_ndbcluster_support(); check_ndbcluster_support(); # We check whether to actually use it later
check_ssl_support(); check_ssl_support();
environment_setup(); environment_setup();
...@@ -390,49 +391,37 @@ sub main () { ...@@ -390,49 +391,37 @@ sub main () {
gprof_prepare(); gprof_prepare();
} }
if ( ! $glob_use_running_server ) if ( $opt_bench )
{
if ( $opt_start_dirty )
{
kill_running_server();
}
else
{
kill_and_cleanup();
mysql_install_db();
if ( $opt_force )
{
save_installed_db();
}
}
}
if ( $opt_start_dirty )
{
if ( ndbcluster_start($opt_with_ndbcluster) )
{
mtr_error("Can't start ndbcluster");
}
if ( mysqld_start('master',0,[],[],$using_ndbcluster_master) )
{
mtr_report("Servers started, exiting");
}
else
{
mtr_error("Can't start the mysqld server");
}
}
elsif ( $opt_bench )
{ {
initialize_servers();
run_benchmarks(shift); # Shift what? Extra arguments?! run_benchmarks(shift); # Shift what? Extra arguments?!
} }
elsif ( $opt_stress ) elsif ( $opt_stress )
{ {
initialize_servers();
run_stress_test() run_stress_test()
} }
else else
{ {
run_tests(); # Figure out which tests we are going to run
my $tests= collect_test_cases($opt_suite);
# Turn off NDB and other similar options if no tests use it
my ($need_ndbcluster,$need_im,$need_slave);
foreach my $test (@$tests)
{
$need_ndbcluster||= $test->{ndb_test};
$need_im||= $test->{component_id} eq 'im';
$need_slave||= $test->{slave_num};
}
$opt_with_ndbcluster= 0 unless $need_ndbcluster;
$opt_skip_im= 1 unless $need_im;
$opt_skip_rpl= 1 unless $need_slave;
snapshot_setup();
initialize_servers();
run_suite($opt_suite, $tests);
} }
mtr_exit(0); mtr_exit(0);
...@@ -983,20 +972,29 @@ sub command_line_setup () { ...@@ -983,20 +972,29 @@ sub command_line_setup () {
$path_mysqltest_log= "$opt_vardir/log/mysqltest.log"; $path_mysqltest_log= "$opt_vardir/log/mysqltest.log";
$path_snapshot= "$opt_tmpdir/snapshot_$opt_master_myport/"; $path_snapshot= "$opt_tmpdir/snapshot_$opt_master_myport/";
}
sub snapshot_setup () {
# Make a list of all data_dirs # Make a list of all data_dirs
@data_dir_lst = ( @data_dir_lst = (
$master->[0]->{'path_myddir'}, $master->[0]->{'path_myddir'},
$master->[1]->{'path_myddir'}, $master->[1]->{'path_myddir'});
$slave->[0]->{'path_myddir'},
$slave->[1]->{'path_myddir'},
$slave->[2]->{'path_myddir'});
foreach my $instance (@{$instance_manager->{'instances'}}) unless ($opt_skip_rpl)
{ {
push(@data_dir_lst, $instance->{'path_datadir'}); push @data_dir_lst, ($slave->[0]->{'path_myddir'},
$slave->[1]->{'path_myddir'},
$slave->[2]->{'path_myddir'});
} }
unless ($opt_skip_im)
{
foreach my $instance (@{$instance_manager->{'instances'}})
{
push(@data_dir_lst, $instance->{'path_datadir'});
}
}
} }
...@@ -1388,7 +1386,7 @@ sub check_ndbcluster_support () { ...@@ -1388,7 +1386,7 @@ sub check_ndbcluster_support () {
if ($opt_with_ndbcluster) if ($opt_with_ndbcluster)
{ {
mtr_report("Using ndbcluster"); mtr_report("Using ndbcluster if necessary");
return; return;
} }
...@@ -1404,7 +1402,7 @@ sub check_ndbcluster_support () { ...@@ -1404,7 +1402,7 @@ sub check_ndbcluster_support () {
$opt_with_ndbcluster= 0; $opt_with_ndbcluster= 0;
return; return;
} }
mtr_report("Using ndbcluster, mysqld supports it"); mtr_report("Using ndbcluster if necessary, mysqld supports it");
$opt_with_ndbcluster= 1; $opt_with_ndbcluster= 1;
return; return;
} }
...@@ -1562,12 +1560,9 @@ sub run_benchmarks ($) { ...@@ -1562,12 +1560,9 @@ sub run_benchmarks ($) {
# FIXME how to specify several suites to run? Comma separated list? # FIXME how to specify several suites to run? Comma separated list?
sub run_tests () {
run_suite($opt_suite);
}
sub run_suite () { sub run_suite () {
my $suite= shift; my ($suite, $tests)= @_;
mtr_print_thick_line(); mtr_print_thick_line();
...@@ -1575,8 +1570,6 @@ sub run_suite () { ...@@ -1575,8 +1570,6 @@ sub run_suite () {
mtr_timer_start($glob_timers,"suite", 60 * $opt_suite_timeout); mtr_timer_start($glob_timers,"suite", 60 * $opt_suite_timeout);
my $tests= collect_test_cases($suite);
mtr_report("Starting Tests in the '$suite' suite"); mtr_report("Starting Tests in the '$suite' suite");
mtr_print_header(); mtr_print_header();
...@@ -1618,14 +1611,37 @@ sub run_suite () { ...@@ -1618,14 +1611,37 @@ sub run_suite () {
# #
############################################################################## ##############################################################################
sub initialize_servers () {
if ( ! $glob_use_running_server )
{
if ( $opt_start_dirty )
{
kill_running_server();
}
else
{
kill_and_cleanup();
mysql_install_db();
if ( $opt_force )
{
save_installed_db();
}
}
}
}
sub mysql_install_db () { sub mysql_install_db () {
# FIXME not exactly true I think, needs improvements # FIXME not exactly true I think, needs improvements
install_db('master', $master->[0]->{'path_myddir'}); install_db('master', $master->[0]->{'path_myddir'});
install_db('master', $master->[1]->{'path_myddir'}); install_db('master', $master->[1]->{'path_myddir'});
install_db('slave', $slave->[0]->{'path_myddir'});
install_db('slave', $slave->[1]->{'path_myddir'}); if ( ! $opt_skip_rpl )
install_db('slave', $slave->[2]->{'path_myddir'}); {
install_db('slave', $slave->[0]->{'path_myddir'});
install_db('slave', $slave->[1]->{'path_myddir'});
install_db('slave', $slave->[2]->{'path_myddir'});
}
if ( ! $opt_skip_im ) if ( ! $opt_skip_im )
{ {
...@@ -2028,10 +2044,11 @@ sub run_testcase ($) { ...@@ -2028,10 +2044,11 @@ sub run_testcase ($) {
} }
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
# If --start-and-exit given, stop here to let user manually run tests # If --start-and-exit or --start-dirty given, stop here to let user manually
# run tests
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
if ( $opt_start_and_exit ) if ( $opt_start_and_exit or $opt_start_dirty )
{ {
mtr_report("\nServers started, exiting"); mtr_report("\nServers started, exiting");
exit(0); exit(0);
...@@ -3410,11 +3427,12 @@ Misc options ...@@ -3410,11 +3427,12 @@ Misc options
comment=STR Write STR to the output comment=STR Write STR to the output
script-debug Debug this script itself script-debug Debug this script itself
timer Show test case execution time timer Show test case execution time
start-and-exit Only initiate and start the "mysqld" servers, use the startup start-and-exit Only initialize and start the servers, using the
settings for the specified test case if any startup settings for the specified test case (if any)
start-dirty Only start the "mysqld" servers without initiation start-dirty Only start the servers (without initialization) for
fast Don't try to cleanup from earlier runs the specified test case (if any)
reorder Reorder tests to get less server restarts fast Don't try to clean up from earlier runs
reorder Reorder tests to get fewer server restarts
help Get this help text help Get this help text
unified-diff | udiff When presenting differences, use unified diff unified-diff | udiff When presenting differences, use unified diff
......
...@@ -236,8 +236,8 @@ cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile" ...@@ -236,8 +236,8 @@ cat `find "$fs_ndb" -name 'ndb_*.pid'` > "$fs_ndb/$pidfile"
# test if Ndb Cluster starts properly # test if Ndb Cluster starts properly
echo "Waiting for started..." echo "Waiting for NDB data nodes to start..."
if ( $exec_waiter ) | grep "NDBT_ProgramExit: 0 - OK"; then :; else if ( $exec_waiter ) | grep "NDBT_ProgramExit: 0 - OK" > /dev/null 2>&1; then :; else
echo "Ndbcluster startup failed" echo "Ndbcluster startup failed"
stop_default_ndbcluster stop_default_ndbcluster
exit 1 exit 1
......
...@@ -215,9 +215,6 @@ select @@version; ...@@ -215,9 +215,6 @@ select @@version;
select @@global.version; select @@global.version;
@@global.version @@global.version
# #
select @@session.VERSION;
@@session.VERSION
#
set @first_var= NULL; set @first_var= NULL;
create table t1 select @first_var; create table t1 select @first_var;
show create table t1; show create table t1;
......
...@@ -275,7 +275,7 @@ ERROR HY000: Variable 'autocommit' is a SESSION variable and can't be used with ...@@ -275,7 +275,7 @@ ERROR HY000: Variable 'autocommit' is a SESSION variable and can't be used with
select @@global.timestamp; select @@global.timestamp;
ERROR HY000: Variable 'timestamp' is a SESSION variable ERROR HY000: Variable 'timestamp' is a SESSION variable
set @@version=''; set @@version='';
ERROR HY000: Unknown system variable 'version' ERROR HY000: Variable 'version' is a read only variable
set @@concurrent_insert=1; set @@concurrent_insert=1;
ERROR HY000: Variable 'concurrent_insert' is a GLOBAL variable and should be set with SET GLOBAL ERROR HY000: Variable 'concurrent_insert' is a GLOBAL variable and should be set with SET GLOBAL
set @@global.sql_auto_is_null=1; set @@global.sql_auto_is_null=1;
...@@ -384,6 +384,7 @@ select @@sql_max_join_size,@@max_join_size; ...@@ -384,6 +384,7 @@ select @@sql_max_join_size,@@max_join_size;
set sql_quote_show_create=1; set sql_quote_show_create=1;
set sql_safe_updates=1; set sql_safe_updates=1;
set sql_select_limit=1; set sql_select_limit=1;
set sql_select_limit=default;
set sql_warnings=1; set sql_warnings=1;
set global table_cache=100; set global table_cache=100;
set storage_engine=myisam; set storage_engine=myisam;
...@@ -584,3 +585,31 @@ set @@global.character_set_filesystem=default; ...@@ -584,3 +585,31 @@ set @@global.character_set_filesystem=default;
select @@global.character_set_filesystem; select @@global.character_set_filesystem;
@@global.character_set_filesystem @@global.character_set_filesystem
binary binary
set @old_sql_big_selects = @@sql_big_selects;
set @@sql_big_selects = 1;
show variables like 'sql_big_selects';
Variable_name Value
sql_big_selects ON
set @@sql_big_selects = @old_sql_big_selects;
set @@sql_notes = 0, @@sql_warnings = 0;
show variables like 'sql_notes';
Variable_name Value
sql_notes OFF
show variables like 'sql_warnings';
Variable_name Value
sql_warnings OFF
set @@sql_notes = 1, @@sql_warnings = 1;
show variables like 'sql_notes';
Variable_name Value
sql_notes ON
show variables like 'sql_warnings';
Variable_name Value
sql_warnings ON
select @@system_time_zone;
@@system_time_zone
#
select @@version, @@version_comment, @@version_compile_machine,
@@version_compile_os;
@@version @@version_comment @@version_compile_machine @@version_compile_os
# # # #
End of 5.0 tests
...@@ -143,8 +143,6 @@ select @@Max_Allowed_Packet; ...@@ -143,8 +143,6 @@ select @@Max_Allowed_Packet;
select @@version; select @@version;
--replace_column 1 # --replace_column 1 #
select @@global.version; select @@global.version;
--replace_column 1 #
select @@session.VERSION;
# End of 4.1 tests # End of 4.1 tests
......
...@@ -169,7 +169,7 @@ set collation_connection=NULL; ...@@ -169,7 +169,7 @@ set collation_connection=NULL;
set global autocommit=1; set global autocommit=1;
--error 1238 --error 1238
select @@global.timestamp; select @@global.timestamp;
--error 1193 --error 1238
set @@version=''; set @@version='';
--error 1229 --error 1229
set @@concurrent_insert=1; set @@concurrent_insert=1;
...@@ -258,6 +258,8 @@ select @@sql_max_join_size,@@max_join_size; ...@@ -258,6 +258,8 @@ select @@sql_max_join_size,@@max_join_size;
set sql_quote_show_create=1; set sql_quote_show_create=1;
set sql_safe_updates=1; set sql_safe_updates=1;
set sql_select_limit=1; set sql_select_limit=1;
# reset it, so later tests don't get confused
set sql_select_limit=default;
set sql_warnings=1; set sql_warnings=1;
set global table_cache=100; set global table_cache=100;
set storage_engine=myisam; set storage_engine=myisam;
...@@ -472,4 +474,38 @@ select @@character_set_filesystem; ...@@ -472,4 +474,38 @@ select @@character_set_filesystem;
set @@global.character_set_filesystem=default; set @@global.character_set_filesystem=default;
select @@global.character_set_filesystem; select @@global.character_set_filesystem;
# End of 5.0 tests #
# Bug #17849: Show sql_big_selects in SHOW VARIABLES
#
set @old_sql_big_selects = @@sql_big_selects;
set @@sql_big_selects = 1;
show variables like 'sql_big_selects';
set @@sql_big_selects = @old_sql_big_selects;
#
# Bug #16195: SHOW VARIABLES doesn't report correctly sql_warnings and
# sql_notes values
#
set @@sql_notes = 0, @@sql_warnings = 0;
show variables like 'sql_notes';
show variables like 'sql_warnings';
set @@sql_notes = 1, @@sql_warnings = 1;
show variables like 'sql_notes';
show variables like 'sql_warnings';
#
# Bug #12792: @@system_time_zone is not SELECTable.
#
# Don't actually output, since it depends on the system
--replace_column 1 #
select @@system_time_zone;
#
# Bug #15684: system variables cannot be SELECTed (e.g. @@version_comment)
#
# Don't actually output, since it depends on the system
--replace_column 1 # 2 # 3 # 4 #
select @@version, @@version_comment, @@version_compile_machine,
@@version_compile_os;
--echo End of 5.0 tests
...@@ -4558,12 +4558,6 @@ Item *get_system_var(THD *thd, enum_var_type var_type, LEX_STRING name, ...@@ -4558,12 +4558,6 @@ Item *get_system_var(THD *thd, enum_var_type var_type, LEX_STRING name,
sys_var *var; sys_var *var;
LEX_STRING *base_name, *component_name; LEX_STRING *base_name, *component_name;
if (component.str == 0 &&
!my_strcasecmp(system_charset_info, name.str, "VERSION"))
return new Item_string(NULL, server_version,
(uint) strlen(server_version),
system_charset_info, DERIVATION_SYSCONST);
if (component.str) if (component.str)
{ {
base_name= &component; base_name= &component;
......
...@@ -380,6 +380,8 @@ sys_var_thd_storage_engine sys_storage_engine("storage_engine", ...@@ -380,6 +380,8 @@ sys_var_thd_storage_engine sys_storage_engine("storage_engine",
sys_var_sync_binlog_period sys_sync_binlog_period("sync_binlog", &sync_binlog_period); sys_var_sync_binlog_period sys_sync_binlog_period("sync_binlog", &sync_binlog_period);
#endif #endif
sys_var_bool_ptr sys_sync_frm("sync_frm", &opt_sync_frm); sys_var_bool_ptr sys_sync_frm("sync_frm", &opt_sync_frm);
sys_var_const_str sys_system_time_zone("system_time_zone",
system_time_zone);
sys_var_long_ptr sys_table_cache_size("table_cache", sys_var_long_ptr sys_table_cache_size("table_cache",
&table_cache_size); &table_cache_size);
sys_var_long_ptr sys_table_lock_wait_timeout("table_lock_wait_timeout", sys_var_long_ptr sys_table_lock_wait_timeout("table_lock_wait_timeout",
...@@ -394,6 +396,16 @@ sys_var_thd_ulong sys_tmp_table_size("tmp_table_size", ...@@ -394,6 +396,16 @@ sys_var_thd_ulong sys_tmp_table_size("tmp_table_size",
&SV::tmp_table_size); &SV::tmp_table_size);
sys_var_bool_ptr sys_timed_mutexes("timed_mutexes", sys_var_bool_ptr sys_timed_mutexes("timed_mutexes",
&timed_mutexes); &timed_mutexes);
sys_var_const_str sys_version("version", server_version);
#ifdef HAVE_BERKELEY_DB
sys_var_const_str sys_version_bdb("version_bdb", DB_VERSION_STRING);
#endif
sys_var_const_str sys_version_comment("version_comment",
MYSQL_COMPILATION_COMMENT);
sys_var_const_str sys_version_compile_machine("version_compile_machine",
MACHINE_TYPE);
sys_var_const_str sys_version_compile_os("version_compile_os",
SYSTEM_TYPE);
sys_var_thd_ulong sys_net_wait_timeout("wait_timeout", sys_var_thd_ulong sys_net_wait_timeout("wait_timeout",
&SV::net_wait_timeout); &SV::net_wait_timeout);
...@@ -549,7 +561,6 @@ sys_var_thd_time_zone sys_time_zone("time_zone"); ...@@ -549,7 +561,6 @@ sys_var_thd_time_zone sys_time_zone("time_zone");
/* Read only variables */ /* Read only variables */
sys_var_const_str sys_os("version_compile_os", SYSTEM_TYPE);
sys_var_readonly sys_have_innodb("have_innodb", OPT_GLOBAL, sys_var_readonly sys_have_innodb("have_innodb", OPT_GLOBAL,
SHOW_CHAR, get_have_innodb); SHOW_CHAR, get_have_innodb);
/* Global read-only variable describing server license */ /* Global read-only variable describing server license */
...@@ -704,6 +715,7 @@ sys_var *sys_variables[]= ...@@ -704,6 +715,7 @@ sys_var *sys_variables[]=
&sys_sync_binlog_period, &sys_sync_binlog_period,
#endif #endif
&sys_sync_frm, &sys_sync_frm,
&sys_system_time_zone,
&sys_table_cache_size, &sys_table_cache_size,
&sys_table_lock_wait_timeout, &sys_table_lock_wait_timeout,
&sys_table_type, &sys_table_type,
...@@ -716,7 +728,13 @@ sys_var *sys_variables[]= ...@@ -716,7 +728,13 @@ sys_var *sys_variables[]=
&sys_trans_alloc_block_size, &sys_trans_alloc_block_size,
&sys_trans_prealloc_size, &sys_trans_prealloc_size,
&sys_tx_isolation, &sys_tx_isolation,
&sys_os, &sys_version,
#ifdef HAVE_BERKELEY_DB
&sys_version_bdb,
#endif
&sys_version_comment,
&sys_version_compile_machine,
&sys_version_compile_os,
#ifdef HAVE_INNOBASE_DB #ifdef HAVE_INNOBASE_DB
&sys_innodb_fast_shutdown, &sys_innodb_fast_shutdown,
&sys_innodb_max_dirty_pages_pct, &sys_innodb_max_dirty_pages_pct,
...@@ -993,10 +1011,11 @@ struct show_var_st init_vars[]= { ...@@ -993,10 +1011,11 @@ struct show_var_st init_vars[]= {
#ifdef HAVE_SYS_UN_H #ifdef HAVE_SYS_UN_H
{"socket", (char*) &mysqld_unix_port, SHOW_CHAR_PTR}, {"socket", (char*) &mysqld_unix_port, SHOW_CHAR_PTR},
#endif #endif
{sys_sort_buffer.name, (char*) &sys_sort_buffer, SHOW_SYS}, {sys_sort_buffer.name, (char*) &sys_sort_buffer, SHOW_SYS},
{sys_big_selects.name, (char*) &sys_big_selects, SHOW_SYS},
{sys_sql_mode.name, (char*) &sys_sql_mode, SHOW_SYS}, {sys_sql_mode.name, (char*) &sys_sql_mode, SHOW_SYS},
{"sql_notes", (char*) &sys_sql_notes, SHOW_BOOL}, {"sql_notes", (char*) &sys_sql_notes, SHOW_SYS},
{"sql_warnings", (char*) &sys_sql_warnings, SHOW_BOOL}, {"sql_warnings", (char*) &sys_sql_warnings, SHOW_SYS},
{sys_storage_engine.name, (char*) &sys_storage_engine, SHOW_SYS}, {sys_storage_engine.name, (char*) &sys_storage_engine, SHOW_SYS},
#ifdef HAVE_REPLICATION #ifdef HAVE_REPLICATION
{sys_sync_binlog_period.name,(char*) &sys_sync_binlog_period, SHOW_SYS}, {sys_sync_binlog_period.name,(char*) &sys_sync_binlog_period, SHOW_SYS},
...@@ -1024,13 +1043,14 @@ struct show_var_st init_vars[]= { ...@@ -1024,13 +1043,14 @@ struct show_var_st init_vars[]= {
{sys_tx_isolation.name, (char*) &sys_tx_isolation, SHOW_SYS}, {sys_tx_isolation.name, (char*) &sys_tx_isolation, SHOW_SYS},
{sys_updatable_views_with_limit.name, {sys_updatable_views_with_limit.name,
(char*) &sys_updatable_views_with_limit,SHOW_SYS}, (char*) &sys_updatable_views_with_limit,SHOW_SYS},
{"version", server_version, SHOW_CHAR}, {sys_version.name, (char*) &sys_version, SHOW_SYS},
#ifdef HAVE_BERKELEY_DB #ifdef HAVE_BERKELEY_DB
{"version_bdb", (char*) DB_VERSION_STRING, SHOW_CHAR}, {sys_version_bdb.name, (char*) &sys_version_bdb, SHOW_SYS},
#endif #endif
{"version_comment", (char*) MYSQL_COMPILATION_COMMENT, SHOW_CHAR}, {sys_version_comment.name, (char*) &sys_version_comment, SHOW_SYS},
{"version_compile_machine", (char*) MACHINE_TYPE, SHOW_CHAR}, {sys_version_compile_machine.name, (char*) &sys_version_compile_machine,
{sys_os.name, (char*) &sys_os, SHOW_SYS}, SHOW_SYS},
{sys_version_compile_os.name, (char*) &sys_version_compile_os, SHOW_SYS},
{sys_net_wait_timeout.name, (char*) &sys_net_wait_timeout, SHOW_SYS}, {sys_net_wait_timeout.name, (char*) &sys_net_wait_timeout, SHOW_SYS},
{NullS, NullS, SHOW_LONG} {NullS, NullS, SHOW_LONG}
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment