summaryrefslogtreecommitdiff
path: root/sql/item_subselect.h
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2003-07-08 00:08:00 +0300
committerunknown <bell@sanja.is.com.ua>2003-07-08 00:08:00 +0300
commit210c4aba95040850e6b106d20ba889e03d08dbdc (patch)
tree15369eeb1264a3f2e01ca55f8de3f5c12459ff2d /sql/item_subselect.h
parentf2ad6ba433ef131b8b3a17ebf06e6d89f506adc4 (diff)
downloadmariadb-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.h13
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();
};