diff options
author | Sergei Golubchik <sergii@pisem.net> | 2010-07-25 17:09:21 +0200 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2010-07-25 17:09:21 +0200 |
commit | 68f02c65ef09601591ec5cb9521aaa5bfde9309e (patch) | |
tree | 5476c26cacf28d1d5895e181fefd24129282852e /storage/federated | |
parent | 9d8ecf782b7f7b4322359aaca57162a08675d907 (diff) | |
parent | cf86a5ae5284c744bc4cc727073387d0799da5c2 (diff) | |
download | mariadb-git-68f02c65ef09601591ec5cb9521aaa5bfde9309e.tar.gz |
merge with 5.1
Diffstat (limited to 'storage/federated')
-rw-r--r-- | storage/federated/ha_federated.cc | 7 | ||||
-rw-r--r-- | storage/federated/ha_federated.h | 4 |
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); |