1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

Bug#17874 (Test failure: rpl_row_basic_3innodb):

Some storage engines does not set the filler bits, so we set them
  before calling the record-reading functions.


sql/log_event.cc:
  Set the null byte containing filler bits before calling any record-
  reading functions.
This commit is contained in:
unknown
2006-03-07 08:33:20 +01:00
parent a5518ba652
commit 28e6f6c43c

View File

@@ -6424,6 +6424,13 @@ static int find_and_fetch_row(TABLE *table, byte *key)
if (table->s->keys > 0)
{
int error;
/*
We need to set the null bytes to ensure that the filler bit
are all set when returning. There are storage engines that
just set the necessary bits on the bytes and don't set the
filler bits correctly.
*/
table->record[1][table->s->null_bytes - 1]= 0xFF;
if ((error= table->file->index_read_idx(table->record[1], 0, key,
table->key_info->key_length,
HA_READ_KEY_EXACT)))
@@ -6452,6 +6459,13 @@ static int find_and_fetch_row(TABLE *table, byte *key)
while (record_compare(table))
{
int error;
/*
We need to set the null bytes to ensure that the filler bit
are all set when returning. There are storage engines that
just set the necessary bits on the bytes and don't set the
filler bits correctly.
*/
table->record[1][table->s->null_bytes - 1]= 0xFF;
if ((error= table->file->index_next(table->record[1])))
{
table->file->print_error(error, MYF(0));
@@ -6466,6 +6480,13 @@ static int find_and_fetch_row(TABLE *table, byte *key)
int error= 0;
do
{
/*
We need to set the null bytes to ensure that the filler bit
are all set when returning. There are storage engines that
just set the necessary bits on the bytes and don't set the
filler bits correctly.
*/
table->record[1][table->s->null_bytes - 1]= 0xFF;
error= table->file->rnd_next(table->record[1]);
switch (error)
{