Commit 3f7b8cfb authored by mats@mysql.com's avatar mats@mysql.com

Merge mysql.com:/home/bkroot/mysql-5.1-new

into  mysql.com:/home/bk/fix-mysql-5.1-new
parents 1e028904 0713aa59
...@@ -6424,6 +6424,13 @@ static int find_and_fetch_row(TABLE *table, byte *key) ...@@ -6424,6 +6424,13 @@ static int find_and_fetch_row(TABLE *table, byte *key)
if (table->s->keys > 0) if (table->s->keys > 0)
{ {
int error; 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, if ((error= table->file->index_read_idx(table->record[1], 0, key,
table->key_info->key_length, table->key_info->key_length,
HA_READ_KEY_EXACT))) HA_READ_KEY_EXACT)))
...@@ -6452,6 +6459,13 @@ static int find_and_fetch_row(TABLE *table, byte *key) ...@@ -6452,6 +6459,13 @@ static int find_and_fetch_row(TABLE *table, byte *key)
while (record_compare(table)) while (record_compare(table))
{ {
int error; 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]))) if ((error= table->file->index_next(table->record[1])))
{ {
table->file->print_error(error, MYF(0)); table->file->print_error(error, MYF(0));
...@@ -6466,6 +6480,13 @@ static int find_and_fetch_row(TABLE *table, byte *key) ...@@ -6466,6 +6480,13 @@ static int find_and_fetch_row(TABLE *table, byte *key)
int error= 0; int error= 0;
do 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]); error= table->file->rnd_next(table->record[1]);
switch (error) switch (error)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment