Below is the list of changes that have just been committed into a local
5.1 repository of msvensson. When msvensson does a push these changes
will be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2008-01-15 17:01:58+01:00, msvensson@stripped +2 -0
Bug#33375 all_set corrupted on table object
- make sure to reset the read and write sets
handler.cc, log_event.cc:
- make sure to reset the read and write sets
sql/handler.cc@stripped, 2008-01-15 17:00:59+01:00, msvensson@stripped +2 -0
- make sure to reset the read and write sets
sql/log_event.cc@stripped, 2008-01-15 17:01:06+01:00, msvensson@stripped +13 -7
- make sure to reset the read and write sets
diff -Nrup a/sql/handler.cc b/sql/handler.cc
--- a/sql/handler.cc 2007-12-13 12:49:52 +01:00
+++ b/sql/handler.cc 2008-01-15 17:00:59 +01:00
@@ -3710,6 +3710,8 @@ int handler::ha_reset()
DBUG_ASSERT(inited == NONE);
/* Free cache used by filesort */
free_io_cache(table);
+ /* reset the bitmaps to point to defaults */
+ table->default_column_bitmaps();
DBUG_RETURN(reset());
}
diff -Nrup a/sql/log_event.cc b/sql/log_event.cc
--- a/sql/log_event.cc 2007-12-12 16:20:54 +01:00
+++ b/sql/log_event.cc 2008-01-15 17:01:06 +01:00
@@ -7837,7 +7837,7 @@ int Rows_log_event::find_row(const Relay
{
DBUG_PRINT("info",("ha_index_init returns error %d",error));
table->file->print_error(error, MYF(0));
- DBUG_RETURN(error);
+ goto err;
}
/* Fill key data for the row */
@@ -7870,7 +7870,7 @@ int Rows_log_event::find_row(const Relay
DBUG_PRINT("info",("no record matching the key found in the table"));
table->file->print_error(error, MYF(0));
table->file->ha_index_end();
- DBUG_RETURN(error);
+ goto err;
}
/*
@@ -7898,7 +7898,7 @@ int Rows_log_event::find_row(const Relay
if (table->key_info->flags & HA_NOSAME)
{
table->file->ha_index_end();
- DBUG_RETURN(0);
+ goto ok;
}
/*
@@ -7930,7 +7930,7 @@ int Rows_log_event::find_row(const Relay
DBUG_PRINT("info",("no record matching the given row found"));
table->file->print_error(error, MYF(0));
table->file->ha_index_end();
- DBUG_RETURN(error);
+ goto err;
}
}
@@ -7951,7 +7951,7 @@ int Rows_log_event::find_row(const Relay
DBUG_PRINT("info",("error initializing table scan"
" (ha_rnd_init returns %d)",error));
table->file->print_error(error, MYF(0));
- DBUG_RETURN(error);
+ goto err;
}
/* Continue until we find the right record or have made a full loop */
@@ -7975,7 +7975,7 @@ int Rows_log_event::find_row(const Relay
" (rnd_next returns %d)",error));
table->file->print_error(error, MYF(0));
table->file->ha_rnd_end();
- DBUG_RETURN(error);
+ goto err;
}
}
while (restart_count < 2 && record_compare(table));
@@ -7995,10 +7995,16 @@ int Rows_log_event::find_row(const Relay
table->file->ha_rnd_end();
DBUG_ASSERT(error == HA_ERR_END_OF_FILE || error == HA_ERR_RECORD_DELETED || error == 0);
- DBUG_RETURN(error);
+ goto err;
}
+ok:
+ table->default_column_bitmaps();
DBUG_RETURN(0);
+
+err:
+ table->default_column_bitmaps();
+ DBUG_RETURN(error);
}
#endif
| Thread |
|---|
| • bk commit into 5.1 tree (msvensson:1.2653) BUG#33375 | msvensson | 15 Jan |