summaryrefslogtreecommitdiff
path: root/sql/handler.cc
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2005-09-07 18:03:07 +0200
committerunknown <serg@serg.mylan>2005-09-07 18:03:07 +0200
commita3fbfc037d83a58704684cb9a25606d63acfb773 (patch)
tree496ee723a85afdb434dc77d953c001c0b18e4830 /sql/handler.cc
parent180a9ce7ebcc88781541964d37ce759d4ca7bf19 (diff)
downloadmariadb-git-a3fbfc037d83a58704684cb9a25606d63acfb773.tar.gz
don't crash when in XA PREPARE not all storage engines are 2pc-capable
Diffstat (limited to 'sql/handler.cc')
-rw-r--r--sql/handler.cc18
1 files changed, 13 insertions, 5 deletions
diff --git a/sql/handler.cc b/sql/handler.cc
index cf1fbfec465..3acca812a13 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -570,12 +570,20 @@ int ha_prepare(THD *thd)
{
int err;
statistic_increment(thd->status_var.ha_prepare_count,&LOCK_status);
- if ((err= (*(*ht)->prepare)(thd, all)))
+ if ((*ht)->prepare)
{
- my_error(ER_ERROR_DURING_COMMIT, MYF(0), err);
- ha_rollback_trans(thd, all);
- error=1;
- break;
+ if ((err= (*(*ht)->prepare)(thd, all)))
+ {
+ my_error(ER_ERROR_DURING_COMMIT, MYF(0), err);
+ ha_rollback_trans(thd, all);
+ error=1;
+ break;
+ }
+ }
+ else
+ {
+ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
+ ER_ILLEGAL_HA, ER(ER_ILLEGAL_HA), (*ht)->name);
}
}
}