[MDEV-28749] restore_prev_nj_state() doesn't update cur_sj_inner_tables correctly Created: 2022-06-05 Updated: 2022-06-07 Resolved: 2022-06-07 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Optimizer |
| Affects Version/s: | 10.3, 10.4, 10.5, 10.6, 10.7, 10.8 |
| Fix Version/s: | 10.3.36, 10.4.26, 10.5.17, 10.6.9, 10.7.5, 10.8.4 |
| Type: | Bug | Priority: | Major |
| Reporter: | Sergei Petrunia | Assignee: | Sergei Petrunia |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Description |
|
Discovered this while reviewing the patch
The patch changes which join orders are considered, and potentially the order the join orders are enumerated. One of the .result changes in the patch:
That is
The join order is NOT changed while the semi-join strategy IS changed. This should not happen. |
| Comments |
| Comment by Sergei Petrunia [ 2022-06-06 ] |
|
https://github.com/MariaDB/server/commit/161e8c5b7132212d5884865e67c50657854f1b63 |
| Comment by Sergei Petrunia [ 2022-06-07 ] |
|
Attaching a patch (against 10.3) which just adds state verification. Attempting to run subselect*test causes failures: Failing test(s): main.subselect_sj2 main.subselect_sj2_jcl6 main.subselect main.subselect3 main.subselect_sj2_mat main.subselect_mat main.subselect4 main.subselect3_jcl6 main.subselect_no_exists_to_in main.subselect_sj |