summaryrefslogtreecommitdiff
path: root/storage/federatedx
diff options
context:
space:
mode:
authorSergei Golubchik <sergii@pisem.net>2010-07-23 22:37:21 +0200
committerSergei Golubchik <sergii@pisem.net>2010-07-23 22:37:21 +0200
commit069a068c90d8fa6ccb8028f3f2cd42c238b04699 (patch)
tree4d14a68363d56ecd99ff11e0eaa5258691b714c8 /storage/federatedx
parent24c08f5279ff350495d7334dcecd470a3c88cefb (diff)
downloadmariadb-git-069a068c90d8fa6ccb8028f3f2cd42c238b04699.tar.gz
restore the unintentinally broken ABI
Diffstat (limited to 'storage/federatedx')
-rw-r--r--storage/federatedx/ha_federatedx.cc8
-rw-r--r--storage/federatedx/ha_federatedx.h4
2 files changed, 8 insertions, 4 deletions
diff --git a/storage/federatedx/ha_federatedx.cc b/storage/federatedx/ha_federatedx.cc
index 435530e8caa..a88c60efb74 100644
--- a/storage/federatedx/ha_federatedx.cc
+++ b/storage/federatedx/ha_federatedx.cc
@@ -2143,12 +2143,12 @@ void ha_federatedx::start_bulk_insert(ha_rows rows)
@retval != 0 Error occured at remote server. Also sets my_errno.
*/
-int ha_federatedx::end_bulk_insert(bool abort)
+int ha_federatedx::end_bulk_insert()
{
int error= 0;
DBUG_ENTER("ha_federatedx::end_bulk_insert");
- if (bulk_insert.str && bulk_insert.length && !abort)
+ if (bulk_insert.str && bulk_insert.length && !table_will_be_deleted)
{
if ((error= txn->acquire(share, FALSE, &io)))
DBUG_RETURN(error);
@@ -3082,6 +3082,9 @@ int ha_federatedx::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;
+ break;
default:
/* do nothing */
DBUG_PRINT("info",("unhandled operation: %d", (uint) operation));
@@ -3391,6 +3394,7 @@ int ha_federatedx::external_lock(MYSQL_THD thd, int lock_type)
txn->release(&io);
else
{
+ table_will_be_deleted = FALSE;
txn= get_txn(thd);
if (!(error= txn->acquire(share, lock_type == F_RDLCK, &io)) &&
(lock_type == F_WRLCK || !io->is_autocommit()))
diff --git a/storage/federatedx/ha_federatedx.h b/storage/federatedx/ha_federatedx.h
index 0fa9df25895..2fd3c559321 100644
--- a/storage/federatedx/ha_federatedx.h
+++ b/storage/federatedx/ha_federatedx.h
@@ -259,7 +259,7 @@ class ha_federatedx: public handler
int remote_error_number;
char remote_error_buf[FEDERATEDX_QUERY_BUFFER_SIZE];
bool ignore_duplicates, replace_duplicates;
- bool insert_dup_update;
+ bool insert_dup_update, table_will_be_deleted;
DYNAMIC_STRING bulk_insert;
private:
@@ -379,7 +379,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);