diff options
author | Sergei Petrunia <psergey@askmonty.org> | 2014-11-29 01:08:18 +0300 |
---|---|---|
committer | Sergei Petrunia <psergey@askmonty.org> | 2014-11-29 01:08:18 +0300 |
commit | 0b5d989c894a14ebcb786940fafd025e31523d8b (patch) | |
tree | d1798a98c1f8f89f9ab9000e2d5e9be4e3e7a845 /sql/sql_select.h | |
parent | 2ac3b39e68bf6bf1b56e6eafd290c0a78368d0be (diff) | |
download | mariadb-git-0b5d989c894a14ebcb786940fafd025e31523d8b.tar.gz |
EXPLAIN FORMAT=JSON: Add support for non-merged semi-joins
Diffstat (limited to 'sql/sql_select.h')
-rw-r--r-- | sql/sql_select.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/sql/sql_select.h b/sql/sql_select.h index 9463005b2ba..42b2e6b31c2 100644 --- a/sql/sql_select.h +++ b/sql/sql_select.h @@ -527,6 +527,21 @@ typedef struct st_join_table { bool preread_init(); bool is_sjm_nest() { return MY_TEST(bush_children); } + + /* + If this join_tab reads a non-merged semi-join (also called jtbm), return + the select's number. Otherwise, return 0. + */ + int get_non_merged_semijoin_select() const + { + Item_in_subselect *subq; + if (table->pos_in_table_list && + (subq= table->pos_in_table_list->jtbm_subselect)) + { + return subq->unit->first_select()->select_number; + } + return 0; /* Not a merged semi-join */ + } bool access_from_tables_is_allowed(table_map used_tables, table_map sjm_lookup_tables) |