diff options
author | unknown <bell@sanja.is.com.ua> | 2002-10-08 23:49:59 +0300 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2002-10-08 23:49:59 +0300 |
commit | ac97cce4617a52d100cb2b5fa6c6c972c3510702 (patch) | |
tree | 71154ef484f41fba7f785d13f291e3838104779f | |
parent | 58dc03066c8b8c38cdfa47e1f3c99ee002551b4f (diff) | |
download | mariadb-git-ac97cce4617a52d100cb2b5fa6c6c972c3510702.tar.gz |
removed 'this' pointer from initialization list of constructors
-rw-r--r-- | sql/item_subselect.cc | 29 | ||||
-rw-r--r-- | sql/item_subselect.h | 11 |
2 files changed, 27 insertions, 13 deletions
diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index e8ee6a780ea..2d08b9cb6b5 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -32,11 +32,22 @@ SUBSELECT TODO: #include "mysql_priv.h" #include "sql_select.h" -Item_subselect::Item_subselect(THD *thd, st_select_lex *select_lex, - select_subselect *result): +Item_subselect::Item_subselect(): Item(), engine_owner(1), value_assigned(0) { - DBUG_ENTER("Item_subselect::Item_subselect"); + assign_null(); + /* + item value is NULL if select_subselect not changed this value + (i.e. some rows will be found returned) + */ + null_value= 1; +} + +void Item_subselect::init(THD *thd, st_select_lex *select_lex, + select_subselect *result) +{ + + DBUG_ENTER("Item_subselect::init"); DBUG_PRINT("subs", ("select_lex 0x%xl", (long) select_lex)); if (select_lex->next_select()) @@ -45,12 +56,6 @@ Item_subselect::Item_subselect(THD *thd, st_select_lex *select_lex, else engine= new subselect_single_select_engine(thd, select_lex, result, this); - assign_null(); - /* - item value is NULL if select_subselect not changed this value - (i.e. some rows will be found returned) - */ - null_value= 1; DBUG_VOID_RETURN; } @@ -100,8 +105,9 @@ inline table_map Item_subselect::used_tables() const Item_singleval_subselect::Item_singleval_subselect(THD *thd, st_select_lex *select_lex): - Item_subselect(thd, select_lex, new select_singleval_subselect(this)) + Item_subselect() { + init(thd, select_lex, new select_singleval_subselect(this)); max_columns= 1; maybe_null= 1; } @@ -149,8 +155,9 @@ String *Item_singleval_subselect::val_str (String *str) Item_exists_subselect::Item_exists_subselect(THD *thd, st_select_lex *select_lex): - Item_subselect(thd, select_lex, new select_exists_subselect(this)) + Item_subselect() { + init(thd, select_lex, new select_exists_subselect(this)); max_columns= UINT_MAX; null_value= 0; //can't be NULL maybe_null= 0; //can't be NULL diff --git a/sql/item_subselect.h b/sql/item_subselect.h index 92839eb0e5f..5d070871b49 100644 --- a/sql/item_subselect.h +++ b/sql/item_subselect.h @@ -39,8 +39,7 @@ protected: uint max_columns; public: - Item_subselect(THD *thd, st_select_lex *select_lex, - select_subselect* result); + Item_subselect(); Item_subselect(Item_subselect *item) { null_value= item->null_value; @@ -50,6 +49,14 @@ public: engine_owner= 0; name= item->name; } + + /* + We need this method, because some compilers do not allow 'this' + pointer in constructor initialization list, but we need pass pointer + to subselect Item class to select_subselect classes constructor. + */ + void init (THD *thd, st_select_lex *select_lex, select_subselect *result); + ~Item_subselect(); virtual void assign_null() { |