diff options
author | hf@deer.(none) <> | 2003-12-30 14:08:19 +0400 |
---|---|---|
committer | hf@deer.(none) <> | 2003-12-30 14:08:19 +0400 |
commit | bfe134b86fad8eaa46196c8283cc91e6c77769b0 (patch) | |
tree | 2ae6e41d1324a906e2f8a6868b34fe75950e736f /sql/item_subselect.h | |
parent | 1547a03c797fa547f1664d9c56a313daf62972bc (diff) | |
download | mariadb-git-bfe134b86fad8eaa46196c8283cc91e6c77769b0.tar.gz |
Fix for prepared statements
Here i added Item_*::cleanup() functions,
removed a lot of ~Item_*'s,
added code to restore order_list and group_list
Diffstat (limited to 'sql/item_subselect.h')
-rw-r--r-- | sql/item_subselect.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sql/item_subselect.h b/sql/item_subselect.h index 8444dc7bf66..dc3d07540da 100644 --- a/sql/item_subselect.h +++ b/sql/item_subselect.h @@ -69,6 +69,7 @@ public: select_subselect *result); ~Item_subselect(); + void cleanup(); virtual void reset() { null_value= 1; @@ -199,6 +200,13 @@ public: {} + void cleanup() + { + Item_exists_subselect::cleanup(); + abort_on_null= 0; + transformed= 0; + upper_not= 0; + } subs_type substype() { return IN_SUBS; } void reset() { @@ -261,6 +269,7 @@ public: maybe_null= 0; } virtual ~subselect_engine() {}; // to satisfy compiler + virtual void cleanup() {} // set_thd should be called before prepare() void set_thd(THD *thd_arg) { thd= thd_arg; } @@ -290,6 +299,7 @@ public: subselect_single_select_engine(st_select_lex *select, select_subselect *result, Item_subselect *item); + void cleanup(); int prepare(); void fix_length_and_dec(Item_cache** row); int exec(); |