Below is the list of changes that have just been committed into a local
5.0 repository of cmiller. When cmiller does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet
1.2099 06/03/28 17:15:45 cmiller@zippy.(none) +3 -0
Bug#11151: LOAD DATA INFILE commits transaction in 5.0
No longer create or commit transactions within the loading of files.
sql/sql_load.cc
1.92 06/03/28 17:15:41 cmiller@zippy.(none) +1 -6
Loading data from a table should neither create new transactions nor destroy
(by committing or rolling-back) existing transactions.
mysql-test/t/loaddata.test
1.17 06/03/28 17:15:41 cmiller@zippy.(none) +22 -0
Add test case.
mysql-test/r/loaddata.result
1.22 06/03/28 17:15:41 cmiller@zippy.(none) +15 -0
Add test result.
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: cmiller
# Host: zippy.(none)
# Root: /home/cmiller/work/mysql/mysql-5.0__bug11151
--- 1.91/sql/sql_load.cc 2006-02-06 18:06:16 -05:00
+++ 1.92/sql/sql_load.cc 2006-03-28 17:15:41 -05:00
@@ -381,7 +381,7 @@
table->file->extra(HA_EXTRA_NO_IGNORE_DUP_KEY);
table->next_number_field=0;
}
- ha_enable_transaction(thd, TRUE);
+
if (file >= 0)
my_close(file,MYF(0));
free_blobs(table); /* if pack_blob was used */
@@ -396,9 +396,6 @@
if (error)
{
- if (transactional_table)
- ha_autocommit_or_rollback(thd,error);
-
if (read_file_from_client)
while (!read_info.next_line())
;
@@ -465,8 +462,6 @@
ignore, transactional_table);
}
#endif /*!EMBEDDED_LIBRARY*/
- if (transactional_table)
- error=ha_autocommit_or_rollback(thd,error);
err:
if (thd->lock)
--- 1.21/mysql-test/r/loaddata.result 2006-01-24 02:30:46 -05:00
+++ 1.22/mysql-test/r/loaddata.result 2006-03-28 17:15:41 -05:00
@@ -139,3 +139,18 @@
10 NULL Ten
15 NULL Fifteen
drop table t1, t2;
+create table bug11151 (a int, b int) engine=InnoDB;
+start transaction;
+insert into bug11151 values (0, 0);
+rollback;
+select a, b from bug11151;
+a b
+delete from bug11151;
+start transaction;
+insert into bug11151 values (42, 0);
+load data infile '../std_data_ln/loaddata5.dat' into table bug11151 fields terminated by
'' enclosed by '' (a, b);
+insert into bug11151 values (42, 99);
+rollback;
+select a, b from bug11151;
+a b
+drop table bug11151;
--- 1.16/mysql-test/t/loaddata.test 2006-01-24 02:30:47 -05:00
+++ 1.17/mysql-test/t/loaddata.test 2006-03-28 17:15:41 -05:00
@@ -113,4 +113,26 @@
# cleanup
drop table t1, t2;
+
+
+#
+# Bug#11151: LOAD DATA INFILE commits transaction in 5.0
+#
+create table bug11151 (a int, b int) engine=InnoDB;
+
+start transaction;
+insert into bug11151 values (0, 0);
+rollback;
+select a, b from bug11151;
+delete from bug11151;
+
+start transaction;
+insert into bug11151 values (42, 0);
+load data infile '../std_data_ln/loaddata5.dat' into table bug11151 fields terminated by
'' enclosed by '' (a, b);
+insert into bug11151 values (42, 99);
+rollback;
+select a, b from bug11151;
+
+drop table bug11151;
+
# End of 5.0 tests
| Thread |
|---|
| • bk commit into 5.0 tree (cmiller:1.2099) BUG#11151 | Chad MILLER | 29 Mar |