summaryrefslogtreecommitdiff
path: root/sql/sql_class.h
diff options
context:
space:
mode:
authorIgor Babaev <igor@askmonty.org>2022-06-19 23:43:17 -0700
committerIgor Babaev <igor@askmonty.org>2022-06-20 16:43:44 -0700
commit2adebf4876283859066c11f23e89965733594363 (patch)
treec7bb7ab6f94b4d34c9adab2bab466f37b3ed7f56 /sql/sql_class.h
parentf7d2374083184261897e86bced158d9ae2c4aaaf (diff)
downloadmariadb-git-bb-10.10-mdev-7487.tar.gz
MDEV-7487 Semi-join optimization for single-table update/delete statementsbb-10.10-mdev-7487
This patch allows to use semi-join optimization at the top level of single-table update and delete statements. The problem of supporting such optimization became easy to resolve after processing a single-table update/delete statement started using JOIN structure. This allowed to use JOIN::prepare() not only for multi-table updates/deletes but for single-table ones as well. This was done in the patch for mdev-28883: Re-design the upper level of handling UPDATE and DELETE statements. Note that JOIN::prepare() detects all subqueries that can be considered as candidates for semi-join optimization. The code added by this patch looks for such candidates at the top level and if such candidates are found in the processed single-table update/delete the statement is handled in the same way as a multi-table update/delete. Approved by Oleksandr Byelkin <sanja@mariadb.com>
Diffstat (limited to 'sql/sql_class.h')
-rw-r--r--sql/sql_class.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 167df5b07d9..3a2704ffe5f 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -7005,6 +7005,7 @@ public:
// Methods used by ColumnStore
uint get_num_of_tables() const { return num_of_tables; }
TABLE_LIST* get_tables() const { return delete_tables; }
+ void set_delete_tables (TABLE_LIST *tbl) { delete_tables= tbl; }
public:
multi_delete(THD *thd_arg, TABLE_LIST *dt, uint num_of_tables);
~multi_delete();