Merge dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/my50-bug23856

into  dl145s.mysql.com:/users/mhansson/mysql/push/bug23856/my51-bug23856


mysql-test/r/func_gconcat.result:
  Auto merged
mysql-test/t/func_gconcat.test:
  Auto merged
sql/field.h:
  Auto merged
sql/field_conv.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/item_sum.cc:
  Bug#23856: Manual merge 5.0->5.1. Changed comparison to strict inequality between 
  convert_blob_length and UINT_MAX16. Replaced UINT_MAX16 with Field_varstring::MAX_SIZE.
This commit is contained in:
unknown 2007-05-21 14:28:31 +02:00
commit ab267d33ff
6 changed files with 111 additions and 6 deletions

View file

@ -529,7 +529,21 @@ void Copy_field::set(char *to,Field *from)
}
/*
To do:
If 'save\ is set to true and the 'from' is a blob field, do_copy is set to
do_save_blob rather than do_conv_blob. The only differences between them
appears to be:
- do_save_blob allocates and uses an intermediate buffer before calling
Field_blob::store. Is this in order to trigger the call to
well_formed_copy_nchars, by changing the pointer copy->tmp.ptr()?
That call will take place anyway in all known cases.
- The above causes a truncation to MAX_FIELD_WIDTH. Is this the intended
effect? Truncation is handled by well_formed_copy_nchars anyway.
*/
void Copy_field::set(Field *to,Field *from,bool save)
{
if (to->type() == MYSQL_TYPE_NULL)