diff options
author | unknown <knielsen@knielsen-hq.org> | 2009-11-16 21:49:51 +0100 |
---|---|---|
committer | unknown <knielsen@knielsen-hq.org> | 2009-11-16 21:49:51 +0100 |
commit | a962160eec233c265900e2754ed2a63ef5e27c5a (patch) | |
tree | f1b33a7aed53016189b17cd3f50243b3c8a022de /storage/federatedx | |
parent | 166e0683c0d45a79716d8913ec9ecaf3177343fa (diff) | |
parent | 9b7a7f06c1a56f49a4528f019ec821d3a01934b6 (diff) | |
download | mariadb-git-a962160eec233c265900e2754ed2a63ef5e27c5a.tar.gz |
Merge with MySQL 5.1, with following additions:
- Moved some code from innodb_plugin to xtradb, to ensure that all tests runs
- Did changes in pbxt and maria storage engines becasue of changes in thd->query
- Reverted wrong code in sql_table.cc for how ROW_FORMAT is used.
This is a re-commit of Monty's merge to eliminate an extra commit from
MySQL-5.1.42 that was accidentally included in the merge.
This is a merge of the MySQL 5.1.41 clone-off (clone-5.1.41-build). In
case there are any extra changes done before final MySQL 5.1.41
release, these will need to be merged later before MariaDB 5.1.41
release.
Diffstat (limited to 'storage/federatedx')
-rw-r--r-- | storage/federatedx/Makefile.am | 1 | ||||
-rw-r--r-- | storage/federatedx/ha_federatedx.cc | 22 |
2 files changed, 15 insertions, 8 deletions
diff --git a/storage/federatedx/Makefile.am b/storage/federatedx/Makefile.am index 6dbeff1207a..ad1328247ec 100644 --- a/storage/federatedx/Makefile.am +++ b/storage/federatedx/Makefile.am @@ -22,7 +22,6 @@ pkgplugin_LTLIBRARIES = @plugin_federated_shared_target@ ha_federatedx_la_LDFLAGS = -module -rpath $(pkgplugindir) ha_federatedx_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN ha_federatedx_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN -ha_federatedx_la_SOURCES = ha_federatedx.cc EXTRA_LIBRARIES = libfederatedx.a diff --git a/storage/federatedx/ha_federatedx.cc b/storage/federatedx/ha_federatedx.cc index 4d4b25da058..308215fe839 100644 --- a/storage/federatedx/ha_federatedx.cc +++ b/storage/federatedx/ha_federatedx.cc @@ -390,8 +390,8 @@ int federatedx_db_init(void *p) DBUG_ENTER("federatedx_db_init"); handlerton *federatedx_hton= (handlerton *)p; federatedx_hton->state= SHOW_OPTION_YES; - /* This is no longer needed for plugin storage engines */ - federatedx_hton->db_type= DB_TYPE_DEFAULT; + /* Needed to work with old .frm files */ + federatedx_hton->db_type= DB_TYPE_FEDERATED_DB; federatedx_hton->savepoint_offset= sizeof(ulong); federatedx_hton->close_connection= ha_federatedx::disconnect; federatedx_hton->savepoint_set= ha_federatedx::savepoint_set; @@ -1785,14 +1785,22 @@ int ha_federatedx::close(void) if (stored_result) retval= free_result(); - /* Disconnect from mysql */ - if ((txn= get_txn(thd, true))) + /* Disconnect from mysql. thd may be null during refresh */ + txn= thd ? get_txn(thd, true) : new federatedx_txn(); + + if (txn) + { txn->release(&io); + + DBUG_ASSERT(io == NULL); - DBUG_ASSERT(io == NULL); + if ((error= free_share(txn, share))) + retval= error; + + if (!thd) + delete txn; - if ((error= free_share(txn, share))) - retval= error; + } DBUG_RETURN(retval); } |