Commit 32ae48c4 authored by unknown's avatar unknown

Merge three.local.lan:/home/matthias/Arbeit/mysql-5.0/src

into three.local.lan:/home/matthias/Arbeit/mysql-5.0/src-WL1420
parents f5a9027d 26c1bc50
...@@ -424,10 +424,13 @@ row_create_prebuilt( ...@@ -424,10 +424,13 @@ row_create_prebuilt(
prebuilt->sel_graph = NULL; prebuilt->sel_graph = NULL;
prebuilt->search_tuple = dtuple_create(heap, prebuilt->search_tuple = dtuple_create(heap,
dict_table_get_n_cols(table)); 2 * dict_table_get_n_cols(table));
clust_index = dict_table_get_first_index(table); clust_index = dict_table_get_first_index(table);
/* Make sure that search_tuple is long enough for clustered index */
ut_a(2 * dict_table_get_n_cols(table) >= clust_index->n_fields);
ref_len = dict_index_get_n_unique(clust_index); ref_len = dict_index_get_n_unique(clust_index);
ref = dtuple_create(heap, ref_len); ref = dtuple_create(heap, ref_len);
......
This diff is collapsed.
...@@ -50,12 +50,14 @@ sub mtr_show_failed_diff ($) { ...@@ -50,12 +50,14 @@ sub mtr_show_failed_diff ($) {
$result_file= "$result_file$::opt_result_ext"; $result_file= "$result_file$::opt_result_ext";
} }
my $diffopts= $::opt_udiff ? "-u" : "-c";
if ( -f $reject_file ) if ( -f $reject_file )
{ {
print "Below are the diffs between actual and expected results:\n"; print "Below are the diffs between actual and expected results:\n";
print "-------------------------------------------------------\n"; print "-------------------------------------------------------\n";
# FIXME check result code?! # FIXME check result code?!
mtr_run("diff",["-c",$result_file,$reject_file], "", "", "", ""); mtr_run("diff",[$diffopts,$result_file,$reject_file], "", "", "", "");
print "-------------------------------------------------------\n"; print "-------------------------------------------------------\n";
print "Please follow the instructions outlined at\n"; print "Please follow the instructions outlined at\n";
print "http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html\n"; print "http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html\n";
......
...@@ -156,13 +156,13 @@ our @mysqld_src_dirs= ...@@ -156,13 +156,13 @@ our @mysqld_src_dirs=
our $glob_win32= 0; # OS and native Win32 executables our $glob_win32= 0; # OS and native Win32 executables
our $glob_win32_perl= 0; # ActiveState Win32 Perl our $glob_win32_perl= 0; # ActiveState Win32 Perl
our $glob_cygwin_perl= 0; # Cygwin Perl our $glob_cygwin_perl= 0; # Cygwin Perl
our $glob_cygwin_shell= undef;
our $glob_mysql_test_dir= undef; our $glob_mysql_test_dir= undef;
our $glob_mysql_bench_dir= undef; our $glob_mysql_bench_dir= undef;
our $glob_hostname= undef; our $glob_hostname= undef;
our $glob_scriptname= undef; our $glob_scriptname= undef;
our $glob_use_running_server= 0; our $glob_use_running_server= 0;
our $glob_use_running_ndbcluster= 0; our $glob_use_running_ndbcluster= 0;
our $glob_user= 'test';
our $glob_use_embedded_server= 0; our $glob_use_embedded_server= 0;
our $glob_basedir; our $glob_basedir;
...@@ -281,6 +281,8 @@ our $opt_wait_timeout= 10; ...@@ -281,6 +281,8 @@ our $opt_wait_timeout= 10;
our $opt_warnings; our $opt_warnings;
our $opt_udiff;
our $opt_with_ndbcluster; our $opt_with_ndbcluster;
our $opt_with_openssl; our $opt_with_openssl;
...@@ -422,7 +424,9 @@ sub initial_setup () { ...@@ -422,7 +424,9 @@ sub initial_setup () {
{ {
# Windows programs like 'mysqld' needs Windows paths # Windows programs like 'mysqld' needs Windows paths
$glob_mysql_test_dir= `cygpath -m $glob_mysql_test_dir`; $glob_mysql_test_dir= `cygpath -m $glob_mysql_test_dir`;
$glob_cygwin_shell= `cygpath -w $ENV{'SHELL'}`; # The Windows path c:\...
chomp($glob_mysql_test_dir); chomp($glob_mysql_test_dir);
chomp($glob_cygwin_shell);
} }
$glob_basedir= dirname($glob_mysql_test_dir); $glob_basedir= dirname($glob_mysql_test_dir);
$glob_mysql_bench_dir= "$glob_basedir/mysql-bench"; # FIXME make configurable $glob_mysql_bench_dir= "$glob_basedir/mysql-bench"; # FIXME make configurable
...@@ -524,6 +528,7 @@ sub command_line_setup () { ...@@ -524,6 +528,7 @@ sub command_line_setup () {
'start-from=s' => \$opt_start_from, 'start-from=s' => \$opt_start_from,
'timer' => \$opt_timer, 'timer' => \$opt_timer,
'tmpdir=s' => \$opt_tmpdir, 'tmpdir=s' => \$opt_tmpdir,
'unified-diff|udiff' => \$opt_udiff,
'user-test=s' => \$opt_user_test, 'user-test=s' => \$opt_user_test,
'user=s' => \$opt_user, 'user=s' => \$opt_user,
'verbose' => \$opt_verbose, 'verbose' => \$opt_verbose,
...@@ -712,17 +717,16 @@ sub command_line_setup () { ...@@ -712,17 +717,16 @@ sub command_line_setup () {
# } # }
#} #}
if ( $opt_user ) if ( ! $opt_user )
{
$glob_user= $opt_user;
}
elsif ( $glob_use_running_server )
{
$glob_user= "test";
}
else
{ {
$glob_user= "root"; # We want to do FLUSH xxx commands if ( $glob_use_running_server )
{
$opt_user= "test";
}
else
{
$opt_user= "root"; # We want to do FLUSH xxx commands
}
} }
} }
...@@ -837,7 +841,7 @@ sub executable_setup () { ...@@ -837,7 +841,7 @@ sub executable_setup () {
} }
else else
{ {
error("Cannot find embedded server 'mysqltest_embedded'"); mtr_error("Cannot find embedded server 'mysqltest_embedded'");
} }
if ( -d "$path_tests_bindir/mysql_client_test_embedded" ) if ( -d "$path_tests_bindir/mysql_client_test_embedded" )
{ {
...@@ -860,9 +864,6 @@ sub executable_setup () { ...@@ -860,9 +864,6 @@ sub executable_setup () {
$exe_ndb_mgm= "$glob_basedir/bin/ndb_mgm"; $exe_ndb_mgm= "$glob_basedir/bin/ndb_mgm";
} }
# FIXME special $exe_master_mysqld and $exe_slave_mysqld
# are not used that much....
if ( ! $exe_master_mysqld ) if ( ! $exe_master_mysqld )
{ {
$exe_master_mysqld= $exe_mysqld; $exe_master_mysqld= $exe_mysqld;
...@@ -1102,7 +1103,7 @@ sub run_benchmarks ($) { ...@@ -1102,7 +1103,7 @@ sub run_benchmarks ($) {
mtr_init_args(\$args); mtr_init_args(\$args);
mtr_add_arg($args, "--socket=%s", $master->[0]->{'path_mysock'}); mtr_add_arg($args, "--socket=%s", $master->[0]->{'path_mysock'});
mtr_add_arg($args, "--user=root"); mtr_add_arg($args, "--user=%s", $opt_user);
if ( $opt_small_bench ) if ( $opt_small_bench )
{ {
...@@ -1226,11 +1227,36 @@ sub install_db ($$) { ...@@ -1226,11 +1227,36 @@ sub install_db ($$) {
my $type= shift; my $type= shift;
my $data_dir= shift; my $data_dir= shift;
my $init_db_sql= "lib/init_db.sql"; # FIXME this is too simple maybe my $init_db_sql= "lib/init_db.sql";
my $init_db_sql_tmp= "/tmp/init_db.sql$$";
my $args; my $args;
mtr_report("Installing \u$type Databases"); mtr_report("Installing \u$type Databases");
open(IN, $init_db_sql)
or error("Can't open $init_db_sql: $!");
open(OUT, ">", $init_db_sql_tmp)
or error("Can't write to $init_db_sql_tmp: $!");
while (<IN>)
{
chomp;
s/\@HOSTNAME\@/$glob_hostname/;
if ( /^\s*$/ )
{
print OUT "\n";
}
elsif (/;$/)
{
print OUT "$_\n";
}
else
{
print OUT $_;
}
}
close OUT;
close IN;
mtr_init_args(\$args); mtr_init_args(\$args);
mtr_add_arg($args, "--no-defaults"); mtr_add_arg($args, "--no-defaults");
...@@ -1248,12 +1274,14 @@ sub install_db ($$) { ...@@ -1248,12 +1274,14 @@ sub install_db ($$) {
mtr_add_arg($args, "--character-sets-dir=%s", $path_charsetsdir); mtr_add_arg($args, "--character-sets-dir=%s", $path_charsetsdir);
} }
if ( mtr_run($exe_mysqld, $args, $init_db_sql, if ( mtr_run($exe_mysqld, $args, $init_db_sql_tmp,
$path_manager_log, $path_manager_log, "") != 0 ) $path_manager_log, $path_manager_log, "") != 0 )
{ {
unlink($init_db_sql_tmp);
mtr_error("Error executing mysqld --bootstrap\n" . mtr_error("Error executing mysqld --bootstrap\n" .
"Could not install $type test DBs"); "Could not install $type test DBs");
} }
unlink($init_db_sql_tmp);
} }
...@@ -1502,8 +1530,8 @@ sub do_before_start_master ($$) { ...@@ -1502,8 +1530,8 @@ sub do_before_start_master ($$) {
$tname ne "rpl_crash_binlog_ib_3b") $tname ne "rpl_crash_binlog_ib_3b")
{ {
# FIXME we really want separate dir for binlogs # FIXME we really want separate dir for binlogs
`rm -fr $glob_mysql_test_dir/var/log/master-bin.*`; `rm -f $glob_mysql_test_dir/var/log/master-bin*`;
# unlink("$glob_mysql_test_dir/var/log/master-bin.*"); # unlink("$glob_mysql_test_dir/var/log/master-bin*");
} }
# Remove old master.info and relay-log.info files # Remove old master.info and relay-log.info files
...@@ -1512,8 +1540,7 @@ sub do_before_start_master ($$) { ...@@ -1512,8 +1540,7 @@ sub do_before_start_master ($$) {
unlink("$glob_mysql_test_dir/var/master1-data/master.info"); unlink("$glob_mysql_test_dir/var/master1-data/master.info");
unlink("$glob_mysql_test_dir/var/master1-data/relay-log.info"); unlink("$glob_mysql_test_dir/var/master1-data/relay-log.info");
#run master initialization shell script if one exists # Run master initialization shell script if one exists
if ( $master_init_script and if ( $master_init_script and
mtr_run($master_init_script, [], "", "", "", "") != 0 ) mtr_run($master_init_script, [], "", "", "", "") != 0 )
{ {
...@@ -1527,9 +1554,6 @@ sub do_before_start_slave ($$) { ...@@ -1527,9 +1554,6 @@ sub do_before_start_slave ($$) {
my $tname= shift; my $tname= shift;
my $slave_init_script= shift; my $slave_init_script= shift;
# When testing fail-safe replication, we will have more than one slave
# in this case, we start secondary slaves with an argument
# Remove stale binary logs and old master.info files # Remove stale binary logs and old master.info files
# except for too tests which need them # except for too tests which need them
if ( $tname ne "rpl_crash_binlog_ib_1b" and if ( $tname ne "rpl_crash_binlog_ib_1b" and
...@@ -1544,14 +1568,15 @@ sub do_before_start_slave ($$) { ...@@ -1544,14 +1568,15 @@ sub do_before_start_slave ($$) {
unlink("$glob_mysql_test_dir/var/slave-data/relay-log.info"); unlink("$glob_mysql_test_dir/var/slave-data/relay-log.info");
} }
#run slave initialization shell script if one exists # Run slave initialization shell script if one exists
if ( $slave_init_script and if ( $slave_init_script and
mtr_run($slave_init_script, [], "", "", "", "") != 0 ) mtr_run($slave_init_script, [], "", "", "", "") != 0 )
{ {
mtr_error("Can't run $slave_init_script"); mtr_error("Can't run $slave_init_script");
} }
unlink("$glob_mysql_test_dir/var/slave-data/log.*"); `rm -f $glob_mysql_test_dir/var/slave-data/log.*`;
# unlink("$glob_mysql_test_dir/var/slave-data/log.*");
} }
sub mysqld_arguments ($$$$$) { sub mysqld_arguments ($$$$$) {
...@@ -1669,12 +1694,12 @@ sub mysqld_arguments ($$$$$) { ...@@ -1669,12 +1694,12 @@ sub mysqld_arguments ($$$$$) {
{ {
if ( $type eq 'master' ) if ( $type eq 'master' )
{ {
mtr_add_arg($args, "--debug=d:t:i:A,%s/var/log/master%s.trace", mtr_add_arg($args, "%s--debug=d:t:i:A,%s/var/log/master%s.trace",
$prefix, $glob_mysql_test_dir, $sidx); $prefix, $glob_mysql_test_dir, $sidx);
} }
if ( $type eq 'slave' ) if ( $type eq 'slave' )
{ {
mtr_add_arg($args, "--debug=d:t:i:A,%s/var/log/slave%s.trace", mtr_add_arg($args, "%s--debug=d:t:i:A,%s/var/log/slave%s.trace",
$prefix, $glob_mysql_test_dir, $sidx); $prefix, $glob_mysql_test_dir, $sidx);
} }
} }
...@@ -1789,18 +1814,17 @@ sub mysqld_start ($$$$) { ...@@ -1789,18 +1814,17 @@ sub mysqld_start ($$$$) {
my $exe; my $exe;
my $pid; my $pid;
# FIXME code duplication, make up your mind.... if ( $type eq 'master' )
if ( $opt_source_dist )
{ {
$exe= "$glob_basedir/sql/mysqld"; $exe= $exe_master_mysqld;
}
elsif ( $type eq 'slave' )
{
$exe= $exe_slave_mysqld;
} }
else else
{ {
$exe ="$glob_basedir/libexec/mysqld"; $exe= $exe_mysqld;
if ( ! -x $exe )
{
$exe ="$glob_basedir/bin/mysqld";
}
} }
mtr_init_args(\$args); mtr_init_args(\$args);
...@@ -1983,7 +2007,7 @@ sub run_mysqltest ($$) { ...@@ -1983,7 +2007,7 @@ sub run_mysqltest ($$) {
mtr_add_arg($args, "--no-defaults"); mtr_add_arg($args, "--no-defaults");
mtr_add_arg($args, "--socket=%s", $master->[0]->{'path_mysock'}); mtr_add_arg($args, "--socket=%s", $master->[0]->{'path_mysock'});
mtr_add_arg($args, "--database=test"); mtr_add_arg($args, "--database=test");
mtr_add_arg($args, "--user=%s", $glob_user); mtr_add_arg($args, "--user=%s", $opt_user);
mtr_add_arg($args, "--password="); mtr_add_arg($args, "--password=");
mtr_add_arg($args, "--silent"); mtr_add_arg($args, "--silent");
mtr_add_arg($args, "-v"); mtr_add_arg($args, "-v");
...@@ -2054,7 +2078,7 @@ sub run_mysqltest ($$) { ...@@ -2054,7 +2078,7 @@ sub run_mysqltest ($$) {
mysqld_arguments($args,'master',0,$tinfo->{'master_opt'},[]); mysqld_arguments($args,'master',0,$tinfo->{'master_opt'},[]);
} }
return mtr_run($exe_mysqltest,$args,$tinfo->{'path'},"",$path_timefile,""); return mtr_run_test($exe_mysqltest,$args,$tinfo->{'path'},"",$path_timefile,"");
} }
############################################################################## ##############################################################################
...@@ -2136,6 +2160,7 @@ Misc options ...@@ -2136,6 +2160,7 @@ Misc options
start-and-exit Only initiate and start the "mysqld" servers start-and-exit Only initiate and start the "mysqld" servers
fast Don't try to cleanup from earlier runs fast Don't try to cleanup from earlier runs
help Get this help text help Get this help text
unified-diff | udiff When presenting differences, use unified diff
Options not yet described, or that I want to look into more Options not yet described, or that I want to look into more
......
...@@ -1189,7 +1189,7 @@ int bin2decimal(char *from, decimal *to, int precision, int scale) ...@@ -1189,7 +1189,7 @@ int bin2decimal(char *from, decimal *to, int precision, int scale)
intg0=intg/DIG_PER_DEC1, frac0=scale/DIG_PER_DEC1, intg0=intg/DIG_PER_DEC1, frac0=scale/DIG_PER_DEC1,
intg0x=intg-intg0*DIG_PER_DEC1, frac0x=scale-frac0*DIG_PER_DEC1, intg0x=intg-intg0*DIG_PER_DEC1, frac0x=scale-frac0*DIG_PER_DEC1,
intg1=intg0+(intg0x>0), frac1=frac0+(frac0x>0); intg1=intg0+(intg0x>0), frac1=frac0+(frac0x>0);
dec1 *buf=to->buf, mask=(*from <0) ? 0 : -1; dec1 *buf=to->buf, mask=(*from & 0x80) ? 0 : -1;
char *stop; char *stop;
char *d_copy; char *d_copy;
int bin_size= decimal_bin_size(precision, scale); int bin_size= decimal_bin_size(precision, scale);
......
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