diff options
-rw-r--r-- | storage/federatedx/federatedx_pushdown.cc | 11 | ||||
-rw-r--r-- | storage/federatedx/federatedx_pushdown.h | 1 |
2 files changed, 4 insertions, 8 deletions
diff --git a/storage/federatedx/federatedx_pushdown.cc b/storage/federatedx/federatedx_pushdown.cc index 5402a7e4f16..82bdc2dc241 100644 --- a/storage/federatedx/federatedx_pushdown.cc +++ b/storage/federatedx/federatedx_pushdown.cc @@ -137,18 +137,13 @@ int federatedx_handler_base::end_scan_() DBUG_ENTER("ha_federatedx_derived_handler::end_scan"); (*iop)->free_result(stored_result); - - free_share(txn, share); + if (share) + free_share(txn, share); DBUG_RETURN(0); } -void ha_federatedx_derived_handler::print_error(int, unsigned long) -{ -} - - static select_handler *create_federatedx_select_handler( THD *thd, SELECT_LEX *sel_lex) { @@ -228,6 +223,8 @@ int federatedx_handler_base::init_scan_() ha_federatedx *h= (ha_federatedx *) query_table->file; iop= &h->io; share= get_share(query_table->s->table_name.str, query_table); + if (!share) + goto err; txn= h->get_txn(thd); if ((rc= txn->acquire(share, thd, TRUE, iop))) DBUG_RETURN(rc); diff --git a/storage/federatedx/federatedx_pushdown.h b/storage/federatedx/federatedx_pushdown.h index 9a3ec10b310..d369039891f 100644 --- a/storage/federatedx/federatedx_pushdown.h +++ b/storage/federatedx/federatedx_pushdown.h @@ -51,7 +51,6 @@ public: int init_scan() { return federatedx_handler_base::init_scan_(); } int next_row() { return federatedx_handler_base::next_row_(table); } int end_scan() { return federatedx_handler_base::end_scan_(); } - void print_error(int, unsigned long); }; |