mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merging patch for BUG#52131 with mysql-5.5-bugteam.
This commit is contained in:
53
sql/field.cc
53
sql/field.cc
@ -7725,12 +7725,6 @@ void Field_blob::sql_type(String &res) const
|
||||
uchar *Field_blob::pack(uchar *to, const uchar *from,
|
||||
uint max_length, bool low_byte_first)
|
||||
{
|
||||
DBUG_ENTER("Field_blob::pack");
|
||||
DBUG_PRINT("enter", ("to: 0x%lx; from: 0x%lx;"
|
||||
" max_length: %u; low_byte_first: %d",
|
||||
(ulong) to, (ulong) from,
|
||||
max_length, low_byte_first));
|
||||
DBUG_DUMP("record", from, table->s->reclength);
|
||||
uchar *save= ptr;
|
||||
ptr= (uchar*) from;
|
||||
uint32 length=get_length(); // Length of from string
|
||||
@ -7751,8 +7745,7 @@ uchar *Field_blob::pack(uchar *to, const uchar *from,
|
||||
memcpy(to+packlength, from,length);
|
||||
}
|
||||
ptr=save; // Restore org row pointer
|
||||
DBUG_DUMP("packed", to, packlength + length);
|
||||
DBUG_RETURN(to+packlength+length);
|
||||
return to+packlength+length;
|
||||
}
|
||||
|
||||
|
||||
@ -8396,6 +8389,50 @@ uint Field_enum::is_equal(Create_field *new_field)
|
||||
}
|
||||
|
||||
|
||||
uchar *Field_enum::pack(uchar *to, const uchar *from,
|
||||
uint max_length, bool low_byte_first)
|
||||
{
|
||||
DBUG_ENTER("Field_enum::pack");
|
||||
DBUG_PRINT("debug", ("packlength: %d", packlength));
|
||||
DBUG_DUMP("from", from, packlength);
|
||||
|
||||
switch (packlength)
|
||||
{
|
||||
case 1:
|
||||
*to = *from;
|
||||
DBUG_RETURN(to + 1);
|
||||
case 2: DBUG_RETURN(pack_int16(to, from, low_byte_first));
|
||||
case 3: DBUG_RETURN(pack_int24(to, from, low_byte_first));
|
||||
case 4: DBUG_RETURN(pack_int32(to, from, low_byte_first));
|
||||
case 8: DBUG_RETURN(pack_int64(to, from, low_byte_first));
|
||||
default:
|
||||
DBUG_ASSERT(0);
|
||||
}
|
||||
}
|
||||
|
||||
const uchar *Field_enum::unpack(uchar *to, const uchar *from,
|
||||
uint param_data, bool low_byte_first)
|
||||
{
|
||||
DBUG_ENTER("Field_enum::unpack");
|
||||
DBUG_PRINT("debug", ("packlength: %d", packlength));
|
||||
DBUG_DUMP("from", from, packlength);
|
||||
|
||||
switch (packlength)
|
||||
{
|
||||
case 1:
|
||||
*to = *from;
|
||||
DBUG_RETURN(from + 1);
|
||||
|
||||
case 2: DBUG_RETURN(unpack_int16(to, from, low_byte_first));
|
||||
case 3: DBUG_RETURN(unpack_int24(to, from, low_byte_first));
|
||||
case 4: DBUG_RETURN(unpack_int32(to, from, low_byte_first));
|
||||
case 8: DBUG_RETURN(unpack_int64(to, from, low_byte_first));
|
||||
default:
|
||||
DBUG_ASSERT(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@return
|
||||
returns 1 if the fields are equally defined
|
||||
|
Reference in New Issue
Block a user