diff options
author | Sergei Petrunia <psergey@askmonty.org> | 2015-03-13 18:46:12 +0300 |
---|---|---|
committer | Sergei Petrunia <psergey@askmonty.org> | 2015-03-13 18:46:12 +0300 |
commit | db71ea247d8e6f470a04e789599565638380d4b3 (patch) | |
tree | 773dfc61e3ffa0347305ce8690e0d431ecc51071 /sql/sql_select.h | |
parent | ed04c40b01c122436eda6552c550d62ce8a3920b (diff) | |
download | mariadb-git-bb-10.0-mdev7474.tar.gz |
MDEV-7474: Semi-Join's DuplicateWeedout strategy skipped ...bb-10.0-mdev7474
JOIN::cur_dups_producing_tables was not maintained correctly in
the cases of greedy optimization (search_depth > n_tables).
Moved it to POSITION structure where it will be maintained automatically.
Removed POSITION::prefix_dups_producing_tables since its value can now
be calculated.
Diffstat (limited to 'sql/sql_select.h')
-rw-r--r-- | sql/sql_select.h | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/sql/sql_select.h b/sql/sql_select.h index 45041def28f..4bbbd74839e 100644 --- a/sql/sql_select.h +++ b/sql/sql_select.h @@ -825,7 +825,12 @@ typedef struct st_position :public Sql_alloc */ uint n_sj_tables; - table_map prefix_dups_producing_tables; + /* + Bitmap of semi-join inner tables that are in the join prefix and for + which there's no provision for how to eliminate semi-join duplicates + they produce. + */ + table_map dups_producing_tables; table_map inner_tables_handled_with_other_sjs; @@ -1046,13 +1051,6 @@ public: */ table_map cur_sj_inner_tables; - /* - Bitmap of semi-join inner tables that are in the join prefix and for - which there's no provision for how to eliminate semi-join duplicates - they produce. - */ - table_map cur_dups_producing_tables; - /* We also maintain a stack of join optimization states in * join->positions[] */ /******* Join optimization state members end *******/ |