Commit e7084292 authored by unknown's avatar unknown

Merge bk-internal:/home/bk/mysql-4.1

into mysql.com:/home/jimw/my/mysql-4.1-clean
parents e7dc3766 ba14bbf1
#!/usr/bin/perl
#
# By Matt Wagner <matt@mysql.com> 2005
#
# This script generates HP Depot packages for MySQL Server.
# It basically repackages a binary tarball as a depot.
#
# Usage: ./Do-hpux-depot <untarred-binary-tarball>
#
$fullname = shift @ARGV;
$fullname or die "No package name was specified";
-d $fullname or die "That directory is not present!";
$fullname =~ s,/+$,,; # Remove ending slash if any
chomp($pwd= `pwd`);
%title= (
"mysql-standard" => "MySQL Community Edition - Standard (GPL)",
"mysql-debug" => "MySQL Community Edition - Debug (GPL)",
"mysql-max" => "MySQL Community Edition - Experimental (GPL)",
"mysql-pro" => "MySQL Pro (Commercial)",
"mysql-classic" => "MySQL Classic (Commercial)",
"mysql-cluster" => "MySQL Cluster (Commercial)",
);
%architecture= (
"hpux11.23" => "HP-UX_B.11.23",
"hpux11.11" => "HP-UX_B.11.11",
"hpux11.00" => "HP-UX_B.11.00",
);
%os_release= (
"hpux11.23" => "?.11.2?",
"hpux11.11" => "?.11.1?",
"hpux11.00" => "?.11.0?",
);
%machine_type= (
"ia64" => "ia64*",
"hppa2.0w" => "9000/*",
);
$fullname =~ m/^(mysql-\w+)-([\d\.]+)-hp-(hpux11\.\d\d)-(hppa2\.0w|(ia64))-?(64bit)?$/;
# print "title: $1\n";
# print "version: $2\n";
# print "os: $3\n";
# print "cpu: $4\n";
# print "64: $6\n";
$cpu64= ($6 ne "") ? "_64" : "";
open (PSF,">${fullname}.psf") or die "Unable to write PSF file ($!)\n";
print PSF <<EOF;
product
tag $1
vendor_tag "MySQL_AB"
title "$title{$1}"
description "MySQL Database Server and Clients"
revision $2
architecture $architecture{$3}$cpu64
machine_type $machine_type{$4}
os_name HP-UX
os_release $os_release{$3}
directory /usr/local
fileset
tag all
revision $2
directory $fullname=/usr/local/$fullname
file_permissions -u 222 -g bin -o bin
file *
end
end
EOF
close(PSF);
system("/usr/sbin/swpackage -v -d \"|gzip -c > $fullname.depot.gz\" -x target_type=tape -s ${pwd}/${fullname}.psf");
This diff is collapsed.
...@@ -123,6 +123,17 @@ sub spawn_impl ($$$$$$$) { ...@@ -123,6 +123,17 @@ sub spawn_impl ($$$$$$$) {
$SIG{INT}= 'DEFAULT'; # Parent do some stuff, we don't $SIG{INT}= 'DEFAULT'; # Parent do some stuff, we don't
if ( $::glob_cygwin_shell and $mode eq 'test' )
{
# Programs started from mysqltest under Cygwin, are to
# execute them within Cygwin. Else simple things in test
# files like
# --system "echo 1 > file"
# will fail.
# FIXME not working :-(
# $ENV{'COMSPEC'}= "$::glob_cygwin_shell -c";
}
if ( $output ) if ( $output )
{ {
if ( ! open(STDOUT,">",$output) ) if ( ! open(STDOUT,">",$output) )
...@@ -130,6 +141,7 @@ sub spawn_impl ($$$$$$$) { ...@@ -130,6 +141,7 @@ sub spawn_impl ($$$$$$$) {
mtr_error("can't redirect STDOUT to \"$output\": $!"); mtr_error("can't redirect STDOUT to \"$output\": $!");
} }
} }
if ( $error ) if ( $error )
{ {
if ( $output eq $error ) if ( $output eq $error )
...@@ -147,6 +159,7 @@ sub spawn_impl ($$$$$$$) { ...@@ -147,6 +159,7 @@ sub spawn_impl ($$$$$$$) {
} }
} }
} }
if ( $input ) if ( $input )
{ {
if ( ! open(STDIN,"<",$input) ) if ( ! open(STDIN,"<",$input) )
...@@ -154,7 +167,11 @@ sub spawn_impl ($$$$$$$) { ...@@ -154,7 +167,11 @@ sub spawn_impl ($$$$$$$) {
mtr_error("can't redirect STDIN to \"$input\": $!"); mtr_error("can't redirect STDIN to \"$input\": $!");
} }
} }
exec($path,@$arg_list_t);
if ( ! exec($path,@$arg_list_t) )
{
mtr_error("failed to execute \"$path\": $!");
}
} }
} }
} }
...@@ -569,7 +586,7 @@ sub mtr_stop_mysqld_servers ($) { ...@@ -569,7 +586,7 @@ sub mtr_stop_mysqld_servers ($) {
sub mtr_mysqladmin_shutdown () { sub mtr_mysqladmin_shutdown () {
my $spec= shift; my $spec= shift;
my @mysql_admin_pids; my %mysql_admin_pids;
my @to_kill_specs; my @to_kill_specs;
foreach my $srv ( @$spec ) foreach my $srv ( @$spec )
...@@ -611,13 +628,19 @@ sub mtr_mysqladmin_shutdown () { ...@@ -611,13 +628,19 @@ sub mtr_mysqladmin_shutdown () {
# We don't wait for termination of mysqladmin # We don't wait for termination of mysqladmin
my $pid= mtr_spawn($::exe_mysqladmin, $args, my $pid= mtr_spawn($::exe_mysqladmin, $args,
"", $::path_manager_log, $::path_manager_log, ""); "", $::path_manager_log, $::path_manager_log, "");
push(@mysql_admin_pids, $pid); $mysql_admin_pids{$pid}= 1;
} }
# We wait blocking, we wait for the last one anyway # We wait blocking, we wait for the last one anyway
foreach my $pid (@mysql_admin_pids) while (keys %mysql_admin_pids)
{ {
waitpid($pid,0); # FIXME no need to check -1 or 0? foreach my $pid (keys %mysql_admin_pids)
{
if ( waitpid($pid,0) > 0 )
{
delete $mysql_admin_pids{$pid};
}
}
} }
# If we trusted "mysqladmin --shutdown_timeout= ..." we could just # If we trusted "mysqladmin --shutdown_timeout= ..." we could just
......
...@@ -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;
...@@ -358,6 +360,10 @@ sub main () { ...@@ -358,6 +360,10 @@ sub main () {
if ( $opt_start_and_exit ) if ( $opt_start_and_exit )
{ {
if ( ndbcluster_start() )
{
mtr_error("Can't start ndbcluster");
}
if ( mysqld_start('master',0,[],[]) ) if ( mysqld_start('master',0,[],[]) )
{ {
mtr_report("Servers started, exiting"); mtr_report("Servers started, exiting");
...@@ -422,7 +428,9 @@ sub initial_setup () { ...@@ -422,7 +428,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 +532,7 @@ sub command_line_setup () { ...@@ -524,6 +532,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 +721,16 @@ sub command_line_setup () { ...@@ -712,17 +721,16 @@ sub command_line_setup () {
# } # }
#} #}
if ( $opt_user ) if ( ! $opt_user )
{
$glob_user= $opt_user;
}
elsif ( $glob_use_running_server )
{ {
$glob_user= "test"; if ( $glob_use_running_server )
} {
else $opt_user= "test";
{ }
$glob_user= "root"; # We want to do FLUSH xxx commands else
{
$opt_user= "root"; # We want to do FLUSH xxx commands
}
} }
} }
...@@ -837,7 +845,7 @@ sub executable_setup () { ...@@ -837,7 +845,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 +868,6 @@ sub executable_setup () { ...@@ -860,9 +868,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;
...@@ -1054,7 +1059,7 @@ sub ndbcluster_start () { ...@@ -1054,7 +1059,7 @@ sub ndbcluster_start () {
"--data-dir=$glob_mysql_test_dir/var"], "--data-dir=$glob_mysql_test_dir/var"],
"", "/dev/null", "", "") ) "", "/dev/null", "", "") )
{ {
mtr_error("Error ndbcluster_install"); mtr_error("Error ndbcluster_start");
return 1; return 1;
} }
...@@ -1102,7 +1107,7 @@ sub run_benchmarks ($) { ...@@ -1102,7 +1107,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,15 +1231,41 @@ sub install_db ($$) { ...@@ -1226,15 +1231,41 @@ 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");
mtr_add_arg($args, "--bootstrap"); mtr_add_arg($args, "--bootstrap");
mtr_add_arg($args, "--console");
mtr_add_arg($args, "--skip-grant-tables"); mtr_add_arg($args, "--skip-grant-tables");
mtr_add_arg($args, "--basedir=%s", $path_my_basedir); mtr_add_arg($args, "--basedir=%s", $path_my_basedir);
mtr_add_arg($args, "--datadir=%s", $data_dir); mtr_add_arg($args, "--datadir=%s", $data_dir);
...@@ -1248,12 +1279,14 @@ sub install_db ($$) { ...@@ -1248,12 +1279,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);
} }
...@@ -1491,8 +1524,8 @@ sub report_failure_and_restart ($) { ...@@ -1491,8 +1524,8 @@ sub report_failure_and_restart ($) {
# but stop before actually running mysqld or anything. # but stop before actually running mysqld or anything.
sub do_before_start_master ($$) { sub do_before_start_master ($$) {
my $tname= shift; my $tname= shift;
my $master_init_script= shift; my $init_script= shift;
# FIXME what about second master..... # FIXME what about second master.....
...@@ -1502,8 +1535,8 @@ sub do_before_start_master ($$) { ...@@ -1502,8 +1535,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,23 +1545,19 @@ sub do_before_start_master ($$) { ...@@ -1512,23 +1545,19 @@ 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 ( $init_script )
if ( $master_init_script and
mtr_run($master_init_script, [], "", "", "", "") != 0 )
{ {
mtr_error("Can't run $master_init_script"); # We ignore the return code
mtr_run("/bin/sh", ["-c",$init_script], "", "", "", "");
} }
# for gcov FIXME needed? If so we need more absolute paths # for gcov FIXME needed? If so we need more absolute paths
# chdir($glob_basedir); # chdir($glob_basedir);
} }
sub do_before_start_slave ($$) { sub do_before_start_slave ($$) {
my $tname= shift; my $tname= shift;
my $slave_init_script= shift; my $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
...@@ -1544,14 +1573,15 @@ sub do_before_start_slave ($$) { ...@@ -1544,14 +1573,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 ( $init_script )
mtr_run($slave_init_script, [], "", "", "", "") != 0 )
{ {
mtr_error("Can't run $slave_init_script"); # We ignore the return code
mtr_run("/bin/sh", ["-c",$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 ($$$$$) {
...@@ -1579,6 +1609,7 @@ sub mysqld_arguments ($$$$$) { ...@@ -1579,6 +1609,7 @@ sub mysqld_arguments ($$$$$) {
mtr_add_arg($args, "%s--no-defaults", $prefix); mtr_add_arg($args, "%s--no-defaults", $prefix);
} }
mtr_add_arg($args, "%s--console", $prefix);
mtr_add_arg($args, "%s--basedir=%s", $prefix, $path_my_basedir); mtr_add_arg($args, "%s--basedir=%s", $prefix, $path_my_basedir);
mtr_add_arg($args, "%s--character-sets-dir=%s", $prefix, $path_charsetsdir); mtr_add_arg($args, "%s--character-sets-dir=%s", $prefix, $path_charsetsdir);
mtr_add_arg($args, "%s--core", $prefix); mtr_add_arg($args, "%s--core", $prefix);
...@@ -1669,12 +1700,12 @@ sub mysqld_arguments ($$$$$) { ...@@ -1669,12 +1700,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 +1820,17 @@ sub mysqld_start ($$$$) { ...@@ -1789,18 +1820,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 +2013,7 @@ sub run_mysqltest ($$) { ...@@ -1983,7 +2013,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 +2084,7 @@ sub run_mysqltest ($$) { ...@@ -2054,7 +2084,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 +2166,7 @@ Misc options ...@@ -2136,6 +2166,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
......
...@@ -21,17 +21,17 @@ INSERT INTO t2 VALUES (5,2,'um copo de Vodka'); ...@@ -21,17 +21,17 @@ INSERT INTO t2 VALUES (5,2,'um copo de Vodka');
INSERT INTO t2 VALUES (6,2,'um chocolate Snickers'); INSERT INTO t2 VALUES (6,2,'um chocolate Snickers');
INSERT INTO t2 VALUES (7,1,'Bife'); INSERT INTO t2 VALUES (7,1,'Bife');
INSERT INTO t2 VALUES (8,1,'Pizza de Salmao'); INSERT INTO t2 VALUES (8,1,'Pizza de Salmao');
SELECT t1.q, t2.item, t2.id, round(MATCH t2.item AGAINST ('sushi'),8) SELECT t1.q, t2.item, t2.id, round(MATCH t2.item AGAINST ('sushi'),6)
as x FROM t1, t2 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id; as x FROM t1, t2 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id;
q item id x q item id x
aaaaaaaaa dsaass de sushi 1 1.92378664 aaaaaaaaa dsaass de sushi 1 1.923787
aaaaaaaaa dsaass de Bolo de Chocolate 2 0.00000000 aaaaaaaaa dsaass de Bolo de Chocolate 2 0.000000
aaaaaaaaa dsaass de Feijoada 3 0.00000000 aaaaaaaaa dsaass de Feijoada 3 0.000000
aaaaaaaaa dsaass de Mousse de Chocolate 4 0.00000000 aaaaaaaaa dsaass de Mousse de Chocolate 4 0.000000
ssde df s fsda sad er um copo de Vodka 5 0.00000000 ssde df s fsda sad er um copo de Vodka 5 0.000000
ssde df s fsda sad er um chocolate Snickers 6 0.00000000 ssde df s fsda sad er um chocolate Snickers 6 0.000000
aaaaaaaaa dsaass de Bife 7 0.00000000 aaaaaaaaa dsaass de Bife 7 0.000000
aaaaaaaaa dsaass de Pizza de Salmao 8 0.00000000 aaaaaaaaa dsaass de Pizza de Salmao 8 0.000000
SELECT t1.q, t2.item, t2.id, MATCH t2.item AGAINST ('sushi' IN BOOLEAN MODE) SELECT t1.q, t2.item, t2.id, MATCH t2.item AGAINST ('sushi' IN BOOLEAN MODE)
as x FROM t1, t2 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id; as x FROM t1, t2 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id;
q item id x q item id x
...@@ -43,17 +43,17 @@ ssde df s fsda sad er um copo de Vodka 5 0 ...@@ -43,17 +43,17 @@ ssde df s fsda sad er um copo de Vodka 5 0
ssde df s fsda sad er um chocolate Snickers 6 0 ssde df s fsda sad er um chocolate Snickers 6 0
aaaaaaaaa dsaass de Bife 7 0 aaaaaaaaa dsaass de Bife 7 0
aaaaaaaaa dsaass de Pizza de Salmao 8 0 aaaaaaaaa dsaass de Pizza de Salmao 8 0
SELECT t1.q, t2.item, t2.id, round(MATCH t2.item AGAINST ('sushi'),8) SELECT t1.q, t2.item, t2.id, round(MATCH t2.item AGAINST ('sushi'),6)
as x FROM t2, t1 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id; as x FROM t2, t1 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id;
q item id x q item id x
aaaaaaaaa dsaass de sushi 1 1.92378664 aaaaaaaaa dsaass de sushi 1 1.923787
aaaaaaaaa dsaass de Bolo de Chocolate 2 0.00000000 aaaaaaaaa dsaass de Bolo de Chocolate 2 0.000000
aaaaaaaaa dsaass de Feijoada 3 0.00000000 aaaaaaaaa dsaass de Feijoada 3 0.000000
aaaaaaaaa dsaass de Mousse de Chocolate 4 0.00000000 aaaaaaaaa dsaass de Mousse de Chocolate 4 0.000000
ssde df s fsda sad er um copo de Vodka 5 0.00000000 ssde df s fsda sad er um copo de Vodka 5 0.000000
ssde df s fsda sad er um chocolate Snickers 6 0.00000000 ssde df s fsda sad er um chocolate Snickers 6 0.000000
aaaaaaaaa dsaass de Bife 7 0.00000000 aaaaaaaaa dsaass de Bife 7 0.000000
aaaaaaaaa dsaass de Pizza de Salmao 8 0.00000000 aaaaaaaaa dsaass de Pizza de Salmao 8 0.000000
SELECT t1.q, t2.item, t2.id, MATCH t2.item AGAINST ('sushi' IN BOOLEAN MODE) SELECT t1.q, t2.item, t2.id, MATCH t2.item AGAINST ('sushi' IN BOOLEAN MODE)
as x FROM t2, t1 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id; as x FROM t2, t1 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id;
q item id x q item id x
......
...@@ -2400,3 +2400,25 @@ id select_type table type possible_keys key key_len ref rows Extra ...@@ -2400,3 +2400,25 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 5 1 SIMPLE t1 ALL NULL NULL NULL NULL 5
1 SIMPLE t2 ref a a 23 test.t1.a 2 1 SIMPLE t2 ref a a 23 test.t1.a 2
DROP TABLE t1, t2; DROP TABLE t1, t2;
CREATE TABLE t1 ( city char(30) );
INSERT INTO t1 VALUES ('London');
INSERT INTO t1 VALUES ('Paris');
SELECT * FROM t1 WHERE city='London';
city
London
SELECT * FROM t1 WHERE city='london';
city
London
EXPLAIN SELECT * FROM t1 WHERE city='London' AND city='london';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
SELECT * FROM t1 WHERE city='London' AND city='london';
city
London
EXPLAIN SELECT * FROM t1 WHERE city LIKE '%london%' AND city='London';
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
SELECT * FROM t1 WHERE city LIKE '%london%' AND city='London';
city
London
DROP TABLE t1;
...@@ -482,3 +482,8 @@ SET GLOBAL MYISAM_DATA_POINTER_SIZE= 8; ...@@ -482,3 +482,8 @@ SET GLOBAL MYISAM_DATA_POINTER_SIZE= 8;
SHOW VARIABLES LIKE 'MYISAM_DATA_POINTER_SIZE'; SHOW VARIABLES LIKE 'MYISAM_DATA_POINTER_SIZE';
Variable_name Value Variable_name Value
myisam_data_pointer_size 8 myisam_data_pointer_size 8
SET GLOBAL table_cache=-1;
SHOW VARIABLES LIKE 'table_cache';
Variable_name Value
table_cache 1
SET GLOBAL table_cache=DEFAULT;
...@@ -29,13 +29,13 @@ INSERT INTO t2 VALUES (6,2,'um chocolate Snickers'); ...@@ -29,13 +29,13 @@ INSERT INTO t2 VALUES (6,2,'um chocolate Snickers');
INSERT INTO t2 VALUES (7,1,'Bife'); INSERT INTO t2 VALUES (7,1,'Bife');
INSERT INTO t2 VALUES (8,1,'Pizza de Salmao'); INSERT INTO t2 VALUES (8,1,'Pizza de Salmao');
SELECT t1.q, t2.item, t2.id, round(MATCH t2.item AGAINST ('sushi'),8) SELECT t1.q, t2.item, t2.id, round(MATCH t2.item AGAINST ('sushi'),6)
as x FROM t1, t2 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id; as x FROM t1, t2 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id;
SELECT t1.q, t2.item, t2.id, MATCH t2.item AGAINST ('sushi' IN BOOLEAN MODE) SELECT t1.q, t2.item, t2.id, MATCH t2.item AGAINST ('sushi' IN BOOLEAN MODE)
as x FROM t1, t2 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id; as x FROM t1, t2 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id;
SELECT t1.q, t2.item, t2.id, round(MATCH t2.item AGAINST ('sushi'),8) SELECT t1.q, t2.item, t2.id, round(MATCH t2.item AGAINST ('sushi'),6)
as x FROM t2, t1 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id; as x FROM t2, t1 WHERE (t2.id2 = t1.id) ORDER BY x DESC,t2.id;
SELECT t1.q, t2.item, t2.id, MATCH t2.item AGAINST ('sushi' IN BOOLEAN MODE) SELECT t1.q, t2.item, t2.id, MATCH t2.item AGAINST ('sushi' IN BOOLEAN MODE)
......
...@@ -599,6 +599,7 @@ drop table t2; ...@@ -599,6 +599,7 @@ drop table t2;
prepare stmt1 from ' rename table t5 to t6, t7 to t8 ' ; prepare stmt1 from ' rename table t5 to t6, t7 to t8 ' ;
create table t5 (a int) ; create table t5 (a int) ;
# rename must fail, t7 does not exist # rename must fail, t7 does not exist
--replace_result \\ /
--error 1017 --error 1017
execute stmt1 ; execute stmt1 ;
create table t7 (a int) ; create table t7 (a int) ;
......
...@@ -6,7 +6,7 @@ connection master; ...@@ -6,7 +6,7 @@ connection master;
drop database if exists mysqltest; drop database if exists mysqltest;
sync_slave_with_master; sync_slave_with_master;
# can't read dir # can't read dir
--replace_result "Errcode: 1" "Errcode: X" "Errcode: 2" "Errcode: X" --replace_result "Errcode: 1" "Errcode: X" "Errcode: 2" "Errcode: X" \\ /
--error 12 --error 12
show tables from mysqltest; show tables from mysqltest;
......
...@@ -1945,3 +1945,22 @@ EXPLAIN SELECT * FROM t1 LEFT JOIN t2 USE INDEX (a) ON t1.a=t2.a; ...@@ -1945,3 +1945,22 @@ EXPLAIN SELECT * FROM t1 LEFT JOIN t2 USE INDEX (a) ON t1.a=t2.a;
EXPLAIN SELECT * FROM t1 LEFT JOIN t2 FORCE INDEX (a) ON t1.a=t2.a; EXPLAIN SELECT * FROM t1 LEFT JOIN t2 FORCE INDEX (a) ON t1.a=t2.a;
DROP TABLE t1, t2; DROP TABLE t1, t2;
#
# Test case for bug 7098: substitution of a constant for a string field
#
CREATE TABLE t1 ( city char(30) );
INSERT INTO t1 VALUES ('London');
INSERT INTO t1 VALUES ('Paris');
SELECT * FROM t1 WHERE city='London';
SELECT * FROM t1 WHERE city='london';
EXPLAIN SELECT * FROM t1 WHERE city='London' AND city='london';
SELECT * FROM t1 WHERE city='London' AND city='london';
EXPLAIN SELECT * FROM t1 WHERE city LIKE '%london%' AND city='London';
SELECT * FROM t1 WHERE city LIKE '%london%' AND city='London';
DROP TABLE t1;
...@@ -362,3 +362,11 @@ drop table t1; ...@@ -362,3 +362,11 @@ drop table t1;
SET GLOBAL MYISAM_DATA_POINTER_SIZE= 8; SET GLOBAL MYISAM_DATA_POINTER_SIZE= 8;
SHOW VARIABLES LIKE 'MYISAM_DATA_POINTER_SIZE'; SHOW VARIABLES LIKE 'MYISAM_DATA_POINTER_SIZE';
#
# Bug #6958: negative arguments to integer options wrap around
#
SET GLOBAL table_cache=-1;
SHOW VARIABLES LIKE 'table_cache';
SET GLOBAL table_cache=DEFAULT;
...@@ -376,6 +376,7 @@ extern "C" { ...@@ -376,6 +376,7 @@ extern "C" {
int ndb_mgm_set_connectstring(NdbMgmHandle handle, int ndb_mgm_set_connectstring(NdbMgmHandle handle,
const char *connect_string); const char *connect_string);
int ndb_mgm_set_configuration_nodeid(NdbMgmHandle handle, int nodeid);
int ndb_mgm_get_configuration_nodeid(NdbMgmHandle handle); int ndb_mgm_get_configuration_nodeid(NdbMgmHandle handle);
int ndb_mgm_get_connected_port(NdbMgmHandle handle); int ndb_mgm_get_connected_port(NdbMgmHandle handle);
const char *ndb_mgm_get_connected_host(NdbMgmHandle handle); const char *ndb_mgm_get_connected_host(NdbMgmHandle handle);
......
...@@ -55,6 +55,8 @@ public: ...@@ -55,6 +55,8 @@ public:
*/ */
Uint32 allocNodeId(int no_retries, int retry_delay_in_seconds); Uint32 allocNodeId(int no_retries, int retry_delay_in_seconds);
int setNodeId(Uint32 nodeid);
/** /**
* Get config using socket * Get config using socket
*/ */
......
...@@ -316,6 +316,12 @@ ConfigRetriever::verifyConfig(const struct ndb_mgm_configuration * conf, Uint32 ...@@ -316,6 +316,12 @@ ConfigRetriever::verifyConfig(const struct ndb_mgm_configuration * conf, Uint32
return true; return true;
} }
int
ConfigRetriever::setNodeId(Uint32 nodeid)
{
return ndb_mgm_set_configuration_nodeid(m_handle, nodeid);
}
Uint32 Uint32
ConfigRetriever::allocNodeId(int no_retries, int retry_delay_in_seconds) ConfigRetriever::allocNodeId(int no_retries, int retry_delay_in_seconds)
{ {
......
...@@ -141,6 +141,8 @@ Configuration::init(int argc, char** argv) ...@@ -141,6 +141,8 @@ Configuration::init(int argc, char** argv)
else else
_programName = strdup(""); _programName = strdup("");
globalData.ownId= 0;
return true; return true;
} }
...@@ -215,6 +217,13 @@ Configuration::fetch_configuration(){ ...@@ -215,6 +217,13 @@ Configuration::fetch_configuration(){
ConfigRetriever &cr= *m_config_retriever; ConfigRetriever &cr= *m_config_retriever;
/**
* if we have a nodeid set (e.g in a restart situation)
* reuse it
*/
if (globalData.ownId)
cr.setNodeId(globalData.ownId);
globalData.ownId = cr.allocNodeId(2 /*retry*/,3 /*delay*/); globalData.ownId = cr.allocNodeId(2 /*retry*/,3 /*delay*/);
if(globalData.ownId == 0){ if(globalData.ownId == 0){
......
...@@ -1720,6 +1720,15 @@ ndb_mgm_destroy_configuration(struct ndb_mgm_configuration *cfg) ...@@ -1720,6 +1720,15 @@ ndb_mgm_destroy_configuration(struct ndb_mgm_configuration *cfg)
} }
} }
extern "C"
int
ndb_mgm_set_configuration_nodeid(NdbMgmHandle handle, int nodeid)
{
CHECK_HANDLE(handle, -1);
handle->cfg._ownNodeId= nodeid;
return 0;
}
extern "C" extern "C"
int int
ndb_mgm_get_configuration_nodeid(NdbMgmHandle handle) ndb_mgm_get_configuration_nodeid(NdbMgmHandle handle)
......
...@@ -1069,16 +1069,19 @@ print_nodes(ndb_mgm_cluster_state *state, ndb_mgm_configuration_iterator *it, ...@@ -1069,16 +1069,19 @@ print_nodes(ndb_mgm_cluster_state *state, ndb_mgm_configuration_iterator *it,
} }
ndbout << ")" << endl; ndbout << ")" << endl;
} else { } else {
if(ndb_mgm_find(it, CFG_NODE_ID, node_id) != 0){ ndb_mgm_first(it);
if(ndb_mgm_find(it, CFG_NODE_ID, node_id) == 0){
const char *config_hostname= 0;
ndb_mgm_get_string_parameter(it, CFG_NODE_HOST, &config_hostname);
if (config_hostname == 0 || config_hostname[0] == 0)
config_hostname= "any host";
ndbout_c(" (not connected, accepting connect from %s)",
config_hostname);
}
else
{
ndbout_c("Unable to find node with id: %d", node_id); ndbout_c("Unable to find node with id: %d", node_id);
return;
} }
const char *config_hostname= 0;
ndb_mgm_get_string_parameter(it, CFG_NODE_HOST, &config_hostname);
if (config_hostname == 0 || config_hostname[0] == 0)
config_hostname= "any host";
ndbout << " (not connected, accepting connect from "
<< config_hostname << ")" << endl;
} }
} }
} }
......
...@@ -742,7 +742,7 @@ class Item_string :public Item ...@@ -742,7 +742,7 @@ class Item_string :public Item
Item *new_item() Item *new_item()
{ {
return new Item_string(name, str_value.ptr(), return new Item_string(name, str_value.ptr(),
str_value.length(), &my_charset_bin); str_value.length(), collation.collation);
} }
Item *safe_charset_converter(CHARSET_INFO *tocs); Item *safe_charset_converter(CHARSET_INFO *tocs);
String *const_string() { return &str_value; } String *const_string() { return &str_value; }
......
...@@ -1223,6 +1223,12 @@ static void fix_server_id(THD *thd, enum_var_type type) ...@@ -1223,6 +1223,12 @@ static void fix_server_id(THD *thd, enum_var_type type)
server_id_supplied = 1; server_id_supplied = 1;
} }
bool sys_var_long_ptr::check(THD *thd, set_var *var)
{
longlong v= var->value->val_int();
var->save_result.ulonglong_value= v < 0 ? 0 : v;
return 0;
}
bool sys_var_long_ptr::update(THD *thd, set_var *var) bool sys_var_long_ptr::update(THD *thd, set_var *var)
{ {
......
...@@ -93,6 +93,7 @@ class sys_var_long_ptr :public sys_var ...@@ -93,6 +93,7 @@ class sys_var_long_ptr :public sys_var
sys_var_long_ptr(const char *name_arg, ulong *value_ptr, sys_var_long_ptr(const char *name_arg, ulong *value_ptr,
sys_after_update_func func) sys_after_update_func func)
:sys_var(name_arg,func), value(value_ptr) {} :sys_var(name_arg,func), value(value_ptr) {}
bool check(THD *thd, set_var *var);
bool update(THD *thd, set_var *var); bool update(THD *thd, set_var *var);
void set_default(THD *thd, enum_var_type type); void set_default(THD *thd, enum_var_type type);
SHOW_TYPE type() { return SHOW_LONG; } SHOW_TYPE type() { return SHOW_LONG; }
......
...@@ -276,7 +276,6 @@ sh -c "PATH=\"${MYSQL_BUILD_PATH:-$PATH}\" \ ...@@ -276,7 +276,6 @@ sh -c "PATH=\"${MYSQL_BUILD_PATH:-$PATH}\" \
--includedir=%{_includedir} \ --includedir=%{_includedir} \
--mandir=%{_mandir} \ --mandir=%{_mandir} \
--enable-thread-safe-client \ --enable-thread-safe-client \
--with-comment=\"Official MySQL RPM\" \
--with-readline ; --with-readline ;
# Add this for more debugging support # Add this for more debugging support
# --with-debug # --with-debug
...@@ -333,6 +332,7 @@ BuildMySQL "--enable-shared \ ...@@ -333,6 +332,7 @@ BuildMySQL "--enable-shared \
--with-csv-storage-engine \ --with-csv-storage-engine \
--with-example-storage-engine \ --with-example-storage-engine \
--with-embedded-server \ --with-embedded-server \
--with-comment=\"MySQL Community Edition - Max (GPL)\" \
--with-server-suffix='-Max'" --with-server-suffix='-Max'"
# Save everything for debug # Save everything for debug
...@@ -379,6 +379,7 @@ BuildMySQL "--disable-shared \ ...@@ -379,6 +379,7 @@ BuildMySQL "--disable-shared \
--with-client-ldflags='-all-static' \ --with-client-ldflags='-all-static' \
$USE_OTHER_LIBC_DIR \ $USE_OTHER_LIBC_DIR \
%endif %endif
--with-comment=\"MySQL Community Edition - Standard (GPL)\" \
--with-server-suffix='%{server_suffix}' \ --with-server-suffix='%{server_suffix}' \
--without-embedded-server \ --without-embedded-server \
--without-berkeley-db \ --without-berkeley-db \
...@@ -694,7 +695,12 @@ fi ...@@ -694,7 +695,12 @@ fi
# itself - note that they must be ordered by date (important when # itself - note that they must be ordered by date (important when
# merging BK trees) # merging BK trees)
%changelog %changelog
* Monday Feb 7 2005 Tomas Ulin <tomas@mysql.com> * Mon Feb 14 2005 Lenz Grimmer <lenz@mysql.com>
* Fixed the compilation comments and moved them into the separate build sections
for Max and Standard
* Mon Feb 7 2005 Tomas Ulin <tomas@mysql.com>
- enabled the "Ndbcluster" storage engine for the max binary - enabled the "Ndbcluster" storage engine for the max binary
- added extra make install in ndb subdir after Max build to get ndb binaries - added extra make install in ndb subdir after Max build to get ndb binaries
......
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