diff options
author | unknown <vva@eagle.mysql.r18.ru> | 2004-03-27 00:35:45 +0400 |
---|---|---|
committer | unknown <vva@eagle.mysql.r18.ru> | 2004-03-27 00:35:45 +0400 |
commit | aab1e50e719f1f31629890fad650e9b0290cb906 (patch) | |
tree | 023a520ba94e415acedf48d976d399e523da8b05 /sql/sql_table.cc | |
parent | 8a6ae8395d789c6b8ad0a0f99454e1c4b709074c (diff) | |
download | mariadb-git-aab1e50e719f1f31629890fad650e9b0290cb906.tar.gz |
fixed bug #2342
"Running ANALYZE TABLE on bdb table inside a transaction hangs server thread"
1. added new status HA_ADMIN_REJECT and processing of it in mysql_admin_table
2. got ha_berkley::analyze to return HA_ADMIN_REJECT if there are any
transactions with the table..
mysql-test/r/bdb-crash.result:
added test for bug #2342
"Running ANALYZE TABLE on bdb table inside a transaction hangs server thread"
mysql-test/t/bdb-crash.test:
added test for bug #2342
"Running ANALYZE TABLE on bdb table inside a transaction hangs server thread"
sql/ha_berkeley.cc:
fixed bug #2342
"Running ANALYZE TABLE on bdb table inside a transaction hangs server thread"
we have to return new status "HA_ADMIN_REJECT" for ha_berkley::analyze
if there are any transaction for this table
so as bdb documentation says:
"The DB->stat method cannot be transaction protected"
sql/handler.h:
added new status of table info "HA_ADMIN_REJECT"
We have to return this status for bdb tables which
have any active transactions so as bdb-documentation says:
"The DB->stat method cannot be transaction-protected"
sql/sql_table.cc:
added processing of the new status HA_ADMIN_REJECT in mysql_admin_table
(reason to add this status is explained in comment
for commit on sql/handler.h)
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r-- | sql/sql_table.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 48151ef55b9..7507ab16968 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -1330,6 +1330,12 @@ static int mysql_admin_table(THD* thd, TABLE_LIST* tables, net_store_data(packet, "Operation failed"); break; + case HA_ADMIN_REJECT: + net_store_data(packet,"status"); + net_store_data(packet,"Operation need committed state"); + open_for_modify= false; + break; + case HA_ADMIN_ALREADY_DONE: net_store_data(packet, "status"); net_store_data(packet, "Table is already up to date"); |