1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Merge mysql.com:/usr/local/mysql/mysql-5.1-bug20549

into  mysql.com:/usr/local/mysql/tmp-5.1
This commit is contained in:
knielsen@rt.int.sifira.dk
2006-06-26 11:26:24 +02:00
2 changed files with 24 additions and 5 deletions

View File

@ -2506,15 +2506,19 @@ my_size_t THD::pack_row(TABLE *table, MY_BITMAP const* cols, byte *row_data,
int n_null_bytes= table->s->null_bytes;
byte *ptr;
uint i;
my_ptrdiff_t const offset= (my_ptrdiff_t) (record - (byte*)
table->record[0]);
my_ptrdiff_t const rec_offset= record - table->record[0];
my_ptrdiff_t const def_offset= table->s->default_values - table->record[0];
memcpy(row_data, record, n_null_bytes);
ptr= row_data+n_null_bytes;
for (i= 0 ; (field= *p_field) ; i++, p_field++)
{
if (bitmap_is_set(cols,i))
{
my_ptrdiff_t const offset=
field->is_null(rec_offset) ? def_offset : rec_offset;
ptr= (byte*)field->pack((char *) ptr, field->ptr + offset);
}
}
return (static_cast<my_size_t>(ptr - row_data));
}