summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2005-04-12 23:12:26 +0200
committerunknown <serg@serg.mylan>2005-04-12 23:12:26 +0200
commit5630f0731ab020471108c67e7ae962ba6eaef625 (patch)
treefe052a745fa3bc2e6641777054a25dcbd12458a0 /sql/sql_parse.cc
parent923b76f8d1632d1214cb3bae34d0927cb6c2d14c (diff)
parent70d8ae0171b33d874c811243686f28bcd7ab69da (diff)
downloadmariadb-git-5630f0731ab020471108c67e7ae962ba6eaef625.tar.gz
Merge bk-internal:/home/bk/mysql-5.0
into serg.mylan:/usr/home/serg/Abk/mysql-5.0 sql/sql_parse.cc: Auto merged sql/sql_yacc.yy: Auto merged
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r--sql/sql_parse.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index ee385f9792e..851be2b3434 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -4428,10 +4428,19 @@ unsent_create_error:
else
if (thd->transaction.xa_state == XA_PREPARED && thd->lex->xa_opt == XA_NONE)
{
- if (ha_commit_one_phase(thd, 1))
+ if (wait_if_global_read_lock(thd, 0, 0))
+ {
+ ha_rollback(thd);
my_error(ER_XAER_RMERR, MYF(0));
+ }
else
- send_ok(thd);
+ {
+ if (ha_commit_one_phase(thd, 1))
+ my_error(ER_XAER_RMERR, MYF(0));
+ else
+ send_ok(thd);
+ start_waiting_global_read_lock(thd);
+ }
}
else
{