From ace649189d566532a46ff110db15ccde117ce4af Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 29 Nov 2001 15:34:37 +0200 Subject: Better optimization for InnoDB and BDB tables for ORDER BY Build-tools/Do-compile: Merge with 4.0 Docs/manual.texi: Changelog mysql-test/r/innodb.result: New tests cases for ORDER BY mysql-test/r/myisam.result: New tests cases for ORDER BY mysql-test/t/innodb.test: New tests cases for ORDER BY mysql-test/t/myisam.test: New tests cases for ORDER BY --- Build-tools/Do-compile | 73 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 67 insertions(+), 6 deletions(-) (limited to 'Build-tools') diff --git a/Build-tools/Do-compile b/Build-tools/Do-compile index 6c5f79e0d4f..24b70453e5f 100755 --- a/Build-tools/Do-compile +++ b/Build-tools/Do-compile @@ -36,6 +36,10 @@ if (defined($gcc_version) && ! $opt_config_env) { $opt_config_env= 'CC=gcc CFLAGS="-O2 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O2 -fno-omit-frame-pointer"'; } + elsif ($tmp =~ /version 3\.0\./) + { + $opt_config_env= 'CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti"'; + } else { $opt_config_env= 'CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti"'; @@ -65,10 +69,11 @@ $sendmail=find("/usr/lib/sendmail","/usr/sbin/sendmail"); $sur= $opt_sur ? "/my/local/bin/sur" : ""; delete $ENV{'MYSQL_PWD'}; # Reset possibly password delete $ENV{'MY_BASEDIR_VERSION'}; -$ENV{'MYSQL_TCP_PORT'}= $mysql_tcp_port= 3334 + $opt_build_thread; +$ENV{'MYSQL_TCP_PORT'}= $mysql_tcp_port= 3334 + $opt_build_thread*2; $ENV{'MYSQL_UNIX_PORT'}=$mysql_unix_port="$opt_tmp/mysql$opt_suffix.build"; $ENV{"PERL5LIB"}="$pwd/$host/perl5:$pwd/$host/perl5/site_perl"; $slave_port=$mysql_tcp_port+16; +$manager_port=$mysql_tcp_port+1; if (-x "$host/bin/mysqladmin") { @@ -78,6 +83,7 @@ if (-x "$host/bin/mysqladmin") log_system("$host/bin/mysqladmin --no-defaults -u root -P 9306 -h $host -s shutdown"); log_system("$host/bin/mysqladmin --no-defaults -u root -P 9307 -h $host -s shutdown"); } +kill_all("mysqlmanager"); if ($opt_stage == 0) { @@ -106,7 +112,21 @@ safe_cd("$host"); if ($opt_stage == 0 && ! $opt_use_old_distribution) { safe_system("gunzip < $opt_distribution | $tar xf -"); + + # Fix file times; This is needed because the time for files may be + # in the future + system("touch timestamp; find . -newer timestamp -print | xargs touch; rm -f timestamp"); + sleep(2); + # Ensure that files we don't want to rebuild are newer than other files + foreach $name ("configure", + "Docs/include.texi", + "Docs/*.html", "Docs/manual.txt", "Docs/mysql.info", + "sql/sql_yacc.h", "sql/sql_yacc.cc") + { + system("touch $name"); + } } + safe_cd($ver); if ($opt_stage <= 1) { @@ -136,7 +156,7 @@ if ($opt_stage <= 1) { $opt_config_options.= " --with-innodb" } - check_system("$opt_config_env ./configure --prefix=/usr/local/mysql \"--with-comment=Official MySQL$version_suffix binary\" --with-extra-charsets=complex \"--with-server-suffix=$version_suffix\" $opt_config_options","Thank you for choosing MySQL"); + check_system("$opt_config_env ./configure --prefix=/usr/local/mysql \"--with-comment=Official MySQL$version_suffix binary\" --with-extra-charsets=complex \"--with-server-suffix=$version_suffix\" --enable-thread-safe-client $opt_config_options","Thank you for choosing MySQL"); if (-d "$pwd/$host/include-mysql") { safe_system("cp -r $pwd/$host/include-mysql/* $pwd/$host/$ver/include"); @@ -192,7 +212,7 @@ if ($opt_stage <= 4 && !$opt_no_test) $tar_file =~ /(mysql-[^\/]*)\.tar/; $ver=$1; $test_dir="$pwd/$host/test/$ver"; -$ENV{"LD_LIBRARY_PATH"}= "$testdir/lib:" . $ENV{"LD_LIBRARY_PATH"}; +$ENV{"LD_LIBRARY_PATH"}= "$test_dir/lib:" . $ENV{"LD_LIBRARY_PATH"}; if ($opt_stage <= 5 && !$opt_no_test && !$opt_no_mysqltest) { @@ -220,7 +240,7 @@ if (!$opt_no_test) { $extra.=" --innodb_data_file_path=ibdata1:100M"; } - safe_system("./bin/mysqld --no-defaults --basedir . --datadir ./data --skip-l\ocking $extra >> $log 2>&1 &"); + safe_system("./bin/mysqld --no-defaults --basedir . --datadir ./data --skip-locking $extra >> $log 2>&1 &"); sleep(2); } @@ -300,7 +320,7 @@ exit 0; sub usage { print <) + { + chop($cand); + ($pid_user, $pid) = split(' ', $cand); + next if $pid == $$; + next process if (! ($cand =~ $pattern) || $pid_user ne $user); + print LOG "Killing $_\n"; + &killpid($pid); + } +} + +sub killpid +{ + local($pid) = @_; + kill 15, $pid; + for (1..5) + { + sleep 2; + return if kill(0, $pid) == 0; + } + kill 9, $pid; + for (1..5) { + sleep 2; + return if kill(0, $pid) == 0; + } + print LOG "$pid will not die!\n"; +} -- cgit v1.2.1