summaryrefslogtreecommitdiff
path: root/storage/federated
diff options
context:
space:
mode:
authorRamil Kalimullin <ramil@mysql.com>2011-12-23 17:26:17 +0400
committerRamil Kalimullin <ramil@mysql.com>2011-12-23 17:26:17 +0400
commitd0ed9f437c92a57ec6ae30a665a035e5e5a941e6 (patch)
tree56145b9cdb868fcec277698dcbd0c88dc3067dcf /storage/federated
parent086ee89a38b548ebdbfd7373c76abd66a81d344c (diff)
parent790a3a46f38ca1040f756fd64c0cca7b78b50f67 (diff)
downloadmariadb-git-d0ed9f437c92a57ec6ae30a665a035e5e5a941e6.tar.gz
Auto-merge from mysq-5.1.
Diffstat (limited to 'storage/federated')
-rw-r--r--storage/federated/ha_federated.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc
index 06bf180283d..e762a1c3bee 100644
--- a/storage/federated/ha_federated.cc
+++ b/storage/federated/ha_federated.cc
@@ -1685,6 +1685,15 @@ int ha_federated::close(void)
mysql_close(mysql);
mysql= NULL;
+ /*
+ mysql_close() might return an error if a remote server's gone
+ for some reason. If that happens while removing a table from
+ the table cache, the error will be propagated to a client even
+ if the original query was not issued against the FEDERATED table.
+ So, don't propagate errors from mysql_close().
+ */
+ table->in_use->clear_error();
+
DBUG_RETURN(free_share(share));
}