mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
Merge BUG#12997905 from 5.1 to 5.5
This commit is contained in:
commit
90eceaa18e
3 changed files with 21 additions and 1 deletions
17
sql/field.h
17
sql/field.h
|
@ -2227,6 +2227,23 @@ public:
|
|||
uchar *from_null_ptr,*to_null_ptr;
|
||||
my_bool *null_row;
|
||||
uint from_bit,to_bit;
|
||||
/**
|
||||
Number of bytes in the fields pointed to by 'from_ptr' and
|
||||
'to_ptr'. Usually this is the number of bytes that are copied from
|
||||
'from_ptr' to 'to_ptr'.
|
||||
|
||||
For variable-length fields (VARCHAR), the first byte(s) describe
|
||||
the actual length of the text. For VARCHARs with length
|
||||
< 256 there is 1 length byte
|
||||
>= 256 there is 2 length bytes
|
||||
Thus, if from_field is VARCHAR(10), from_length (and in most cases
|
||||
to_length) is 11. For VARCHAR(1024), the length is 1026. @see
|
||||
Field_varstring::length_bytes
|
||||
|
||||
Note that for VARCHARs, do_copy() will be do_varstring*() which
|
||||
only copies the length-bytes (1 or 2) + the actual length of the
|
||||
text instead of from/to_length bytes. @see get_copy_func()
|
||||
*/
|
||||
uint from_length,to_length;
|
||||
Field *from_field,*to_field;
|
||||
String tmp; // For items
|
||||
|
|
|
@ -709,7 +709,7 @@ Copy_field::get_copy_func(Field *to,Field *from)
|
|||
if (((Field_varstring*) to)->length_bytes !=
|
||||
((Field_varstring*) from)->length_bytes)
|
||||
return do_field_string;
|
||||
if (to_length != from_length)
|
||||
else
|
||||
return (((Field_varstring*) to)->length_bytes == 1 ?
|
||||
(from->charset()->mbmaxlen == 1 ? do_varstring1 :
|
||||
do_varstring1_mb) :
|
||||
|
|
|
@ -10894,6 +10894,9 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
|
|||
if (open_tmp_table(table))
|
||||
goto err;
|
||||
|
||||
// Make empty record so random data is not written to disk
|
||||
empty_record(table);
|
||||
|
||||
thd->mem_root= mem_root_save;
|
||||
|
||||
DBUG_RETURN(table);
|
||||
|
|
Loading…
Reference in a new issue