mariadb/storage/federatedx
Oleg Smirnov 14720ec444 MDEV-29874: FederatedX error 10000 on multi-table UPDATE/DELETE
Multi-table UPDATE and DELETE statements employ mysql_select() calls
during their processing, so the server may try to instantiate
`select_handler` in an attempt to push down the statement to
a foreign engine.

However, the current implementation of `select_handler` for FederatedX
pushes down the whole query and not only its select part
(`thd->query()`, see `int ha_federatedx_select_handler::init_scan()`).
FederatedX engine does not support execution of DML statements
on the remote side, that is why the error occured.

Solution:
- Add an extra check to only allow SELECT statements pushdown
to FederatedX
2025-10-22 15:35:54 +07:00
..
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 10.6 into 10.11 2024-06-27 10:26:09 +03: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-29874: FederatedX error 10000 on multi-table UPDATE/DELETE 2025-10-22 15:35:54 +07:00
federatedx_pushdown.h MDEV-33746 Supply missing override markings 2024-06-20 11:32:13 -04: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.6' into '10.11' 2025-04-16 03:34:40 +02:00
ha_federatedx.h Merge 10.6 into 10.11 2024-06-27 10:26:09 +03: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