summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/suite/federated/federatedx_create_handlers.test4
-rw-r--r--storage/federatedx/federatedx_pushdown.cc6
-rw-r--r--storage/federatedx/ha_federatedx.cc10
3 files changed, 18 insertions, 2 deletions
diff --git a/mysql-test/suite/federated/federatedx_create_handlers.test b/mysql-test/suite/federated/federatedx_create_handlers.test
index 21539b61c8a..558b8465abd 100644
--- a/mysql-test/suite/federated/federatedx_create_handlers.test
+++ b/mysql-test/suite/federated/federatedx_create_handlers.test
@@ -1,6 +1,8 @@
--source have_federatedx.inc
--source include/federated.inc
+set global federated_pushdown=1;
+
connection slave;
DROP TABLE IF EXISTS federated.t1;
@@ -152,3 +154,5 @@ DROP TABLE federated.t1, federated.t2;
connection default;
source include/federated_cleanup.inc;
+
+set global federated_pushdown=0;
diff --git a/storage/federatedx/federatedx_pushdown.cc b/storage/federatedx/federatedx_pushdown.cc
index c53b35976f7..906d87c29ce 100644
--- a/storage/federatedx/federatedx_pushdown.cc
+++ b/storage/federatedx/federatedx_pushdown.cc
@@ -19,6 +19,9 @@
static derived_handler*
create_federatedx_derived_handler(THD* thd, TABLE_LIST *derived)
{
+ if (!use_pushdown)
+ return 0;
+
ha_federatedx_derived_handler* handler = NULL;
handlerton *ht= 0;
@@ -144,6 +147,9 @@ void ha_federatedx_derived_handler::print_error(int, unsigned long)
static select_handler*
create_federatedx_select_handler(THD* thd, SELECT_LEX *sel)
{
+ if (!use_pushdown)
+ return 0;
+
ha_federatedx_select_handler* handler = NULL;
handlerton *ht= 0;
diff --git a/storage/federatedx/ha_federatedx.cc b/storage/federatedx/ha_federatedx.cc
index 918fbef711a..f55b0bc779d 100644
--- a/storage/federatedx/ha_federatedx.cc
+++ b/storage/federatedx/ha_federatedx.cc
@@ -3677,11 +3677,17 @@ err1:
return error;
}
-#include "federatedx_pushdown.cc"
struct st_mysql_storage_engine federatedx_storage_engine=
{ MYSQL_HANDLERTON_INTERFACE_VERSION };
+my_bool use_pushdown;
+static MYSQL_SYSVAR_BOOL(pushdown, use_pushdown, 0,
+ "Use query fragments pushdown capabilities", NULL, NULL, FALSE);
+static struct st_mysql_sys_var* sysvars[]= { MYSQL_SYSVAR(pushdown) };
+
+#include "federatedx_pushdown.cc"
+
maria_declare_plugin(federatedx)
{
MYSQL_STORAGE_ENGINE_PLUGIN,
@@ -3694,7 +3700,7 @@ maria_declare_plugin(federatedx)
federatedx_done, /* Plugin Deinit */
0x0201 /* 2.1 */,
NULL, /* status variables */
- NULL, /* system variables */
+ sysvars, /* system variables */
"2.1", /* string version */
MariaDB_PLUGIN_MATURITY_STABLE /* maturity */
}