diff options
Diffstat (limited to 'sql/item_create.cc')
-rw-r--r-- | sql/item_create.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/sql/item_create.cc b/sql/item_create.cc index 1f0bad8eda3..c6fca1c01e1 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -294,10 +294,12 @@ Item *create_func_pow(Item* a, Item *b) Item *create_func_current_user() { THD *thd=current_thd; - Item_string *res=new Item_string("CURRENT_USER()", thd->priv_user, 0); - res->append("@", 1); - res->append((char *)thd->host_or_ip, 0); - return res; + char buff[HOSTNAME_LENGTH+USERNAME_LENGTH+2]; + uint length; + + length= (uint) (strxmov(buff, thd->priv_user, "@", thd->host_or_ip, NullS) - + buff); + return new Item_string("CURRENT_USER()", thd->memdup(buff, length), length); } Item *create_func_quarter(Item* a) @@ -403,7 +405,7 @@ Item *create_func_ucase(Item* a) Item *create_func_version(void) { - return new Item_string("VERSION()",server_version, 0); + return new Item_string("VERSION()",server_version, strlen(server_version)); } Item *create_func_weekday(Item* a) |