1
0
mirror of https://github.com/MariaDB/server.git synced 2025-09-08 06:27:57 +03:00
Files
mariadb/mysql-test/suite/versioning/t
Aleksey Midenkov 0932c5804d MDEV-20515 multi-update tries to position updated table by null reference
Cause

Join tmp table inserts null row because of OUTER JOIN, that's
expected. Since `multi_update::prepare2()` converted
`Item_temptable_rowid` into `Item_field` (28dbdf3)
`multi_update::send_data()` accesses join tmp record directly and
treats it as a normal row ignoring null status of ref field. NULL ref
field is then treated as normal in `multi_update::do_updates()` which
tries to position updated table by reference 0.

Note that reference 0 may be valid reference and the first row of
table can be wrongly updated (see multi_update.test).

Fix

Do not add row into multi-update tmp table in case of null ref
field. Join tmp table does not have null_row status at this time (as
well as `STATUS_NULL_ROW`) and cannot be skipped by these properties
(see first comment in multi_update::send_data()). But it has all null
fields (including the ref field).
2020-04-02 20:48:38 +03:00
..
2018-02-24 00:50:57 +01:00
2018-05-12 10:16:46 +02:00
2019-10-10 00:20:34 +03:00
2019-09-03 13:17:32 +03:00
2019-09-03 13:17:32 +03:00
2018-05-12 10:16:46 +02:00
2018-02-24 00:50:57 +01:00
2019-10-10 00:20:34 +03:00
2019-10-10 00:20:34 +03:00
2019-06-15 22:32:09 +02:00
2019-10-10 00:20:34 +03:00