From 069a068c90d8fa6ccb8028f3f2cd42c238b04699 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Fri, 23 Jul 2010 22:37:21 +0200 Subject: restore the unintentinally broken ABI --- storage/federated/ha_federated.cc | 7 +++++-- storage/federated/ha_federated.h | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'storage/federated') diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc index 4330d9bdd30..619393289a9 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); -- cgit v1.2.1