From e1977075445232633a2d71f179daf393e2aa53ea Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 2 Mar 2005 12:19:44 -0800 Subject: [PATCH 1/7] Create directory for UNIX socket in mysqld_safe if it doesn't already exist. (Bug #8513) scripts/mysqld_safe.sh: Create directory for UNIX socket if it doesn't exist --- scripts/mysqld_safe.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index f6b0169d230..308db270828 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -150,6 +150,15 @@ parse_arguments `$print_defaults $defaults --loose-verbose mysqld_safe safe_mysq parse_arguments PICK-ARGS-FROM-ARGV "$@" safe_mysql_unix_port=${mysql_unix_port:-${MYSQL_UNIX_PORT:-@MYSQL_UNIX_ADDR@}} +# Make sure that directory for $safe_mysql_unix_port exists +mysql_unix_port_dir=`dirname $safe_mysql_unix_port` +if [ ! -d $mysql_unix_port_dir ] +then + mkdir $mysql_unix_port_dir + chown $user $mysql_unix_port_dir +fi + + if test ! -x $ledir/$MYSQLD then echo "The file $ledir/$MYSQLD doesn't exist or is not executable" From ae2542b63212719555901f7340de7f88691fb195 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 3 Mar 2005 13:04:44 +0100 Subject: [PATCH 2/7] Ensure that the tests with '--ps-protocol' and '--embedded-server' are taken even after the previous run had some failures, provided it did not totally crash. Build-tools/Do-compile: Change the search string for a test run from "tests were successful" to just "were successful", which is written by the test run even after some failures. This is necessary to start the next test suite ('--ps-protocol', '--embedded-server') even after the previous one had some test failures. mysql-test/mysql-test-run.sh: Change the message even after test failures so that it is fairly safe to identify the end of the run from it (as opposed to a crash of the script). It is essential that both a run without any and with some test failures write "were successful" so that it can be grepped. --- Build-tools/Do-compile | 6 +++--- mysql-test/mysql-test-run.sh | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Build-tools/Do-compile b/Build-tools/Do-compile index e7ab3357de9..f9074d113ff 100755 --- a/Build-tools/Do-compile +++ b/Build-tools/Do-compile @@ -392,13 +392,13 @@ if ($opt_stage <= 5 && !$opt_no_test && !$opt_no_mysqltest) info("Running test suite"); system("mkdir $bench_tmpdir") if (! -d $bench_tmpdir); safe_cd("${test_dir}/mysql-test"); - check_system("./mysql-test-run $flags --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --ndbcluster_port=$ndbcluster_port --manager-port=$manager_port --no-manager --sleep=10", "tests were successful"); + check_system("./mysql-test-run $flags --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --ndbcluster_port=$ndbcluster_port --manager-port=$manager_port --no-manager --sleep=10", "were successful"); unless ($opt_skip_ps_test) { log_timestamp(); info("Running test suite using prepared statements"); - check_system("./mysql-test-run $flags --ps-protocol --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --ndbcluster_port=$ndbcluster_port --manager-port=$manager_port --no-manager --sleep=10", "tests were successful"); + check_system("./mysql-test-run $flags --ps-protocol --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --ndbcluster_port=$ndbcluster_port --manager-port=$manager_port --no-manager --sleep=10", "were successful"); } unless ($opt_skip_embedded_test) @@ -407,7 +407,7 @@ if ($opt_stage <= 5 && !$opt_no_test && !$opt_no_mysqltest) info("Running embedded server test suite"); # Embedded server and NDB don't jive $flags=~ s/ --with-ndbcluster//; - check_system("./mysql-test-run $flags --embedded-server --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --manager-port=$manager_port --no-manager --sleep=10", "tests were successful"); + check_system("./mysql-test-run $flags --embedded-server --tmpdir=$bench_tmpdir --master_port=$mysql_tcp_port --slave_port=$slave_port --manager-port=$manager_port --no-manager --sleep=10", "were successful"); } # 'mysql-test-run' writes its own final message for log evaluation. } diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh index 8c484d2ddb1..d9172216919 100644 --- a/mysql-test/mysql-test-run.sh +++ b/mysql-test/mysql-test-run.sh @@ -833,7 +833,7 @@ report_stats () { whole=`$PRINTF %.2s $raw` xwhole=`$EXPR $whole \* 100` deci=`$EXPR $raw - $xwhole` - $ECHO "Failed ${TOT_FAIL}/${TOT_TEST} tests, ${whole}.${deci}% successful." + $ECHO "Failed ${TOT_FAIL}/${TOT_TEST} tests, ${whole}.${deci}% were successful." $ECHO "" $ECHO "The log files in $MY_LOG_DIR may give you some hint" $ECHO "of what when wrong." From 8e24e6079f0a0e60dee696a9164bf4d8356c9630 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 7 Mar 2005 18:15:19 -0800 Subject: [PATCH 3/7] Flush entries from the query cache for tables used in administrative statements that may alter the table, such as REPAIR TABLE. (Bug #8480) mysql-test/r/query_cache.result: Add new results mysql-test/t/query_cache.test: Add regression test sql/sql_table.cc: Make sure entries are flushed from the query cache for any administrative command run on a table that acquires a write lock on it (and thus might change it), like REPAIR TABLE. --- mysql-test/r/query_cache.result | 20 ++++++++++++++++++++ mysql-test/t/query_cache.test | 12 ++++++++++++ sql/sql_table.cc | 4 +++- 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/query_cache.result b/mysql-test/r/query_cache.result index 85fe77b1f10..af86f67f8c3 100644 --- a/mysql-test/r/query_cache.result +++ b/mysql-test/r/query_cache.result @@ -717,4 +717,24 @@ select * from t1; a drop table t1; drop table t1; +set global query_cache_size=1024*1024; +flush query cache; +create table t1 ( a int ); +insert into t1 values (1); +select a from t1; +a +1 +select a from t1; +a +1 +show status like 'qcache_queries_in_cache'; +Variable_name Value +Qcache_queries_in_cache 1 +repair table t1; +Table Op Msg_type Msg_text +test.t1 repair status OK +show status like 'qcache_queries_in_cache'; +Variable_name Value +Qcache_queries_in_cache 0 +drop table t1; set GLOBAL query_cache_size=0; diff --git a/mysql-test/t/query_cache.test b/mysql-test/t/query_cache.test index 61fbadde1e1..35eefececf3 100644 --- a/mysql-test/t/query_cache.test +++ b/mysql-test/t/query_cache.test @@ -533,4 +533,16 @@ select * from t1; drop table t1; drop table t1; +# Bug #8480: REPAIR TABLE needs to flush the table from the query cache +set global query_cache_size=1024*1024; +flush query cache; +create table t1 ( a int ); +insert into t1 values (1); +select a from t1; +select a from t1; +show status like 'qcache_queries_in_cache'; +repair table t1; +show status like 'qcache_queries_in_cache'; +drop table t1; + set GLOBAL query_cache_size=0; diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 33bdd992efb..20d9b1dcb7d 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -1318,7 +1318,9 @@ static int mysql_admin_table(THD* thd, TABLE_LIST* tables, thd->exit_cond(old_message); if (thd->killed) goto err; - open_for_modify=0; + /* Flush entries in the query cache involving this table. */ + query_cache_invalidate3(thd, table->table, 0); + open_for_modify= 0; } int result_code = (table->table->file->*operator_func)(thd, check_opt); From 33f9d926f4ddb57d0b5a5a99565cd261bf828ccf Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 10 Mar 2005 21:13:46 +0100 Subject: [PATCH 4/7] Correct "make_win_src_distribution" to not introduce additional directory layers, adapt the Windows build files accordingly. VC++Files/tests/mysql_client_test.dsp: As the directory structure on Windows now resembles that on Unix (no more "tests/tests", by the correction in "make_win_src_distribution.sh"), the location of "mysql_client_test.*" has changed. Adapt the build tools accordingly. VC++Files/tests/mysql_client_test_ia64.dsp: As the directory structure on Windows now resembles that on Unix (no more "tests/tests", by the correction in "make_win_src_distribution.sh"), the location of "mysql_client_test.*" has changed. Adapt the build tools accordingly. scripts/make_win_src_distribution.sh: 1) The semantics of "cp -R src targ" depend on the (non)existence of "targ". By simply doing "$CP -R $i $BASE/$i", the directory hierarchy below $BASE differed from the source for each "$i" that already existed as a target directory. This is now prevented by checking the existence and adapting the command. 2) Comment where "$BASE" (the target directory) comes into existence. 3) Introduce an "abort" function as a start point for more sanity checks, use it. --- VC++Files/tests/mysql_client_test.dsp | 10 +++---- VC++Files/tests/mysql_client_test_ia64.dsp | 6 ++-- scripts/make_win_src_distribution.sh | 34 ++++++++++++++++------ 3 files changed, 33 insertions(+), 17 deletions(-) diff --git a/VC++Files/tests/mysql_client_test.dsp b/VC++Files/tests/mysql_client_test.dsp index 3d1e6728181..14873c8a94c 100644 --- a/VC++Files/tests/mysql_client_test.dsp +++ b/VC++Files/tests/mysql_client_test.dsp @@ -51,8 +51,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib /nologo /out:"..\tests\mysql_client_test.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_client_test.pdb" /pdbtype:sept /map:".\Debug\mysql_client_test.map" /subsystem:console -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib /nologo /out:"..\tests\mysql_client_test.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_client_test.pdb" /pdbtype:sept /map:".\Debug\mysql_client_test.map" /subsystem:console +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib /nologo /out:"..\mysql_client_test.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_client_test.pdb" /pdbtype:sept /map:".\Debug\mysql_client_test.map" /subsystem:console +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib mysqlclient.lib wsock32.lib mysys.lib regex.lib /nologo /out:"..\mysql_client_test.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_client_test.pdb" /pdbtype:sept /map:".\Debug\mysql_client_test.map" /subsystem:console !ELSEIF "$(CFG)" == "mysql_client_test - Win32 Release" @@ -76,8 +76,8 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\tests\mysql_client_test.exe" /incremental:no /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\tests\mysql_client_test.exe" /incremental:no /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql_client_test.exe" /incremental:no /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql_client_test.exe" /incremental:no /pdb:".\Release\mysql_client_test.pdb" /pdbtype:sept /subsystem:console !ENDIF @@ -87,7 +87,7 @@ LINK32=link.exe # Name "mysql_client_test - Win32 Release" # Begin Source File -SOURCE=tests\mysql_client_test.c +SOURCE=mysql_client_test.c # End Source File # End Target # End Project diff --git a/VC++Files/tests/mysql_client_test_ia64.dsp b/VC++Files/tests/mysql_client_test_ia64.dsp index 6b4f29ed59f..f9dfbe5f027 100644 --- a/VC++Files/tests/mysql_client_test_ia64.dsp +++ b/VC++Files/tests/mysql_client_test_ia64.dsp @@ -48,16 +48,16 @@ BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /out:"..\tests\mysql_client_test.exe" /machine:IA64 +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /out:"..\mysql_client_test.exe" /machine:IA64 # SUBTRACT BASE LINK32 /pdb:none -# ADD LINK32 ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\libmysql.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib bufferoverflowU.lib /nologo /subsystem:console /nodefaultlib /out:"..\tests\mysql_client_test.exe" /machine:IA64 /machine:IA64 +# ADD LINK32 ..\lib_release\mysys.lib ..\lib_release\strings.lib ..\lib_release\libmysql.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib bufferoverflowU.lib /nologo /subsystem:console /nodefaultlib /out:"..\mysql_client_test.exe" /machine:IA64 /machine:IA64 # SUBTRACT LINK32 /pdb:none # Begin Target # Name "mysql_client_test - WinIA64 Release" # Begin Source File -SOURCE=tests\mysql_client_test.c +SOURCE=mysql_client_test.c DEP_CPP_MYSQL=\ "..\include\config-netware.h"\ "..\include\config-os2.h"\ diff --git a/scripts/make_win_src_distribution.sh b/scripts/make_win_src_distribution.sh index b52cc3799aa..036ed6fcc93 100644 --- a/scripts/make_win_src_distribution.sh +++ b/scripts/make_win_src_distribution.sh @@ -15,13 +15,26 @@ DIRNAME="" OUTTAR="0" OUTZIP="0" +# +# An "abort" function taking a variable number of strings (one per line) +# + +abort() +{ + for line + do + echo "$line" + done + exit 1 +} + + # # This script must run from MySQL top directory # if [ ! -f scripts/make_win_src_distribution ]; then - echo "ERROR : You must run this script from the MySQL top-level directory" - exit 1 + abort "ERROR : You must run this script from the MySQL top-level directory" fi SOURCE=`pwd` @@ -30,9 +43,8 @@ SOURCE=`pwd` # if [ ! -f sql/sql_yacc.cc ]; then - echo "ERROR : Sorry, you must run this script after the complete build," - echo " hope you know what you are trying to do !!" - exit 1 + abort "ERROR : Sorry, you must run this script after the complete build," \ + " hope you know what you are trying to do !!" fi # @@ -86,9 +98,7 @@ parse_arguments() { --tar) OUTTAR=1 ;; --zip) OUTZIP=1 ;; --help) show_usage ;; - *) - echo "Unknown argument '$arg'" - exit 1 + *) abort "Unknown argument '$arg'" ;; esac done @@ -138,6 +148,7 @@ if [ -d $BASE ] ; then fi $CP -r $SOURCE/VC++Files $BASE +# This includes an implicit 'mkdir $BASE' ! # # Process version tags in InstallShield files @@ -310,7 +321,12 @@ do print_debug "Copying directory '$i'" if [ -d $i ] then - $CP -R $i $BASE/$i + if [ -d $BASE/$i ] + then + $CP -R $i $BASE + else + $CP -R $i $BASE/$i + fi fi done From 7c90fa7b2cb8131bfcf314c1e25538bd1062fa5d Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 11 Mar 2005 02:17:03 +0300 Subject: [PATCH 5/7] Fix for BUG#8711: "<=>" may have true value for NULL arguments, so make Item_func_equal::not_null_tables() always return 0. mysql-test/r/join_outer.result: Testcase for BUG#8711 mysql-test/t/join_outer.test: Testcase for BUG#8711 sql/item_cmpfunc.h: Fix for BUG#8711: "<=>" may have true value for NULL arguments, i.e. it can accept NULL-complemented table rows. This differs from assumptions made in Item_func::not_null_tables(), so add Item_func_equal::not_null_tables(). Item_func_equal::not_null_tables_cache value doesn't make sense now, but we still let it be calculated (and ignore it) --- mysql-test/r/join_outer.result | 20 ++++++++++++++++++++ mysql-test/t/join_outer.test | 13 +++++++++++++ sql/item_cmpfunc.h | 1 + 3 files changed, 34 insertions(+) diff --git a/mysql-test/r/join_outer.result b/mysql-test/r/join_outer.result index 5778b2f9b72..d6ce93e632b 100644 --- a/mysql-test/r/join_outer.result +++ b/mysql-test/r/join_outer.result @@ -684,3 +684,23 @@ t1 ALL NULL NULL NULL NULL 3 t2 ALL NULL NULL NULL NULL 2 t3 ALL NULL NULL NULL NULL 2 drop table t1, t2, t3; +create table t1 ( +a int(11), +b char(10), +key (a) +); +insert into t1 (a) values (1),(2),(3),(4); +create table t2 (a int); +select * from t1 left join t2 on t1.a=t2.a where not (t2.a <=> t1.a); +a b a +1 NULL NULL +2 NULL NULL +3 NULL NULL +4 NULL NULL +select * from t1 left join t2 on t1.a=t2.a having not (t2.a <=> t1.a); +a b a +1 NULL NULL +2 NULL NULL +3 NULL NULL +4 NULL NULL +drop table t1,t2; diff --git a/mysql-test/t/join_outer.test b/mysql-test/t/join_outer.test index bed4d4b033b..f32cc9d56ac 100644 --- a/mysql-test/t/join_outer.test +++ b/mysql-test/t/join_outer.test @@ -450,3 +450,16 @@ select * from t1 left join t2 on b1 = a1 left join t3 on c1 = a1 and b1 is explain select * from t1 left join t2 on b1 = a1 left join t3 on c1 = a1 and b1 is null; drop table t1, t2, t3; + +# Test for BUG#8711 '<=>' was considered to be a NULL-rejecting predicate. +create table t1 ( + a int(11), + b char(10), + key (a) +); +insert into t1 (a) values (1),(2),(3),(4); +create table t2 (a int); + +select * from t1 left join t2 on t1.a=t2.a where not (t2.a <=> t1.a); +select * from t1 left join t2 on t1.a=t2.a having not (t2.a <=> t1.a); +drop table t1,t2; diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h index 8f1aa525190..a1977e76f67 100644 --- a/sql/item_cmpfunc.h +++ b/sql/item_cmpfunc.h @@ -78,6 +78,7 @@ public: Item_func_equal(Item *a,Item *b) :Item_bool_func2(a,b) { }; longlong val_int(); void fix_length_and_dec(); + table_map not_null_tables() const { return 0; } enum Functype functype() const { return EQUAL_FUNC; } enum Functype rev_functype() const { return EQUAL_FUNC; } cond_result eq_cmp_result() const { return COND_TRUE; } From 27a69b091e87cb7c406ae14b568bfb9d48a5db30 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 10 Mar 2005 19:42:52 -0600 Subject: [PATCH 6/7] Do-solaris-pkg: Many changes to improve error handling, and fix problem of multiple packaging processes trampling each other (32 & 64bit at the same time) Build-tools/Do-solaris-pkg: Many changes to improve error handling, and fix problem of multiple packaging processes trampling each other (32 & 64bit at the same time) --- Build-tools/Do-solaris-pkg | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Build-tools/Do-solaris-pkg b/Build-tools/Do-solaris-pkg index 685a1f0923b..8815033146c 100644 --- a/Build-tools/Do-solaris-pkg +++ b/Build-tools/Do-solaris-pkg @@ -14,19 +14,17 @@ $pkginfo = "pkginfo"; ($gid ,$pkg ,$uid ,$userInfo ,$email ,$quota ,$group ,$passwd ,$category ,$userHome ,$vendor ,$loginShell ,$pstamp ,$basedir)=(); -$fullname = shift @ARGV; -$fullname or die "No package name was specified"; --d $fullname or die "That directory is not present!"; +$tarball= $fullname= shift @ARGV; +$fullname=~ s/.*(mysql.*)\.tar\.gz/$1/; +$workdir= $$; +chomp ($parent_workdir= `pwd`); -$fullname =~ s,/+$,,; # Remove ending slash if any +$hostname= ($fullname=~ m/^.+-64bit$/) ? $hostname . "-64bit" : $hostname; +$pkgdir= "$ENV{'HOME'}/$hostname"; -$pkgdir= `cd ../$hostname; pwd`; -$pwd = `pwd`; -if ($pwd =~ '\/usr\/local') { - $pwd = $`; -} -die "Wrong location, please cd to /usr/local/ and run again.\n" - if ($pwd eq ""); +mkdir $workdir or die "Can't make workdir: $!\n"; +chdir $workdir or die "Can't change to workdir: $!\n"; +system ("tar xzvf $tarball") == 0 or die "Can't untar: $!\n"; system ("$find . -print | $pkgproto > $temp"); open (PREPROTO,"<$temp") or die "Unable to read prototype information ($!)\n"; @@ -57,8 +55,9 @@ unlink $temp or warn "Unable to remove tempfile ($!)\n"; # Now we can start building the package # # First get some info +$fullname =~ s,/+$,,; # Remove ending slash if any -$fullname =~ /^((mysql)-.+)-([\d\.]+)-.+$/ +$fullname =~ /^((mysql)-\w+-?\w+?)-([\d\.]+\w?)-.+$/ or die "This name is not what I expected - \"$fullname\""; $default{"name"}= $2; @@ -137,10 +136,11 @@ system ("gzip /tmp/$packagename"); # Clean-up the spool area system ("(cd /var/spool/pkg; rm -rf $pkg)"); # Clean-up the ~/packaging/ area -system ("(rm -rf mysql*)"); unlink $pkginfo; unlink $prototype; -system ("mv /tmp/${packagename}.gz $pkgdir"); +chdir $parent_workdir or die "Can't change to parent workdir '$parent_workdir': $!\n"; +system ("rm -rf $workdir") == 0 or die "Can't remove the working dir: $!\n"; +system ("mv /tmp/${packagename}.gz $pkgdir") == 0 or die "Can't move the finished package out of /tmp: $!\n"; print "Done. (~/$hostname/$packagename.gz)\n"; # The subroutines sub chkvar { From 335f4fd88601cd7865aa3594f18834826bb3302f Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 11 Mar 2005 11:08:27 +0100 Subject: [PATCH 7/7] Keep the Perl version of 'mysql-test-run' in sync with the shell script. mysql-test/lib/mtr_report.pl: Keep the Perl version in sync with the shell script so that 'Do-compile' will call PS and ES tests even after some previous test failures. (See previous change to 'mysql-test-run.sh' and 'Do-compile'.) --- mysql-test/lib/mtr_report.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql-test/lib/mtr_report.pl b/mysql-test/lib/mtr_report.pl index 3729ff512ee..9947fed9d27 100644 --- a/mysql-test/lib/mtr_report.pl +++ b/mysql-test/lib/mtr_report.pl @@ -161,7 +161,7 @@ sub mtr_report_stats ($) { { my $ratio= $tot_passed * 100 / $tot_tests; printf "Failed $tot_failed/$tot_tests tests, " . - "%.2f\% successful.\n\n", $ratio; + "%.2f\% were successful.\n\n", $ratio; print "The log files in var/log may give you some hint\n", "of what when wrong.\n",