#At file:///home/gluh/MySQL/mysql-6.0-bugteam/ based on
revid:sergey.glukhov@stripped
2829 Sergey Glukhov 2008-12-29 [merge]
5.1-bugteam->6.0-bugteam merge
modified:
mysql-test/r/csv.result
mysql-test/t/csv.test
storage/csv/ha_tina.cc
per-file messages:
mysql-test/r/csv.result
5.1-bugteam->6.0-bugteam merge
mysql-test/t/csv.test
5.1-bugteam->6.0-bugteam merge
storage/csv/ha_tina.cc
5.1-bugteam->6.0-bugteam merge
=== modified file 'mysql-test/r/csv.result'
--- a/mysql-test/r/csv.result 2008-12-10 09:05:18 +0000
+++ b/mysql-test/r/csv.result 2008-12-29 12:50:51 +0000
@@ -5394,4 +5394,17 @@ select * from t1;
ERROR HY000: File './test/t1.CSV' not found (Errcode: 2)
unlock tables;
drop table t1;
+create table t1(a enum ('a') not null) engine=csv;
+insert into t1 values (2);
+Warnings:
+Warning 1265 Data truncated for column 'a' at row 1
+select * from t1 limit 1;
+ERROR HY000: Table 't1' is marked as crashed and should be repaired
+repair table t1;
+Table Op Msg_type Msg_text
+test.t1 repair Warning Data truncated for column 'a' at row 1
+test.t1 repair status OK
+select * from t1 limit 1;
+a
+drop table t1;
End of 5.1 tests
=== modified file 'mysql-test/t/csv.test'
--- a/mysql-test/t/csv.test 2008-12-10 09:05:18 +0000
+++ b/mysql-test/t/csv.test 2008-12-29 12:50:51 +0000
@@ -1804,4 +1804,17 @@ unlock tables;
drop table t1;
--disconnect con1
+#
+# Bug#41441 repair csv table crashes debug server
+#
+# Note: The test should be removed after Bug#33717 is fixed
+
+create table t1(a enum ('a') not null) engine=csv;
+insert into t1 values (2);
+--error ER_CRASHED_ON_USAGE
+select * from t1 limit 1;
+repair table t1;
+select * from t1 limit 1;
+drop table t1;
+
--echo End of 5.1 tests
=== modified file 'storage/csv/ha_tina.cc'
--- a/storage/csv/ha_tina.cc 2008-12-10 09:21:13 +0000
+++ b/storage/csv/ha_tina.cc 2008-12-29 12:53:38 +0000
@@ -1449,6 +1449,17 @@ int ha_tina::repair(THD* thd, HA_CHECK_O
a file, which descriptor is still open. EACCES will be returned
when trying to delete the "to"-file in my_rename().
*/
+ if (share->tina_write_opened)
+ {
+ /*
+ Data file might be opened twice, on table opening stage and
+ during write_row execution. We need to close both instances
+ to satisfy Win.
+ */
+ if (my_close(share->tina_write_filedes, MYF(0)))
+ DBUG_RETURN(my_errno ? my_errno : -1);
+ share->tina_write_opened= FALSE;
+ }
if (my_close(data_file,MYF(0)) || my_close(repair_file, MYF(0)) ||
my_rename(repaired_fname, share->data_file_name, MYF(0)))
DBUG_RETURN(-1);
| Thread |
|---|
| • bzr commit into mysql-6.0-bugteam branch (Sergey.Glukhov:2829) | Sergey Glukhov | 29 Dec |