From 210c4aba95040850e6b106d20ba889e03d08dbdc Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 8 Jul 2003 00:08:00 +0300 Subject: new IN subquery engine added for simple IN with non-primary index but without NULL returning (SCRUM) (part of WL#818) mysql-test/r/subselect.result: test of new engine mysql-test/t/subselect.test: test of new engine sql/item_subselect.cc: new engine added some common operation moved in separate method sql/item_subselect.h: new engine added some common operation moved in separate method sql/sql_select.cc: new engine added some common operation moved in separate method sql/sql_select.h: some common operation moved in separate method --- sql/item_subselect.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'sql/item_subselect.h') diff --git a/sql/item_subselect.h b/sql/item_subselect.h index f9fd30141af..5749220629f 100644 --- a/sql/item_subselect.h +++ b/sql/item_subselect.h @@ -184,6 +184,7 @@ public: friend class select_exists_subselect; friend class subselect_simplein_engine; + friend class subselect_indexin_engine; }; /* IN subselect */ @@ -314,6 +315,7 @@ public: struct st_join_table; class subselect_simplein_engine: public subselect_engine { +protected: st_join_table *tab; Item *cond; public: @@ -330,4 +332,15 @@ public: bool dependent() { return 1; } bool uncacheable() { return 1; } void exclude(); + static int end_exec(TABLE *table); +}; + +class subselect_indexin_engine: public subselect_simplein_engine +{ +public: + subselect_indexin_engine(THD *thd, st_join_table *tab_arg, + Item_subselect *subs, Item *where) + :subselect_simplein_engine(thd, tab_arg, subs, where) + {} + int exec(); }; -- cgit v1.2.1