mariadb/storage/federatedx
Raghunandan Bhat dcf59cc248 MDEV-37484: Sql_cmd_dml::execute_inner, Sql_cmd_update::execute_inner do not call Select handler for the engine involved
Problem:
  After the re-design of `UPDATE` and `DELETE` in MDEV-28883, the call
  to find select handler is missing. This prevents the server from
  handring over multi-update/multi-delete queries to storage engines
  capable of executng such queries on their own (e.g., ColumnStore).

  MDEV-32382 introduced a check in `find_select_handler_inner` function,
  that blocked pushdown of queries involving CTEs, without checking if
  the storage engine is capable of handling such queries.

Fix:
  Add a call to find the select handler for the engine involved in the
  multi-update/multi-delete query, allowing the storage engines to
  execute such queries.

  Fix the `find_select_handler_inner` function by allowing the storage
  engine's create_select functions to decide the pushdown of queries
  involving CTEs.
2025-11-27 13:13:17 +05:30
..
AUTHORS Lintian complains on spelling error 2019-12-02 12:41:13 +02:00
ChangeLog Added federatedx storage engine 2009-10-30 20:50:56 +02:00
CMakeLists.txt Merge branch '10.5' into 10.6 2022-11-02 14:33:20 +01:00
FAQ Added federatedx storage engine 2009-10-30 20:50:56 +02:00
federatedx_io.cc Allow 'mariadb' as a connection wrapper name for FederatedX. 2025-02-25 16:04:56 +02:00
federatedx_io_mysql.cc Merge remote-tracking branch 'origin/11.2' into 11.4 2024-07-09 21:45:37 +04:00
federatedx_io_null.cc MDEV-33746 Supply missing override markings 2024-06-20 11:32:13 -04:00
federatedx_probes.h Added federatedx storage engine 2009-10-30 20:50:56 +02:00
federatedx_pushdown.cc MDEV-37484: Sql_cmd_dml::execute_inner, Sql_cmd_update::execute_inner do not call Select handler for the engine involved 2025-11-27 13:13:17 +05:30
federatedx_pushdown.h Merge branch '10.11' into 11.1 2024-07-08 22:40:16 +02:00
federatedx_txn.cc MDEV-29613 fixup: clang -Wunused-but-set-variable 2022-09-26 15:16:51 +03:00
ha_federatedx.cc Merge branch '10.11' into 11.4 2025-04-26 10:53:02 +02:00
ha_federatedx.h Merge branch '10.11' into 11.1 2024-07-08 22:40:16 +02:00
README Added federatedx storage engine 2009-10-30 20:50:56 +02:00
README.windows CRLF->LF 2015-06-02 22:07:47 +02:00

This is the FederatedX Storage Engine, developed as an external storage engine.

NOTE:

The following is only relevant if you use it for MySQL.  MariaDB already comes
with the latest version of FederatedX.

To install, grab a copy of the mysql source code and run this:

./configure --with-mysql=/path/to/src/mysql-5.x --libdir=/usr/local/lib/mysql/

make install

And then inside of MySQL:

mysql> INSTALL PLUGIN federatedx SONAME 'libfederatedx_engine.so';

mysql> CREATE TABLE `d` (`a` varchar(125), b text, primary key(a)) ENGINE=FEDERATEDX CONNECTION="mysql://root@host/schema/table"

or 

mysql> CREATE TABLE `d` (`a` varchar(125), b text, primary key(a)) ENGINE=FEDERATEDX CONNECTION="server" CHARSET=latin1;

You will probably need to edit the Makefile.am in the src/ tree if you want
to build on anything other then Linux (and the Makefile assumes that the
server was not compiled for debug). The reason for the two possible
configure lines is that libdir is dependent on where MySQL was installed. If
you run the "INSTALL PLUGIN ..." and you get a file not found, check that
your configured this directory correctly.

For Solaris you can enable DTrace probes by adding to configure
--enable-dtrace