[MDEV-8018] main.multi_update fails with --ps-protocol Created: 2015-04-19 Updated: 2015-04-23 Resolved: 2015-04-22 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Optimizer, Tests |
| Affects Version/s: | N/A |
| Fix Version/s: | 5.5.43 |
| Type: | Bug | Priority: | Blocker |
| Reporter: | Elena Stepanova | Assignee: | Oleksandr Byelkin |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | regression | ||
| Issue Links: |
|
||||||||
| Description |
|
See also buildbot, e.g. http://buildbot.askmonty.org/buildbot/builders/bld-dan-debug/builds/2062/steps/test_1/logs/stdio The test started failing from the following commit on 5.5 tree:
Although the failing portion of the test is new, the same updated test passes on the code before the change, so it looks like a code problem. |
| Comments |
| Comment by Oleksandr Byelkin [ 2015-04-20 ] |
|
Temporary table tov looks like have empty (but initialized) ha_memory (not opened?) |
| Comment by Oleksandr Byelkin [ 2015-04-20 ] |
|
tov was merged just before it |
| Comment by Oleksandr Byelkin [ 2015-04-21 ] |
|
difference in WHERE between prepare and usual execution usual: PS: |
| Comment by Oleksandr Byelkin [ 2015-04-21 ] |
|
the difference about caused by elimination t1a. All other sequence of processing derived tables (in general looks the same). So the question is how temporary table of a merged view got in JOIN_TAB... |
| Comment by Oleksandr Byelkin [ 2015-04-21 ] |
|
mysql_derived_merge replaces tov with ta1 during usual execution, and even PREPARE STATEMANT, but not during PS execution... |
| Comment by Oleksandr Byelkin [ 2015-04-21 ] |
|
derived->merged is set so merge do nothing... |
| Comment by Oleksandr Byelkin [ 2015-04-22 ] |
|
What happens: |
| Comment by Oleksandr Byelkin [ 2015-04-22 ] |
|
There is st_select_lex::save_prep_leaf_tables() to solve the problem above, but it is called only for upper level of views. So it should be recursive function. |
| Comment by Oleksandr Byelkin [ 2015-04-22 ] |
|
revision-id: 782ebec4c667d40c45e350e8f93025bab2f89b0c
save_prep_leaf_tables() made recursive to work with underlying view Arena restoiring fixed in case of EOM. — |