111
111
if ((null_value= args[0]->null_value) && null_item)
112
112
res_type= entry->type; // Don't change type of item
113
entry->update_hash((null_value= args[0]->null_value), ptr, length, res_type, cs, dv, unsigned_arg);
113
entry->update_hash((null_value= args[0]->null_value), data, res_type, cs, dv, unsigned_arg);
193
193
switch (cached_result_type) {
194
194
case REAL_RESULT:
196
update_hash((void*) &save_result.vreal,sizeof(save_result.vreal),
197
REAL_RESULT, &my_charset_bin, DERIVATION_IMPLICIT, 0);
196
update_hash(data_ref(&save_result.vreal, sizeof(save_result.vreal)), REAL_RESULT, &my_charset_bin, DERIVATION_IMPLICIT, 0);
203
update_hash((void*) &save_result.vint, sizeof(save_result.vint),
204
INT_RESULT, &my_charset_bin, DERIVATION_IMPLICIT,
202
update_hash(data_ref(&save_result.vint, sizeof(save_result.vint)), INT_RESULT, &my_charset_bin, DERIVATION_IMPLICIT, unsigned_flag);
209
206
case STRING_RESULT:
211
208
if (!save_result.vstr) // Null value
212
update_hash((void*) 0, 0, STRING_RESULT, &my_charset_bin,
213
DERIVATION_IMPLICIT, 0);
209
update_hash(data_ref(), STRING_RESULT, &my_charset_bin, DERIVATION_IMPLICIT, 0);
215
update_hash((void*) save_result.vstr->ptr(),
216
save_result.vstr->length(), STRING_RESULT,
217
save_result.vstr->charset(),
218
DERIVATION_IMPLICIT, 0);
211
update_hash(*save_result.vstr, STRING_RESULT, save_result.vstr->charset(), DERIVATION_IMPLICIT, 0);
222
215
case DECIMAL_RESULT:
224
217
if (!save_result.vdec) // Null value
225
update_hash((void*) 0, 0, DECIMAL_RESULT, &my_charset_bin,
226
DERIVATION_IMPLICIT, 0);
218
update_hash(data_ref(), DECIMAL_RESULT, &my_charset_bin, DERIVATION_IMPLICIT, 0);
228
update_hash((void*) save_result.vdec,
229
sizeof(type::Decimal), DECIMAL_RESULT,
230
&my_charset_bin, DERIVATION_IMPLICIT, 0);
220
update_hash(data_ref(save_result.vdec, sizeof(type::Decimal)), DECIMAL_RESULT, &my_charset_bin, DERIVATION_IMPLICIT, 0);
235
225
// This case should never be chosen