diff options
author | unknown <bell@sanja.is.com.ua> | 2003-07-08 00:08:00 +0300 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2003-07-08 00:08:00 +0300 |
commit | 210c4aba95040850e6b106d20ba889e03d08dbdc (patch) | |
tree | 15369eeb1264a3f2e01ca55f8de3f5c12459ff2d /sql/item_subselect.h | |
parent | f2ad6ba433ef131b8b3a17ebf06e6d89f506adc4 (diff) | |
download | mariadb-git-210c4aba95040850e6b106d20ba889e03d08dbdc.tar.gz |
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
Diffstat (limited to 'sql/item_subselect.h')
-rw-r--r-- | sql/item_subselect.h | 13 |
1 files changed, 13 insertions, 0 deletions
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(); }; |