summaryrefslogtreecommitdiff
path: root/storage/federatedx
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2019-02-09 22:54:26 -0800
committerIgor Babaev <igor@askmonty.org>2019-02-09 22:54:26 -0800
commitd11be23933def394585fae83a6f1ab561e3736f2 (patch)
tree867a809df45931d5c6ad00424c327cd47aae9392 /storage/federatedx
parent3f9040085a0de4976f55bc7e4a2fa5fa8d923100 (diff)
downloadmariadb-git-d11be23933def394585fae83a6f1ab561e3736f2.tar.gz
MDEV-17096 Pushdown of simple derived tables to storage engines
Resolved the problem of forming a proper query string for FEDERATEDX. Added test cases. Cleanup of extra spaces.
Diffstat (limited to 'storage/federatedx')
-rw-r--r--storage/federatedx/federatedx_pushdown.cc19
-rw-r--r--storage/federatedx/federatedx_pushdown.h4
2 files changed, 9 insertions, 14 deletions
diff --git a/storage/federatedx/federatedx_pushdown.cc b/storage/federatedx/federatedx_pushdown.cc
index bfe421c8ab2..c53b35976f7 100644
--- a/storage/federatedx/federatedx_pushdown.cc
+++ b/storage/federatedx/federatedx_pushdown.cc
@@ -38,14 +38,14 @@ create_federatedx_derived_handler(THD* thd, TABLE_LIST *derived)
return 0;
}
}
-
+
handler= new ha_federatedx_derived_handler(thd, derived);
return handler;
}
-/*
+/*
Implementation class of the derived_handler interface for FEDERATEDX:
class implementation
*/
@@ -62,7 +62,6 @@ ha_federatedx_derived_handler::~ha_federatedx_derived_handler() {}
int ha_federatedx_derived_handler::init_scan()
{
- char query_buff[4096];
THD *thd;
int rc= 0;
@@ -76,12 +75,8 @@ int ha_federatedx_derived_handler::init_scan()
txn= h->get_txn(thd);
if ((rc= txn->acquire(share, thd, TRUE, iop)))
DBUG_RETURN(rc);
-
- String derived_query(query_buff, sizeof(query_buff), thd->charset());
- derived_query.length(0);
- derived->derived->print(&derived_query, QT_ORDINARY);
-
- if ((*iop)->query(derived_query.ptr(), derived_query.length()))
+
+ if ((*iop)->query(derived->derived_spec.str, derived->derived_spec.length))
goto err;
stored_result= (*iop)->store_result();
@@ -93,7 +88,7 @@ int ha_federatedx_derived_handler::init_scan()
err:
DBUG_RETURN(HA_FEDERATEDX_ERROR_WITH_REMOTE_SYSTEM);
}
-
+
int ha_federatedx_derived_handler::next_row()
{
int rc;
@@ -167,7 +162,7 @@ create_federatedx_select_handler(THD* thd, SELECT_LEX *sel)
return handler;
}
-/*
+/*
Implementation class of the select_handler interface for FEDERATEDX:
class implementation
*/
@@ -175,7 +170,7 @@ create_federatedx_select_handler(THD* thd, SELECT_LEX *sel)
ha_federatedx_select_handler::ha_federatedx_select_handler(THD *thd,
SELECT_LEX *sel)
: select_handler(thd, federatedx_hton),
- share(NULL), txn(NULL), iop(NULL), stored_result(NULL)
+ share(NULL), txn(NULL), iop(NULL), stored_result(NULL)
{
select= sel;
}
diff --git a/storage/federatedx/federatedx_pushdown.h b/storage/federatedx/federatedx_pushdown.h
index 961571b972c..673abcfc68d 100644
--- a/storage/federatedx/federatedx_pushdown.h
+++ b/storage/federatedx/federatedx_pushdown.h
@@ -17,7 +17,7 @@
#include "derived_handler.h"
#include "select_handler.h"
-/*
+/*
Implementation class of the derived_handler interface for FEDERATEDX:
class declaration
*/
@@ -40,7 +40,7 @@ public:
};
-/*
+/*
Implementation class of the select_handler interface for FEDERATEDX:
class declaration
*/