Post-merge fix. Update some test results, and add an InnoDB-only
compatibility hook, thd_mark_transaction_to_rollback(). mysql-test/r/ps.result: 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: 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: Post-merge fix, add InnoDB compatibility hook (defined for InnoDB only), thd_mark_transaction_to_rollback(). storage/innobase/handler/ha_innodb.cc: Post-merge fix, add InnoDB compatibility hook (defined for InnoDB only), thd_mark_transaction_to_rollback(). storage/innobase/handler/ha_innodb.h: Post-merge fix, add InnoDB compatibility hook (defined for InnoDB only), thd_mark_transaction_to_rollback().
This commit is contained in:
parent
48eb7f8c85
commit
c7419debba
@ -1857,10 +1857,9 @@ select Host, Db from mysql.host limit 0;
|
|||||||
Host Db
|
Host Db
|
||||||
show open tables from mysql;
|
show open tables from mysql;
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
mysql general_log 0 0
|
|
||||||
mysql slow_log 0 0
|
|
||||||
mysql host 0 0
|
|
||||||
mysql user 0 0
|
mysql user 0 0
|
||||||
|
mysql general_log 0 0
|
||||||
|
mysql host 0 0
|
||||||
call proc_1();
|
call proc_1();
|
||||||
show open tables from mysql;
|
show open tables from mysql;
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
@ -1871,10 +1870,9 @@ select Host, Db from mysql.host limit 0;
|
|||||||
Host Db
|
Host Db
|
||||||
show open tables from mysql;
|
show open tables from mysql;
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
mysql general_log 0 0
|
|
||||||
mysql slow_log 0 0
|
|
||||||
mysql host 0 0
|
|
||||||
mysql user 0 0
|
mysql user 0 0
|
||||||
|
mysql general_log 0 0
|
||||||
|
mysql host 0 0
|
||||||
call proc_1();
|
call proc_1();
|
||||||
show open tables from mysql;
|
show open tables from mysql;
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
@ -1885,10 +1883,9 @@ select Host, Db from mysql.host limit 0;
|
|||||||
Host Db
|
Host Db
|
||||||
show open tables from mysql;
|
show open tables from mysql;
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
mysql general_log 0 0
|
|
||||||
mysql slow_log 0 0
|
|
||||||
mysql host 0 0
|
|
||||||
mysql user 0 0
|
mysql user 0 0
|
||||||
|
mysql general_log 0 0
|
||||||
|
mysql host 0 0
|
||||||
call proc_1();
|
call proc_1();
|
||||||
show open tables from mysql;
|
show open tables from mysql;
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
@ -1899,10 +1896,9 @@ select Host, Db from mysql.host limit 0;
|
|||||||
Host Db
|
Host Db
|
||||||
show open tables from mysql;
|
show open tables from mysql;
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
mysql general_log 0 0
|
|
||||||
mysql slow_log 0 0
|
|
||||||
mysql host 0 0
|
|
||||||
mysql user 0 0
|
mysql user 0 0
|
||||||
|
mysql general_log 0 0
|
||||||
|
mysql host 0 0
|
||||||
flush tables;
|
flush tables;
|
||||||
create function func_1() returns int begin flush tables; return 1; end|
|
create function func_1() returns int begin flush tables; return 1; end|
|
||||||
ERROR 0A000: FLUSH is not allowed in stored function or trigger
|
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
|
Host Db
|
||||||
show open tables from mysql;
|
show open tables from mysql;
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
mysql general_log 0 0
|
|
||||||
mysql slow_log 0 0
|
|
||||||
mysql host 0 0
|
|
||||||
mysql user 0 0
|
mysql user 0 0
|
||||||
|
mysql general_log 0 0
|
||||||
|
mysql host 0 0
|
||||||
execute abc;
|
execute abc;
|
||||||
show open tables from mysql;
|
show open tables from mysql;
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
@ -1946,10 +1941,9 @@ select Host, Db from mysql.host limit 0;
|
|||||||
Host Db
|
Host Db
|
||||||
show open tables from mysql;
|
show open tables from mysql;
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
mysql general_log 0 0
|
|
||||||
mysql slow_log 0 0
|
|
||||||
mysql host 0 0
|
|
||||||
mysql user 0 0
|
mysql user 0 0
|
||||||
|
mysql general_log 0 0
|
||||||
|
mysql host 0 0
|
||||||
execute abc;
|
execute abc;
|
||||||
show open tables from mysql;
|
show open tables from mysql;
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
@ -1960,10 +1954,9 @@ select Host, Db from mysql.host limit 0;
|
|||||||
Host Db
|
Host Db
|
||||||
show open tables from mysql;
|
show open tables from mysql;
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
mysql general_log 0 0
|
|
||||||
mysql slow_log 0 0
|
|
||||||
mysql host 0 0
|
|
||||||
mysql user 0 0
|
mysql user 0 0
|
||||||
|
mysql general_log 0 0
|
||||||
|
mysql host 0 0
|
||||||
flush tables;
|
flush tables;
|
||||||
deallocate prepare abc;
|
deallocate prepare abc;
|
||||||
create procedure proc_1() flush logs;
|
create procedure proc_1() flush logs;
|
||||||
|
@ -256,9 +256,8 @@ create table t1(n int);
|
|||||||
insert into t1 values (1);
|
insert into t1 values (1);
|
||||||
show open tables;
|
show open tables;
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
mysql general_log 0 0
|
|
||||||
mysql slow_log 0 0
|
|
||||||
test t1 0 0
|
test t1 0 0
|
||||||
|
mysql general_log 0 0
|
||||||
drop table t1;
|
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;
|
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;
|
show create table t1;
|
||||||
@ -685,9 +684,8 @@ Database Table In_use Name_locked
|
|||||||
mysql db 0 0
|
mysql db 0 0
|
||||||
mysql time_zone 0 0
|
mysql time_zone 0 0
|
||||||
mysql general_log 0 0
|
mysql general_log 0 0
|
||||||
mysql slow_log 0 0
|
|
||||||
mysql user 0 0
|
|
||||||
mysql proc 0 0
|
mysql proc 0 0
|
||||||
|
mysql user 0 0
|
||||||
mysql time_zone_name 0 0
|
mysql time_zone_name 0 0
|
||||||
SHOW OPEN TABLES FROM mysql LIKE 'u%';
|
SHOW OPEN TABLES FROM mysql LIKE 'u%';
|
||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
@ -702,7 +700,6 @@ SHOW OPEN TABLES LIKE '%o%';
|
|||||||
Database Table In_use Name_locked
|
Database Table In_use Name_locked
|
||||||
mysql time_zone 0 0
|
mysql time_zone 0 0
|
||||||
mysql general_log 0 0
|
mysql general_log 0 0
|
||||||
mysql slow_log 0 0
|
|
||||||
mysql proc 0 0
|
mysql proc 0 0
|
||||||
mysql time_zone_name 0 0
|
mysql time_zone_name 0 0
|
||||||
FLUSH TABLES;
|
FLUSH TABLES;
|
||||||
|
@ -2583,6 +2583,11 @@ extern "C" int thd_binlog_format(const MYSQL_THD thd)
|
|||||||
{
|
{
|
||||||
return (int) thd->variables.binlog_format;
|
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 */
|
#endif // INNODB_COMPATIBILITY_HOOKS */
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
@ -601,7 +601,7 @@ convert_error_code_to_mysql(
|
|||||||
tell it also to MySQL so that MySQL knows to empty the
|
tell it also to MySQL so that MySQL knows to empty the
|
||||||
cached binlog for this transaction */
|
cached binlog for this transaction */
|
||||||
|
|
||||||
mark_transaction_to_rollback(thd, TRUE);
|
thd_mark_transaction_to_rollback(thd, TRUE);
|
||||||
|
|
||||||
return(HA_ERR_LOCK_DEADLOCK);
|
return(HA_ERR_LOCK_DEADLOCK);
|
||||||
|
|
||||||
@ -611,7 +611,7 @@ convert_error_code_to_mysql(
|
|||||||
latest SQL statement in a lock wait timeout. Previously, we
|
latest SQL statement in a lock wait timeout. Previously, we
|
||||||
rolled back the whole transaction. */
|
rolled back the whole transaction. */
|
||||||
|
|
||||||
mark_transaction_to_rollback(thd,
|
thd_mark_transaction_to_rollback(thd,
|
||||||
(bool)row_rollback_on_timeout);
|
(bool)row_rollback_on_timeout);
|
||||||
|
|
||||||
return(HA_ERR_LOCK_WAIT_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
|
tell it also to MySQL so that MySQL knows to empty the
|
||||||
cached binlog for this transaction */
|
cached binlog for this transaction */
|
||||||
|
|
||||||
mark_transaction_to_rollback(thd, TRUE);
|
thd_mark_transaction_to_rollback(thd, TRUE);
|
||||||
|
|
||||||
return(HA_ERR_LOCK_TABLE_FULL);
|
return(HA_ERR_LOCK_TABLE_FULL);
|
||||||
} else if (error == DB_TOO_MANY_CONCURRENT_TRXS) {
|
} else if (error == DB_TOO_MANY_CONCURRENT_TRXS) {
|
||||||
|
@ -234,6 +234,13 @@ int thd_non_transactional_update(const MYSQL_THD thd);
|
|||||||
@return Value to be used as index into the binlog_format_names array
|
@return Value to be used as index into the binlog_format_names array
|
||||||
*/
|
*/
|
||||||
int thd_binlog_format(const MYSQL_THD thd);
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user