Below is the list of changes that have just been committed into a local
5.1 repository of tsmith. When tsmith 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@stripped, 2007-08-02 02:22:31-06:00, tsmith@stripped +5 -0
Post-merge fix. Update some test results, and add an InnoDB-only
compatibility hook, thd_mark_transaction_to_rollback().
mysql-test/r/ps.result@stripped, 2007-08-02 02:22:29-06:00, tsmith@stripped +7 -14
Post-merge fix. Changes for WL 3984 (Revise locking
of mysql.general_log and mysql.slow_log) cause some test
result differences.
mysql-test/r/show_check.result@stripped, 2007-08-02 02:22:29-06:00, tsmith@stripped +2 -5
Post-merge fix. Changes for WL 3984 (Revise locking
of mysql.general_log and mysql.slow_log) cause some test
result differences.
sql/sql_class.cc@stripped, 2007-08-02 02:22:29-06:00, tsmith@stripped +5 -0
Post-merge fix, add InnoDB compatibility hook (defined for
InnoDB only), thd_mark_transaction_to_rollback().
storage/innobase/handler/ha_innodb.cc@stripped, 2007-08-02 02:22:29-06:00, tsmith@stripped +3 -3
Post-merge fix, add InnoDB compatibility hook (defined for
InnoDB only), thd_mark_transaction_to_rollback().
storage/innobase/handler/ha_innodb.h@stripped, 2007-08-02 02:22:29-06:00, tsmith@stripped +7 -0
Post-merge fix, add InnoDB compatibility hook (defined for
InnoDB only), thd_mark_transaction_to_rollback().
diff -Nrup a/mysql-test/r/ps.result b/mysql-test/r/ps.result
--- a/mysql-test/r/ps.result 2007-07-26 21:45:32 -06:00
+++ b/mysql-test/r/ps.result 2007-08-02 02:22:29 -06:00
@@ -1857,10 +1857,9 @@ select Host, Db from mysql.host limit 0;
Host Db
show open tables from mysql;
Database Table In_use Name_locked
+mysql user 0 0
mysql general_log 0 0
-mysql slow_log 0 0
mysql host 0 0
-mysql user 0 0
call proc_1();
show open tables from mysql;
Database Table In_use Name_locked
@@ -1871,10 +1870,9 @@ select Host, Db from mysql.host limit 0;
Host Db
show open tables from mysql;
Database Table In_use Name_locked
+mysql user 0 0
mysql general_log 0 0
-mysql slow_log 0 0
mysql host 0 0
-mysql user 0 0
call proc_1();
show open tables from mysql;
Database Table In_use Name_locked
@@ -1885,10 +1883,9 @@ select Host, Db from mysql.host limit 0;
Host Db
show open tables from mysql;
Database Table In_use Name_locked
+mysql user 0 0
mysql general_log 0 0
-mysql slow_log 0 0
mysql host 0 0
-mysql user 0 0
call proc_1();
show open tables from mysql;
Database Table In_use Name_locked
@@ -1899,10 +1896,9 @@ select Host, Db from mysql.host limit 0;
Host Db
show open tables from mysql;
Database Table In_use Name_locked
+mysql user 0 0
mysql general_log 0 0
-mysql slow_log 0 0
mysql host 0 0
-mysql user 0 0
flush tables;
create function func_1() returns int begin flush tables; return 1; end|
ERROR 0A000: FLUSH is not allowed in stored function or trigger
@@ -1932,10 +1928,9 @@ select Host, Db from mysql.host limit 0;
Host Db
show open tables from mysql;
Database Table In_use Name_locked
+mysql user 0 0
mysql general_log 0 0
-mysql slow_log 0 0
mysql host 0 0
-mysql user 0 0
execute abc;
show open tables from mysql;
Database Table In_use Name_locked
@@ -1946,10 +1941,9 @@ select Host, Db from mysql.host limit 0;
Host Db
show open tables from mysql;
Database Table In_use Name_locked
+mysql user 0 0
mysql general_log 0 0
-mysql slow_log 0 0
mysql host 0 0
-mysql user 0 0
execute abc;
show open tables from mysql;
Database Table In_use Name_locked
@@ -1960,10 +1954,9 @@ select Host, Db from mysql.host limit 0;
Host Db
show open tables from mysql;
Database Table In_use Name_locked
+mysql user 0 0
mysql general_log 0 0
-mysql slow_log 0 0
mysql host 0 0
-mysql user 0 0
flush tables;
deallocate prepare abc;
create procedure proc_1() flush logs;
diff -Nrup a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result
--- a/mysql-test/r/show_check.result 2007-08-01 18:39:57 -06:00
+++ b/mysql-test/r/show_check.result 2007-08-02 02:22:29 -06:00
@@ -256,9 +256,8 @@ create table t1(n int);
insert into t1 values (1);
show open tables;
Database Table In_use Name_locked
-mysql general_log 0 0
-mysql slow_log 0 0
test t1 0 0
+mysql general_log 0 0
drop table t1;
create table t1 (a int not null, b VARCHAR(10), INDEX (b) ) AVG_ROW_LENGTH=10 CHECKSUM=1 COMMENT="test" ENGINE=MYISAM MIN_ROWS=10 MAX_ROWS=100 PACK_KEYS=1 DELAY_KEY_WRITE=1 ROW_FORMAT=fixed;
show create table t1;
@@ -685,9 +684,8 @@ Database Table In_use Name_locked
mysql db 0 0
mysql time_zone 0 0
mysql general_log 0 0
-mysql slow_log 0 0
-mysql user 0 0
mysql proc 0 0
+mysql user 0 0
mysql time_zone_name 0 0
SHOW OPEN TABLES FROM mysql LIKE 'u%';
Database Table In_use Name_locked
@@ -702,7 +700,6 @@ SHOW OPEN TABLES LIKE '%o%';
Database Table In_use Name_locked
mysql time_zone 0 0
mysql general_log 0 0
-mysql slow_log 0 0
mysql proc 0 0
mysql time_zone_name 0 0
FLUSH TABLES;
diff -Nrup a/sql/sql_class.cc b/sql/sql_class.cc
--- a/sql/sql_class.cc 2007-08-01 18:59:39 -06:00
+++ b/sql/sql_class.cc 2007-08-02 02:22:29 -06:00
@@ -2583,6 +2583,11 @@ extern "C" int thd_binlog_format(const M
{
return (int) thd->variables.binlog_format;
}
+
+extern "C" void thd_mark_transaction_to_rollback(MYSQL_THD thd, bool all)
+{
+ mark_transaction_to_rollback(thd, all);
+}
#endif // INNODB_COMPATIBILITY_HOOKS */
/****************************************************************************
diff -Nrup a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc
--- a/storage/innobase/handler/ha_innodb.cc 2007-08-01 18:59:39 -06:00
+++ b/storage/innobase/handler/ha_innodb.cc 2007-08-02 02:22:29 -06:00
@@ -601,7 +601,7 @@ convert_error_code_to_mysql(
tell it also to MySQL so that MySQL knows to empty the
cached binlog for this transaction */
- mark_transaction_to_rollback(thd, TRUE);
+ thd_mark_transaction_to_rollback(thd, TRUE);
return(HA_ERR_LOCK_DEADLOCK);
@@ -611,7 +611,7 @@ convert_error_code_to_mysql(
latest SQL statement in a lock wait timeout. Previously, we
rolled back the whole transaction. */
- mark_transaction_to_rollback(thd,
+ thd_mark_transaction_to_rollback(thd,
(bool)row_rollback_on_timeout);
return(HA_ERR_LOCK_WAIT_TIMEOUT);
@@ -664,7 +664,7 @@ convert_error_code_to_mysql(
tell it also to MySQL so that MySQL knows to empty the
cached binlog for this transaction */
- mark_transaction_to_rollback(thd, TRUE);
+ thd_mark_transaction_to_rollback(thd, TRUE);
return(HA_ERR_LOCK_TABLE_FULL);
} else if (error == DB_TOO_MANY_CONCURRENT_TRXS) {
diff -Nrup a/storage/innobase/handler/ha_innodb.h b/storage/innobase/handler/ha_innodb.h
--- a/storage/innobase/handler/ha_innodb.h 2007-07-10 05:37:38 -06:00
+++ b/storage/innobase/handler/ha_innodb.h 2007-08-02 02:22:29 -06:00
@@ -234,6 +234,13 @@ int thd_non_transactional_update(const M
@return Value to be used as index into the binlog_format_names array
*/
int thd_binlog_format(const MYSQL_THD thd);
+
+/**
+ Mark transaction to rollback and mark error as fatal to a sub-statement.
+ @param thd Thread handle
+ @param all TRUE <=> rollback main transaction.
+*/
+void thd_mark_transaction_to_rollback(MYSQL_THD thd, bool all);
}
/*
| Thread |
|---|
| • bk commit into 5.1 tree (tsmith:1.2579) | tim | 2 Aug |