From 03dfd986d744e60c32d29cd227840131f43a0bab Mon Sep 17 00:00:00 2001 From: "holyfoot/hf@mysql.com/hfmain.(none)" <> Date: Fri, 27 Jul 2007 18:42:25 +0500 Subject: Bug #29878 Garbage data generation when executing SESSION_USER() on a slave. Item_func_user doesn't calculate anything in it's val_str() method, just returns saved str_value. Though Item::save_in_field method can destroy str_value, relying on val_str() return. As a result we get the garbage stored in field. We cannot use Item::save_in_field implementation for Item_func_user, reimplement it in simpler way. --- sql/item_strfunc.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'sql/item_strfunc.h') diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h index d7c4a3eddef..6ca0b89a22b 100644 --- a/sql/item_strfunc.h +++ b/sql/item_strfunc.h @@ -434,6 +434,10 @@ public: } const char *func_name() const { return "user"; } const char *fully_qualified_func_name() const { return "user()"; } + int save_in_field(Field *field, bool no_conversions) + { + return save_str_value_in_field(field, &str_value); + } }; -- cgit v1.2.1