summaryrefslogtreecommitdiff
path: root/sql/item_func.h
diff options
context:
space:
mode:
Diffstat (limited to 'sql/item_func.h')
-rw-r--r--sql/item_func.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/sql/item_func.h b/sql/item_func.h
index 5560d3cdb0d..6ecbc04ddf0 100644
--- a/sql/item_func.h
+++ b/sql/item_func.h
@@ -121,6 +121,7 @@ public:
}
bool is_null() { (void) val_int(); return null_value; }
friend class udf_handler;
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -140,6 +141,7 @@ public:
if (!t_arg) return result_field;
return new Field_double(max_length, maybe_null, name,t_arg,decimals);
}
+ virtual unsigned int size_of () { return sizeof(*this);}
};
class Item_num_func :public Item_func
@@ -154,6 +156,7 @@ public:
enum Item_result result_type () const { return hybrid_type; }
void fix_length_and_dec() { fix_num_length_and_dec(); }
bool is_null() { (void) val(); return null_value; }
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -187,6 +190,7 @@ class Item_num_op :public Item_func
res= new Field_double(max_length, maybe_null, name, t_arg, decimals);
return res;
}
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -459,6 +463,7 @@ public:
const char *func_name() const { return truncate ? "truncate" : "round"; }
double val();
void fix_length_and_dec();
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -494,6 +499,7 @@ class Item_func_units :public Item_real_func
double val();
const char *func_name() const { return name; }
void fix_length_and_dec() { decimals=NOT_FIXED_DEC; max_length=float_length(decimals); }
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -510,6 +516,7 @@ public:
String *val_str(String *);
void fix_length_and_dec();
enum Item_result result_type () const { return cmp_type; }
+ virtual unsigned int size_of () { return sizeof(*this);}
};
class Item_func_min :public Item_func_min_max
@@ -535,6 +542,7 @@ public:
longlong val_int();
const char *func_name() const { return "length"; }
void fix_length_and_dec() { max_length=10; }
+ virtual unsigned int size_of () { return sizeof(*this);}
};
class Item_func_bit_length :public Item_func_length
@@ -553,6 +561,7 @@ public:
longlong val_int();
const char *func_name() const { return "char_length"; }
void fix_length_and_dec() { max_length=10; }
+ virtual unsigned int size_of () { return sizeof(*this);}
};
class Item_func_locate :public Item_int_func
@@ -564,6 +573,7 @@ public:
const char *func_name() const { return "locate"; }
longlong val_int();
void fix_length_and_dec() { maybe_null=0; max_length=11; }
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -593,6 +603,7 @@ public:
const_item_cache&= item->const_item();
with_sum_func= with_sum_func || item->with_sum_func;
}
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -604,6 +615,7 @@ public:
longlong val_int();
const char *func_name() const { return "ascii"; }
void fix_length_and_dec() { max_length=3; }
+ virtual unsigned int size_of () { return sizeof(*this);}
};
class Item_func_ord :public Item_int_func
@@ -613,6 +625,7 @@ public:
Item_func_ord(Item *a) :Item_int_func(a) {}
longlong val_int();
const char *func_name() const { return "ord"; }
+ virtual unsigned int size_of () { return sizeof(*this);}
};
class Item_func_find_in_set :public Item_int_func
@@ -625,6 +638,7 @@ public:
longlong val_int();
const char *func_name() const { return "find_in_set"; }
void fix_length_and_dec();
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -700,6 +714,7 @@ class Item_func_benchmark :public Item_int_func
longlong val_int();
const char *func_name() const { return "benchmark"; }
void fix_length_and_dec() { max_length=1; maybe_null=0; }
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -724,6 +739,7 @@ public:
return res;
}
Item_result result_type () const { return udf.result_type(); }
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -832,6 +848,7 @@ class Item_func_get_lock :public Item_int_func
longlong val_int();
const char *func_name() const { return "get_lock"; }
void fix_length_and_dec() { max_length=1; maybe_null=1;}
+ virtual unsigned int size_of () { return sizeof(*this);}
};
class Item_func_release_lock :public Item_int_func
@@ -842,6 +859,7 @@ class Item_func_release_lock :public Item_int_func
longlong val_int();
const char *func_name() const { return "release_lock"; }
void fix_length_and_dec() { max_length=1; maybe_null=1;}
+ virtual unsigned int size_of () { return sizeof(*this);}
};
/* replication functions */
@@ -854,6 +872,7 @@ class Item_master_pos_wait :public Item_int_func
longlong val_int();
const char *func_name() const { return "master_pos_wait"; }
void fix_length_and_dec() { max_length=1; maybe_null=1;}
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -879,6 +898,7 @@ public:
void fix_length_and_dec();
void print(String *str);
const char *func_name() const { return "set_user_var"; }
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -903,6 +923,7 @@ public:
table_map used_tables() const
{ return const_var_flag ? 0 : RAND_TABLE_BIT; }
bool eq(const Item *item, bool binary_cmp) const;
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -958,6 +979,7 @@ public:
bool fix_index();
void init_search(bool no_order);
+ virtual unsigned int size_of () { return sizeof(*this);}
};
@@ -1008,4 +1030,5 @@ public:
longlong val_int();
const char *func_name() const { return "check_lock"; }
void fix_length_and_dec() { decimals=0; max_length=1; maybe_null=1;}
+ virtual unsigned int size_of () { return sizeof(*this);}
};