diff options
Diffstat (limited to 'sql/item_create.cc')
-rw-r--r-- | sql/item_create.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sql/item_create.cc b/sql/item_create.cc index 259427af901..f277061394a 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -303,6 +303,17 @@ Item *create_func_pow(Item* a, Item *b) return new Item_func_pow(a,b); } +Item *create_func_current_user() +{ + THD *thd=current_thd; + 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) { return new Item_func_quarter(a); @@ -406,7 +417,7 @@ Item *create_func_ucase(Item* a) Item *create_func_version(void) { - return new Item_string(NullS,server_version, + return new Item_string("VERSION()",server_version, (uint) strlen(server_version), default_charset_info); } |