diff options
author | Aleksey Midenkov <midenok@gmail.com> | 2020-12-09 20:15:29 +0300 |
---|---|---|
committer | Aleksey Midenkov <midenok@gmail.com> | 2020-12-09 20:15:29 +0300 |
commit | f99abb45c586e618fbbf573e1990209ab7f26968 (patch) | |
tree | aeba61e896d55da71e49866422fab99183f6cac9 /sql/field.h | |
parent | a3f7f2334a267ec4e120f70e84a8551fb502860f (diff) | |
download | mariadb-git-f99abb45c586e618fbbf573e1990209ab7f26968.tar.gz |
MDEV-17573 Assertion in federatedx on multi-update
Cause: shared federatedx_io cannot store table-specific data.
Fix: move current row reference `federatedx_io_mysql::current` to
ha_federatedx.
FederatedX connection (represented by federatedx_io) is stored into
federatedx_txn::txn_list of per-server connections (see
federatedx_txn::acquire()). federatedx_txn object is stored into THD
(see ha_federatedx::external_lock()). When multiple handlers acquire
FederatedX connection they get single federatedx_io instance. Multiple
handlers do their operation via federatedx_io_mysql::mark_position()
and federatedx_io_mysql::fetch_row() in arbitrarty manner. They access
the same federatedx_io_mysql instance and same MYSQL_ROWS *current
pointer, so one handler disrupts the work of the other.
Related to "MDEV-14551 Can't find record in table on multi-table update
with ORDER BY".
Diffstat (limited to 'sql/field.h')
0 files changed, 0 insertions, 0 deletions