summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xmysql-test/mysql-test-run.pl26
-rw-r--r--mysql-test/t/type_newdecimal.test13
-rw-r--r--sql/parse_file.cc1
3 files changed, 30 insertions, 10 deletions
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index 84b6d26e31a..c0ab61bd7f3 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -2333,11 +2333,32 @@ sub save_installed_db () {
}
}
+
+#
+# Save any interesting files in the data_dir
+# before the data dir is removed.
+#
+sub save_files_before_restore($$) {
+ my $test_name= shift;
+ my $data_dir= shift;
+ my $save_name= "$opt_vardir/log/$test_name";
+
+ # Look for core files
+ foreach my $core_file ( glob("$data_dir/core*") )
+ {
+ my $core_name= basename($core_file);
+ mtr_report("Saving $core_name");
+ mkdir($save_name) if ! -d $save_name;
+ rename("$core_file", "$save_name/$core_name");
+ }
+}
+
#
# Restore snapshot of the installed test db(s)
# if the snapshot exists
#
-sub restore_installed_db () {
+sub restore_installed_db ($) {
+ my $test_name= shift;
if ( -d $path_snapshot)
{
@@ -2348,6 +2369,7 @@ sub restore_installed_db () {
foreach my $data_dir (@data_dir_lst)
{
my $name= basename($data_dir);
+ save_files_before_restore($test_name, $data_dir);
rmtree("$data_dir");
copy_dir("$path_snapshot/$name", "$data_dir");
}
@@ -2381,7 +2403,7 @@ sub report_failure_and_restart ($) {
if ( $opt_force )
{
# Restore the snapshot of the installed test db
- restore_installed_db();
+ restore_installed_db($tinfo->{'name'});
print "Resuming Tests\n\n";
return;
}
diff --git a/mysql-test/t/type_newdecimal.test b/mysql-test/t/type_newdecimal.test
index 47b8bf64d66..74782a5bddb 100644
--- a/mysql-test/t/type_newdecimal.test
+++ b/mysql-test/t/type_newdecimal.test
@@ -1054,14 +1054,7 @@ SELECT my_float, my_double, my_varchar FROM t1;
# On windows we get 0.000000000011754943372854770000
# use replace_result to correct it
--replace_result 0.000000000011754943372854770000 0.000000000011754943372854760000
-
SELECT CAST(my_float AS DECIMAL(65,30)), my_float FROM t1;
-
-# Expected result 0.000000000011754943372854760000
-# On windows we get 0.000000000011754943372854770000
-# use replace_result to correct it
---replace_result 0.000000000011754943372854770000 0.000000000011754943372854760000
-
SELECT CAST(my_double AS DECIMAL(65,30)), my_double FROM t1;
SELECT CAST(my_varchar AS DECIMAL(65,30)), my_varchar FROM t1;
@@ -1072,7 +1065,13 @@ SELECT CAST(my_varchar AS DECIMAL(65,30)), my_varchar FROM t1;
--disable_warnings
UPDATE t1 SET my_decimal = my_float;
+
+# Expected result 0.000000000011754943372854760000
+# On windows we get 0.000000000011754943372854770000
+# use replace_result to correct it
+--replace_result 0.000000000011754943372854770000 0.000000000011754943372854760000
SELECT my_decimal, my_float FROM t1;
+
UPDATE t1 SET my_decimal = my_double;
SELECT my_decimal, my_double FROM t1;
--enable_warnings
diff --git a/sql/parse_file.cc b/sql/parse_file.cc
index 2a602e9ba28..7faa4081d7d 100644
--- a/sql/parse_file.cc
+++ b/sql/parse_file.cc
@@ -759,7 +759,6 @@ File_parser::parse(gptr base, MEM_ROOT *mem_root,
char *eol;
LEX_STRING *str;
List<LEX_STRING> *list;
- ulonglong *num;
DBUG_ENTER("File_parser::parse");
while (ptr < end && found < required)