Hi, Oleksandr! On Jun 11, Oleksandr Byelkin wrote: > Am 29.01.2018 um 01:02 schrieb Sergei Golubchik: > > On Jan 28, Oleksandr Byelkin wrote: > >> Hi, Sergei! > >> > >> Flag in SELECT_LEX options dropped at the end of execution (in our case > >> prepare). All commands where EXPLAIN is possible restore the flag in main > >> SELECT_LEX (in mysql_explain_union()) except UPDATE (because it do > >> not use mysql_explain_union() > >> for explain). Without the flag it first try to send OK (as part of update) > >> then EOF as part of EXPLAIN. > > Ok. > > > > 1. Why does it not use mysql_explain_union() ? > It is question to them who made explain for non SELECT statements > (probably Sergey Petrunia) as I can see it just have a bit different > call pathes.
So all UPDATE/DELETE restore the flag, and only multi-update didn't? What about multi-delete? Better to add tests with PREPARE and all non-select explainable commands to test it and to make sure it won't break in the future. > > 2. Why EXPLAIN flag is need to be removed and restored anyway? > > Because it is how our EXPLAIN works (written without taking into account > re-execution). If remove the flag cleanup it will change output of > prepared explain EXPLAIN. Yes, I understand why the flag has to be restored. But why it has to be removed? Regards, Sergei Chief Architect MariaDB and secur...@mariadb.org _______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp