diff options
author | Sergei Golubchik <sergii@pisem.net> | 2010-11-25 18:17:28 +0100 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2010-11-25 18:17:28 +0100 |
commit | 65ca700def99289cc31a7040537f5aa6e12bf485 (patch) | |
tree | 97b3a07299b626c519da0e80c122b5b79b933914 /storage/federated | |
parent | 2ab57de38d13d927ddff2d51aed4af34e13998f5 (diff) | |
parent | 6e5bcca7935d3c62f84bb640e5357664a210ee12 (diff) | |
download | mariadb-git-65ca700def99289cc31a7040537f5aa6e12bf485.tar.gz |
merge.
checkpoint.
does not compile.
Diffstat (limited to 'storage/federated')
-rw-r--r-- | storage/federated/Makefile.am | 12 | ||||
-rw-r--r-- | storage/federated/README | 7 | ||||
-rw-r--r-- | storage/federated/ha_federated.cc | 22 | ||||
-rw-r--r-- | storage/federated/ha_federated.h | 2 | ||||
-rw-r--r-- | storage/federated/plug.in | 2 |
5 files changed, 35 insertions, 10 deletions
diff --git a/storage/federated/Makefile.am b/storage/federated/Makefile.am index e07b0d95b97..28b71900af2 100644 --- a/storage/federated/Makefile.am +++ b/storage/federated/Makefile.am @@ -27,24 +27,22 @@ INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \ WRAPLIBS= -LDADD = - DEFS = @DEFS@ noinst_HEADERS = ha_federated.h EXTRA_LTLIBRARIES = ha_federated.la pkgplugin_LTLIBRARIES = @plugin_federated_shared_target@ -ha_federated_la_LDFLAGS = -module -rpath $(pkgplugindir) -ha_federated_la_CXXFLAGS= $(AM_CXXFLAGS) -DMYSQL_DYNAMIC_PLUGIN -ha_federated_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN -ha_federated_la_SOURCES = ha_federated.cc +ha_federated_la_LDFLAGS = -module -rpath $(pkgplugindir) \ + -L$(top_builddir)/libservices -lmysqlservices +ha_federated_la_CXXFLAGS= -shared $(AM_CXXFLAGS) -DMYSQL_DYNAMIC_PLUGIN +ha_federated_la_CFLAGS = -shared $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN +ha_federated_la_SOURCES = ha_federated.cc $(top_srcdir)/mysys/string.c EXTRA_LIBRARIES = libfederated.a noinst_LIBRARIES = @plugin_federated_static_target@ libfederated_a_CXXFLAGS = $(AM_CXXFLAGS) -libfederated_a_CFLAGS = $(AM_CFLAGS) libfederated_a_SOURCES= ha_federated.cc diff --git a/storage/federated/README b/storage/federated/README new file mode 100644 index 00000000000..1b521cb7859 --- /dev/null +++ b/storage/federated/README @@ -0,0 +1,7 @@ +The files in this directory are not used by MariaDB + +MariaDB uses the new federated storage engine that can be found in the +federatedx directory. + +This directory is only kept around to make it easy to merge code from the +MySQL source repositories that uses the old and disabled federated code. diff --git a/storage/federated/ha_federated.cc b/storage/federated/ha_federated.cc index b1ae276dce8..f38f71b15ee 100644 --- a/storage/federated/ha_federated.cc +++ b/storage/federated/ha_federated.cc @@ -2019,7 +2019,7 @@ int ha_federated::end_bulk_insert() int error= 0; DBUG_ENTER("ha_federated::end_bulk_insert"); - if (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(); @@ -2966,6 +2966,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)); @@ -3366,6 +3368,7 @@ int ha_federated::external_lock(THD *thd, int lock_type) } } #endif /* XXX_SUPERCEDED_BY_WL2952 */ + table_will_be_deleted = FALSE; DBUG_RETURN(error); } @@ -3474,3 +3477,20 @@ mysql_declare_plugin(federated) NULL /* config options */ } mysql_declare_plugin_end; +maria_declare_plugin(federated) +{ + MYSQL_STORAGE_ENGINE_PLUGIN, + &federated_storage_engine, + "FEDERATED", + "Patrick Galbraith and Brian Aker, MySQL AB", + "Federated MySQL storage engine", + PLUGIN_LICENSE_GPL, + federated_db_init, /* Plugin Init */ + federated_done, /* Plugin Deinit */ + 0x0100 /* 1.0 */, + NULL, /* status variables */ + NULL, /* system variables */ + "1.0", /* string version */ + MariaDB_PLUGIN_MATURITY_BETA /* maturity */ +} +maria_declare_plugin_end; diff --git a/storage/federated/ha_federated.h b/storage/federated/ha_federated.h index 0f4c0201bd7..be52a54be50 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; diff --git a/storage/federated/plug.in b/storage/federated/plug.in index 23b607d699b..714888b2ebf 100644 --- a/storage/federated/plug.in +++ b/storage/federated/plug.in @@ -1,5 +1,5 @@ MYSQL_STORAGE_ENGINE(federated,,[Federated Storage Engine], - [Connects to tables on remote MySQL servers], [max,max-no-ndb]) + [Connects to tables on remote MySQL servers], []) MYSQL_PLUGIN_STATIC(federated, [libfederated.a]) MYSQL_PLUGIN_DYNAMIC(federated, [ha_federated.la]) MYSQL_PLUGIN_DEPENDS_ON_MYSQL_INTERNALS(federated, [ha_federated.cc]) |