Loading sql/item_func.cc +5 −3 Original line number Diff line number Diff line Loading @@ -3422,6 +3422,7 @@ static user_var_entry *get_variable(HASH *hash, LEX_STRING &name, entry->length=0; entry->update_query_id=0; entry->collation.set(NULL, DERIVATION_IMPLICIT); entry->unsigned_flag= 0; /* If we are here, we were called from a SET or a query which sets a variable. Imagine it is this: Loading Loading @@ -3565,6 +3566,7 @@ update_hash(user_var_entry *entry, bool set_null, void *ptr, uint length, ((my_decimal*)entry->value)->fix_buffer_pointer(); entry->length= length; entry->collation.set(cs, dv); entry->unsigned_flag= unsigned_arg; } entry->type=type; return 0; Loading Loading @@ -3797,7 +3799,7 @@ Item_func_set_user_var::update() case REAL_RESULT: { res= update_hash((void*) &save_result.vreal,sizeof(save_result.vreal), REAL_RESULT, &my_charset_bin, DERIVATION_IMPLICIT); REAL_RESULT, &my_charset_bin, DERIVATION_IMPLICIT, 0); break; } case INT_RESULT: Loading @@ -3811,12 +3813,12 @@ Item_func_set_user_var::update() { if (!save_result.vstr) // Null value res= update_hash((void*) 0, 0, STRING_RESULT, &my_charset_bin, DERIVATION_IMPLICIT); DERIVATION_IMPLICIT, 0); else res= update_hash((void*) save_result.vstr->ptr(), save_result.vstr->length(), STRING_RESULT, save_result.vstr->charset(), DERIVATION_IMPLICIT); DERIVATION_IMPLICIT, 0); break; } case DECIMAL_RESULT: Loading sql/log_event.cc +1 −1 Original line number Diff line number Diff line Loading @@ -3846,7 +3846,7 @@ int User_var_log_event::exec_event(struct st_relay_log_info* rli) a single record and with a single column. Thus, like a column value, it could always have IMPLICIT derivation. */ e.update_hash(val, val_len, type, charset, DERIVATION_IMPLICIT); e.update_hash(val, val_len, type, charset, DERIVATION_IMPLICIT, 0); free_root(thd->mem_root,0); rli->inc_event_relay_log_pos(); Loading sql/sql_class.h +1 −0 Original line number Diff line number Diff line Loading @@ -2016,6 +2016,7 @@ class user_var_entry ulong length; query_id_t update_query_id, used_query_id; Item_result type; bool unsigned_flag; double val_real(my_bool *null_value); longlong val_int(my_bool *null_value); Loading Loading
sql/item_func.cc +5 −3 Original line number Diff line number Diff line Loading @@ -3422,6 +3422,7 @@ static user_var_entry *get_variable(HASH *hash, LEX_STRING &name, entry->length=0; entry->update_query_id=0; entry->collation.set(NULL, DERIVATION_IMPLICIT); entry->unsigned_flag= 0; /* If we are here, we were called from a SET or a query which sets a variable. Imagine it is this: Loading Loading @@ -3565,6 +3566,7 @@ update_hash(user_var_entry *entry, bool set_null, void *ptr, uint length, ((my_decimal*)entry->value)->fix_buffer_pointer(); entry->length= length; entry->collation.set(cs, dv); entry->unsigned_flag= unsigned_arg; } entry->type=type; return 0; Loading Loading @@ -3797,7 +3799,7 @@ Item_func_set_user_var::update() case REAL_RESULT: { res= update_hash((void*) &save_result.vreal,sizeof(save_result.vreal), REAL_RESULT, &my_charset_bin, DERIVATION_IMPLICIT); REAL_RESULT, &my_charset_bin, DERIVATION_IMPLICIT, 0); break; } case INT_RESULT: Loading @@ -3811,12 +3813,12 @@ Item_func_set_user_var::update() { if (!save_result.vstr) // Null value res= update_hash((void*) 0, 0, STRING_RESULT, &my_charset_bin, DERIVATION_IMPLICIT); DERIVATION_IMPLICIT, 0); else res= update_hash((void*) save_result.vstr->ptr(), save_result.vstr->length(), STRING_RESULT, save_result.vstr->charset(), DERIVATION_IMPLICIT); DERIVATION_IMPLICIT, 0); break; } case DECIMAL_RESULT: Loading
sql/log_event.cc +1 −1 Original line number Diff line number Diff line Loading @@ -3846,7 +3846,7 @@ int User_var_log_event::exec_event(struct st_relay_log_info* rli) a single record and with a single column. Thus, like a column value, it could always have IMPLICIT derivation. */ e.update_hash(val, val_len, type, charset, DERIVATION_IMPLICIT); e.update_hash(val, val_len, type, charset, DERIVATION_IMPLICIT, 0); free_root(thd->mem_root,0); rli->inc_event_relay_log_pos(); Loading
sql/sql_class.h +1 −0 Original line number Diff line number Diff line Loading @@ -2016,6 +2016,7 @@ class user_var_entry ulong length; query_id_t update_query_id, used_query_id; Item_result type; bool unsigned_flag; double val_real(my_bool *null_value); longlong val_int(my_bool *null_value); Loading