summaryrefslogtreecommitdiff
path: root/sql/sql_select.h
diff options
context:
space:
mode:
authorSergei Petrunia <psergey@askmonty.org>2015-03-13 18:46:12 +0300
committerSergei Petrunia <psergey@askmonty.org>2015-03-13 18:46:12 +0300
commitdb71ea247d8e6f470a04e789599565638380d4b3 (patch)
tree773dfc61e3ffa0347305ce8690e0d431ecc51071 /sql/sql_select.h
parented04c40b01c122436eda6552c550d62ce8a3920b (diff)
downloadmariadb-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.h14
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 *******/