summaryrefslogtreecommitdiff
path: root/sql/item_func.h
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2019-04-22 14:01:58 +0400
committerAlexander Barkov <bar@mariadb.com>2019-04-22 14:01:58 +0400
commit279b50b4eb69f882510f069e79715c38dc13355e (patch)
tree115d0e09a5906c1673781fe7a3eba8556846ce6a /sql/item_func.h
parentf4b27400185bab217da11f8781eebb09a8502304 (diff)
downloadmariadb-git-279b50b4eb69f882510f069e79715c38dc13355e.tar.gz
MDEV-14041 Server crashes in String::length on queries with functions and ROLLUP
Diffstat (limited to 'sql/item_func.h')
-rw-r--r--sql/item_func.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/sql/item_func.h b/sql/item_func.h
index 9700429d543..36a2f94b31d 100644
--- a/sql/item_func.h
+++ b/sql/item_func.h
@@ -1120,10 +1120,13 @@ public:
name= a->name;
name_length= a->name_length;
}
- double val_real() { return args[0]->val_real(); }
- longlong val_int() { return args[0]->val_int(); }
- String *val_str(String *str) { return args[0]->val_str(str); }
- my_decimal *val_decimal(my_decimal *dec) { return args[0]->val_decimal(dec); }
+ double val_real() { return val_real_from_item(args[0]); }
+ longlong val_int() { return val_int_from_item(args[0]); }
+ String *val_str(String *str) { return val_str_from_item(args[0], str); }
+ my_decimal *val_decimal(my_decimal *dec)
+ { return val_decimal_from_item(args[0], dec); }
+ bool get_date(MYSQL_TIME *ltime, ulonglong fuzzydate)
+ { return get_date_from_item(args[0], ltime, fuzzydate); }
const char *func_name() const { return "rollup_const"; }
bool const_item() const { return 0; }
Item_result result_type() const { return args[0]->result_type(); }