diff options
author | unknown <bell@sanja.is.com.ua> | 2003-01-30 18:07:39 +0200 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2003-01-30 18:07:39 +0200 |
commit | 43b99e58c5eca989325b0f273f47b2b18e32c20c (patch) | |
tree | bafc998fbb4616150087e1b6ce3cfc1d48b8362f /sql/item_sum.h | |
parent | a0ddb72d52de3576fb0441e37e169f7cedd1fc1e (diff) | |
download | mariadb-git-43b99e58c5eca989325b0f273f47b2b18e32c20c.tar.gz |
changes based on partial revie of task 577 (SCRUM)
sql/item.cc:
Fixed Item usual constructor to call current_thd only once.
Fixed copy constructor to receive THD pointer via arguments.
added comments
removed counter-1 and unnessesary initializaton of counter
sql/item.h:
Fixed copy constructor to receive THD pointer via arguments.
Renamed get_same to copy_or_same.
THD pointetr added to copy_or_same and get_tmp_table_item.
sql/item_cmpfunc.cc:
fixed layout
fixed direct call of destructor
sql/item_func.cc:
fiex layout
THD pointetr added to get_tmp_table_item.
sql/item_func.h:
THD pointetr added to get_tmp_table_item.
sql/item_sum.cc:
Fixed copy constructor to receive THD pointer via arguments.
Renamed get_same to copy_or_same.
THD pointetr added to copy_or_same and get_tmp_table_item.
sql/item_sum.h:
fixed layout
Fixed copy constructor to receive THD pointer via arguments.
Renamed get_same to copy_or_same.
THD pointetr added to copy_or_same and get_tmp_table_item.
sql/item_uniq.h:
Fixed copy constructor to receive THD pointer via arguments.
Renamed get_same to copy_or_same.
THD pointetr added to copy_or_same and get_tmp_table_item.
sql/sql_base.cc:
count from 0
sql/sql_select.cc:
removed counter-1 and unnessesary initializaton of counter
THD pointetr added to get_tmp_table_item and change_to_use_tmp_fields.
Diffstat (limited to 'sql/item_sum.h')
-rw-r--r-- | sql/item_sum.h | 113 |
1 files changed, 62 insertions, 51 deletions
diff --git a/sql/item_sum.h b/sql/item_sum.h index 7f7b5e70f41..69966aa5796 100644 --- a/sql/item_sum.h +++ b/sql/item_sum.h @@ -55,7 +55,7 @@ public: } Item_sum(List<Item> &list); //Copy constructor, need to perform subselects with temporary tables - Item_sum(Item_sum &item); + Item_sum(THD *thd, Item_sum &item); ~Item_sum() { result_field=0; } enum Type type() const { return SUM_FUNC_ITEM; } @@ -77,7 +77,7 @@ public: void print(String *str); void fix_num_length_and_dec(); virtual bool setup(THD *thd) {return 0;} - Item * get_tmp_table_item(); + Item *get_tmp_table_item(THD *thd); }; @@ -88,7 +88,7 @@ public: Item_sum_num(Item *item_par) :Item_sum(item_par) {} Item_sum_num(Item *a, Item* b) :Item_sum(a,b) {} Item_sum_num(List<Item> &list) :Item_sum(list) {} - Item_sum_num(Item_sum_num &item) :Item_sum(item) {} + Item_sum_num(THD *thd, Item_sum_num &item) :Item_sum(thd, item) {} bool fix_fields(THD *, TABLE_LIST *, Item **); longlong val_int() { return (longlong) val(); } /* Real as default */ String *val_str(String*str); @@ -104,7 +104,7 @@ class Item_sum_int :public Item_sum_num public: Item_sum_int(Item *item_par) :Item_sum_num(item_par) {} Item_sum_int(List<Item> &list) :Item_sum_num(list) {} - Item_sum_int(Item_sum_int &item) :Item_sum_num(item) {} + Item_sum_int(THD *thd, Item_sum_int &item) :Item_sum_num(thd, item) {} double val() { return (double) val_int(); } String *val_str(String*str); enum Item_result result_type () const { return INT_RESULT; } @@ -118,7 +118,8 @@ class Item_sum_sum :public Item_sum_num public: Item_sum_sum(Item *item_par) :Item_sum_num(item_par),sum(0.0) {} - Item_sum_sum(Item_sum_sum &item) :Item_sum_num(item), sum(item.sum) {} + Item_sum_sum(THD *thd, Item_sum_sum &item) + :Item_sum_num(thd, item), sum(item.sum) {} enum Sumfunctype sum_func () const {return SUM_FUNC;} void reset(); bool add(); @@ -126,7 +127,7 @@ class Item_sum_sum :public Item_sum_num void reset_field(); void update_field(int offset); const char *func_name() const { return "sum"; } - Item * get_same() { return new Item_sum_sum(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_sum(thd, *this); } }; @@ -139,9 +140,9 @@ class Item_sum_count :public Item_sum_int Item_sum_count(Item *item_par) :Item_sum_int(item_par),count(0),used_table_cache(~(table_map) 0) {} - Item_sum_count(Item_sum_count &item): Item_sum_int(item), - count(item.count), - used_table_cache(item.used_table_cache) + Item_sum_count(THD *thd, Item_sum_count &item) + :Item_sum_int(thd, item), count(item.count), + used_table_cache(item.used_table_cache) {} table_map used_tables() const { return used_table_cache; } bool const_item() const { return !used_table_cache; } @@ -153,7 +154,7 @@ class Item_sum_count :public Item_sum_int void reset_field(); void update_field(int offset); const char *func_name() const { return "count"; } - Item * get_same() { return new Item_sum_count(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_count(thd, *this); } }; @@ -206,15 +207,15 @@ class Item_sum_count_distinct :public Item_sum_int tmp_table_param(0), tree(&tree_base), original(0), use_tree(0), always_null(0) { quick_group= 0; } - Item_sum_count_distinct(Item_sum_count_distinct &item): - Item_sum_int(item), table(item.table), - used_table_cache(item.used_table_cache), - field_lengths(item.field_lengths), tmp_table_param(item.tmp_table_param), - tree(item.tree), original(&item), key_length(item.key_length), - max_elements_in_tree(item.max_elements_in_tree), - rec_offset(item.rec_offset), use_tree(item.use_tree), - always_null(item.always_null) - {} + Item_sum_count_distinct(THD *thd, Item_sum_count_distinct &item) + :Item_sum_int(thd, item), table(item.table), + used_table_cache(item.used_table_cache), + field_lengths(item.field_lengths), tmp_table_param(item.tmp_table_param), + tree(item.tree), original(&item), key_length(item.key_length), + max_elements_in_tree(item.max_elements_in_tree), + rec_offset(item.rec_offset), use_tree(item.use_tree), + always_null(item.always_null) + {} ~Item_sum_count_distinct(); table_map used_tables() const { return used_table_cache; } enum Sumfunctype sum_func () const { return COUNT_DISTINCT_FUNC; } @@ -225,7 +226,10 @@ class Item_sum_count_distinct :public Item_sum_int void update_field(int offset) { return ; } // Never called const char *func_name() const { return "count_distinct"; } bool setup(THD *thd); - Item * get_same() { return new Item_sum_count_distinct(*this); } + Item *copy_or_same(THD* thd) + { + return new Item_sum_count_distinct(thd, *this); + } }; @@ -257,8 +261,8 @@ class Item_sum_avg :public Item_sum_num public: Item_sum_avg(Item *item_par) :Item_sum_num(item_par),count(0) {} - Item_sum_avg(Item_sum_avg &item) - :Item_sum_num(item), sum(item.sum), count(item.count) {} + Item_sum_avg(THD *thd, Item_sum_avg &item) + :Item_sum_num(thd, item), sum(item.sum), count(item.count) {} enum Sumfunctype sum_func () const {return AVG_FUNC;} void reset(); bool add(); @@ -268,7 +272,7 @@ class Item_sum_avg :public Item_sum_num Item *result_item(Field *field) { return new Item_avg_field(this); } const char *func_name() const { return "avg"; } - Item * get_same() { return new Item_sum_avg(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_avg(thd, *this); } }; class Item_sum_variance; @@ -309,8 +313,8 @@ class Item_sum_variance : public Item_sum_num public: Item_sum_variance(Item *item_par) :Item_sum_num(item_par),count(0) {} - Item_sum_variance(Item_sum_variance &item): - Item_sum_num(item), sum(item.sum), sum_sqr(item.sum_sqr), + Item_sum_variance(THD *thd, Item_sum_variance &item): + Item_sum_num(thd, item), sum(item.sum), sum_sqr(item.sum_sqr), count(item.count) {} enum Sumfunctype sum_func () const { return VARIANCE_FUNC; } void reset(); @@ -321,7 +325,7 @@ class Item_sum_variance : public Item_sum_num Item *result_item(Field *field) { return new Item_variance_field(this); } const char *func_name() const { return "variance"; } - Item * get_same() { return new Item_sum_variance(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_variance(thd, *this); } }; class Item_sum_std; @@ -366,8 +370,8 @@ class Item_sum_hybrid :public Item_sum Item_sum_hybrid(Item *item_par,int sign) :Item_sum(item_par),cmp_sign(sign), used_table_cache(~(table_map) 0) {} - Item_sum_hybrid(Item_sum_hybrid &item): - Item_sum(item), value(item.value), tmp_value(item.tmp_value), + Item_sum_hybrid(THD *thd, Item_sum_hybrid &item): + Item_sum(thd, item), value(item.value), tmp_value(item.tmp_value), sum(item.sum), sum_int(item.sum_int), hybrid_type(item.hybrid_type), cmp_sign(item.cmp_sign), used_table_cache(used_table_cache) {} bool fix_fields(THD *, TABLE_LIST *, Item **); @@ -401,12 +405,12 @@ class Item_sum_min :public Item_sum_hybrid { public: Item_sum_min(Item *item_par) :Item_sum_hybrid(item_par,1) {} - Item_sum_min(Item_sum_min &item) :Item_sum_hybrid(item) {} + Item_sum_min(THD *thd, Item_sum_min &item) :Item_sum_hybrid(thd, item) {} enum Sumfunctype sum_func () const {return MIN_FUNC;} bool add(); const char *func_name() const { return "min"; } - Item * get_same() { return new Item_sum_min(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_min(thd, *this); } }; @@ -414,12 +418,12 @@ class Item_sum_max :public Item_sum_hybrid { public: Item_sum_max(Item *item_par) :Item_sum_hybrid(item_par,-1) {} - Item_sum_max(Item_sum_max &item) :Item_sum_hybrid(item) {} + Item_sum_max(THD *thd, Item_sum_max &item) :Item_sum_hybrid(thd, item) {} enum Sumfunctype sum_func () const {return MAX_FUNC;} bool add(); const char *func_name() const { return "max"; } - Item * get_same() { return new Item_sum_max(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_max(thd, *this); } }; @@ -431,8 +435,8 @@ class Item_sum_bit :public Item_sum_int public: Item_sum_bit(Item *item_par,ulonglong reset_arg) :Item_sum_int(item_par),reset_bits(reset_arg),bits(reset_arg) {} - Item_sum_bit(Item_sum_bit &item): - Item_sum_int(item), reset_bits(item.reset_bits), bits(item.bits) {} + Item_sum_bit(THD *thd, Item_sum_bit &item): + Item_sum_int(thd, item), reset_bits(item.reset_bits), bits(item.bits) {} enum Sumfunctype sum_func () const {return SUM_BIT_FUNC;} void reset(); longlong val_int(); @@ -444,11 +448,11 @@ class Item_sum_or :public Item_sum_bit { public: Item_sum_or(Item *item_par) :Item_sum_bit(item_par,LL(0)) {} - Item_sum_or(Item_sum_or &item) :Item_sum_bit(item) {} + Item_sum_or(THD *thd, Item_sum_or &item) :Item_sum_bit(thd, item) {} bool add(); void update_field(int offset); const char *func_name() const { return "bit_or"; } - Item * get_same() { return new Item_sum_or(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_or(thd, *this); } }; @@ -456,11 +460,11 @@ class Item_sum_and :public Item_sum_bit { public: Item_sum_and(Item *item_par) :Item_sum_bit(item_par, ~(ulonglong) LL(0)) {} - Item_sum_and(Item_sum_and &item) :Item_sum_bit(item) {} + Item_sum_and(THD *thd, Item_sum_and &item) :Item_sum_bit(thd, item) {} bool add(); void update_field(int offset); const char *func_name() const { return "bit_and"; } - Item * get_same() { return new Item_sum_and(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_and(thd, *this); } }; /* @@ -478,7 +482,8 @@ public: Item_udf_sum( udf_func *udf_arg, List<Item> &list ) :Item_sum( list ), udf(udf_arg) { quick_group=0;} - Item_udf_sum(Item_udf_sum &item) :Item_sum(item), udf(item.udf) {} + Item_udf_sum(THD *thd, Item_udf_sum &item) + :Item_sum(thd, item), udf(item.udf) {} ~Item_udf_sum() {} const char *func_name() const { return udf.name(); } bool fix_fields(THD *thd, TABLE_LIST *tables, Item **ref) @@ -502,13 +507,14 @@ class Item_sum_udf_float :public Item_udf_sum Item_sum_udf_float(udf_func *udf_arg) :Item_udf_sum(udf_arg) {} Item_sum_udf_float(udf_func *udf_arg, List<Item> &list) :Item_udf_sum(udf_arg,list) {} - Item_sum_udf_float(Item_sum_udf_float &item): Item_udf_sum(item) {} + Item_sum_udf_float(THD *thd, Item_sum_udf_float &item) + :Item_udf_sum(thd, item) {} ~Item_sum_udf_float() {} longlong val_int() { return (longlong) Item_sum_udf_float::val(); } double val(); String *val_str(String*str); void fix_length_and_dec() { fix_num_length_and_dec(); } - Item * get_same() { return new Item_sum_udf_float(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_udf_float(thd, *this); } }; @@ -518,14 +524,15 @@ public: Item_sum_udf_int(udf_func *udf_arg) :Item_udf_sum(udf_arg) {} Item_sum_udf_int(udf_func *udf_arg, List<Item> &list) :Item_udf_sum(udf_arg,list) {} - Item_sum_udf_int(Item_sum_udf_int &item): Item_udf_sum(item) {} + Item_sum_udf_int(THD *thd, Item_sum_udf_int &item) + :Item_udf_sum(thd, item) {} ~Item_sum_udf_int() {} longlong val_int(); double val() { return (double) Item_sum_udf_int::val_int(); } String *val_str(String*str); enum Item_result result_type () const { return INT_RESULT; } void fix_length_and_dec() { decimals=0; max_length=21; } - Item * get_same() { return new Item_sum_udf_int(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_udf_int(thd, *this); } }; @@ -535,7 +542,8 @@ public: Item_sum_udf_str(udf_func *udf_arg) :Item_udf_sum(udf_arg) {} Item_sum_udf_str(udf_func *udf_arg, List<Item> &list) :Item_udf_sum(udf_arg,list) {} - Item_sum_udf_str(Item_sum_udf_str &item): Item_udf_sum(item) {} + Item_sum_udf_str(THD *thd, Item_sum_udf_str &item) + :Item_udf_sum(thd, item) {} ~Item_sum_udf_str() {} String *val_str(String *); double val() @@ -553,7 +561,7 @@ public: } enum Item_result result_type () const { return STRING_RESULT; } void fix_length_and_dec(); - Item * get_same() { return new Item_sum_udf_str(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_udf_str(thd, *this); } }; #else /* Dummy functions to get sql_yacc.cc compiled */ @@ -563,14 +571,15 @@ class Item_sum_udf_float :public Item_sum_num public: Item_sum_udf_float(udf_func *udf_arg) :Item_sum_num() {} Item_sum_udf_float(udf_func *udf_arg, List<Item> &list) :Item_sum_num() {} - Item_sum_udf_float(Item_sum_udf_float &item): Item_sum_num(item) {} + Item_sum_udf_float(THD *thd, Item_sum_udf_float &item) + :Item_sum_num(thd, item) {} ~Item_sum_udf_float() {} enum Sumfunctype sum_func () const { return UDF_SUM_FUNC; } double val() { return 0.0; } void reset() {} bool add() { return 0; } void update_field(int offset) {} - Item * get_same() { return new Item_sum_udf_float(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_udf_float(thd, *this); } }; @@ -579,7 +588,8 @@ class Item_sum_udf_int :public Item_sum_num public: Item_sum_udf_int(udf_func *udf_arg) :Item_sum_num() {} Item_sum_udf_int(udf_func *udf_arg, List<Item> &list) :Item_sum_num() {} - Item_sum_udf_int(Item_sum_udf_int &item): Item_sum_num(item) {} + Item_sum_udf_int(THD *thd, Item_sum_udf_int &item) + :Item_sum_num(thd, item) {} ~Item_sum_udf_int() {} enum Sumfunctype sum_func () const { return UDF_SUM_FUNC; } longlong val_int() { return 0; } @@ -587,7 +597,7 @@ public: void reset() {} bool add() { return 0; } void update_field(int offset) {} - Item * get_same() { return new Item_sum_udf_int(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_udf_int(thd, *this); } }; @@ -596,7 +606,8 @@ class Item_sum_udf_str :public Item_sum_num public: Item_sum_udf_str(udf_func *udf_arg) :Item_sum_num() {} Item_sum_udf_str(udf_func *udf_arg, List<Item> &list) :Item_sum_num() {} - Item_sum_udf_str(Item_sum_udf_str &item): Item_sum_num(item) {} + Item_sum_udf_str(THD *thd, Item_sum_udf_str &item) + :Item_sum_num(thd, item) {} ~Item_sum_udf_str() {} String *val_str(String *) { null_value=1; return 0; } double val() { null_value=1; return 0.0; } @@ -607,7 +618,7 @@ public: void reset() {} bool add() { return 0; } void update_field(int offset) {} - Item * get_same() { return new Item_sum_udf_str(*this); } + Item *copy_or_same(THD* thd) { return new Item_sum_udf_str(thd, *this); } }; #endif /* HAVE_DLOPEN */ |