summaryrefslogtreecommitdiff
path: root/sql/item_cmpfunc.cc
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2005-07-04 03:50:04 +0300
committerunknown <monty@mysql.com>2005-07-04 03:50:04 +0300
commit3c82f72091d2c21519540ee5bcc3b2acadfbf198 (patch)
tree8d29892167ff9d836d0992c219bf4307f1c03b75 /sql/item_cmpfunc.cc
parent428830c50024475e85e12f6b188879c2de536529 (diff)
parent306ebf7b1c1b26b45e93fbcbbf248b3479142c41 (diff)
downloadmariadb-git-3c82f72091d2c21519540ee5bcc3b2acadfbf198.tar.gz
manual merge
sql/field.cc: Auto merged sql/item.cc: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_cmpfunc.h: Auto merged sql/item_func.cc: Auto merged sql/mysqld.cc: Auto merged sql/opt_range.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_view.cc: Auto merged strings/ctype-utf8.c: Auto merged
Diffstat (limited to 'sql/item_cmpfunc.cc')
-rw-r--r--sql/item_cmpfunc.cc17
1 files changed, 16 insertions, 1 deletions
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc
index 5e08c9f9cb7..bce6a58330f 100644
--- a/sql/item_cmpfunc.cc
+++ b/sql/item_cmpfunc.cc
@@ -275,7 +275,7 @@ int Arg_comparator::set_compare_func(Item_bool_func2 *item, Item_result type)
owner= item;
func= comparator_matrix[type]
[test(owner->functype() == Item_func::EQUAL_FUNC)];
- switch(type) {
+ switch (type) {
case ROW_RESULT:
{
uint n= (*a)->cols();
@@ -1578,6 +1578,21 @@ my_decimal *Item_func_case::val_decimal(my_decimal *decimal_value)
}
+bool Item_func_case::fix_fields(THD *thd, struct st_table_list *tables,
+ Item **ref)
+{
+ /*
+ buff should match stack usage from
+ Item_func_case::val_int() -> Item_func_case::find_item()
+ */
+ char buff[MAX_FIELD_WIDTH*2+sizeof(String)*2+sizeof(String*)*2+sizeof(double)*2+sizeof(longlong)*2];
+ if (check_stack_overrun(thd, STACK_MIN_SIZE, buff))
+ return TRUE; // Fatal error flag is set!
+ return Item_func::fix_fields(thd, tables, ref);
+}
+
+
+
void Item_func_case::fix_length_and_dec()
{
Item **agg;