summaryrefslogtreecommitdiff
path: root/storage/federated
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2010-07-25 17:09:21 +0200
committerSergei Golubchik <sergii@pisem.net>2010-07-25 17:09:21 +0200
commit68f02c65ef09601591ec5cb9521aaa5bfde9309e (patch)
tree5476c26cacf28d1d5895e181fefd24129282852e /storage/federated
parent9d8ecf782b7f7b4322359aaca57162a08675d907 (diff)
parentcf86a5ae5284c744bc4cc727073387d0799da5c2 (diff)
downloadmariadb-git-68f02c65ef09601591ec5cb9521aaa5bfde9309e.tar.gz
merge with 5.1
Diffstat (limited to 'storage/federated')
-rw-r--r--storage/federated/ha_federated.cc7
-rw-r--r--storage/federated/ha_federated.h4
2 files changed, 7 insertions, 4 deletions
diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc
index 2dbac485fbc..4d597d6d7a9 100644
--- a/storage/federated/ha_federated.cc
+++ b/storage/federated/ha_federated.cc
@@ -1983,12 +1983,12 @@ void ha_federated::start_bulk_insert(ha_rows rows)
@retval != 0 Error occured at remote server. Also sets my_errno.
*/
-int ha_federated::end_bulk_insert(bool abort)
+int ha_federated::end_bulk_insert()
{
int error= 0;
DBUG_ENTER("ha_federated::end_bulk_insert");
- if (!abort && bulk_insert.str && bulk_insert.length)
+ if (!table_will_be_deleted && bulk_insert.str && bulk_insert.length)
{
if (real_query(bulk_insert.str, bulk_insert.length))
error= stash_remote_error();
@@ -2905,6 +2905,8 @@ int ha_federated::extra(ha_extra_function operation)
case HA_EXTRA_INSERT_WITH_UPDATE:
insert_dup_update= TRUE;
break;
+ case HA_EXTRA_PREPARE_FOR_DROP:
+ table_will_be_deleted = TRUE;
default:
/* do nothing */
DBUG_PRINT("info",("unhandled operation: %d", (uint) operation));
@@ -3305,6 +3307,7 @@ int ha_federated::external_lock(THD *thd, int lock_type)
}
}
#endif /* XXX_SUPERCEDED_BY_WL2952 */
+ table_will_be_deleted = FALSE;
DBUG_RETURN(error);
}
diff --git a/storage/federated/ha_federated.h b/storage/federated/ha_federated.h
index ab31e3c1680..142e0e95e2b 100644
--- a/storage/federated/ha_federated.h
+++ b/storage/federated/ha_federated.h
@@ -88,7 +88,7 @@ class ha_federated: public handler
Array of all stored results we get during a query execution.
*/
DYNAMIC_ARRAY results;
- bool position_called;
+ bool position_called, table_will_be_deleted;
uint fetch_num; // stores the fetch num
MYSQL_ROW_OFFSET current_position; // Current position used by ::position()
int remote_error_number;
@@ -210,7 +210,7 @@ public:
int close(void); // required
void start_bulk_insert(ha_rows rows);
- int end_bulk_insert(bool abort);
+ int end_bulk_insert();
int write_row(uchar *buf);
int update_row(const uchar *old_data, uchar *new_data);
int delete_row(const uchar *buf);