3664 Marko Mäkelä 2010-12-01
Bug#58623: Bogus debug assertion failure in i_s_locks_row_validate()
This bogus assertion was introduced in the fix of Bug #57802:
Empty ASSERTION parameter passed to the HASH_SEARCH macro.
modified:
storage/innodb_plugin/trx/trx0i_s.c
3663 kevin.lewis@stripped 2010-11-30
RB://518 approved by Jimmy Yang and Sunny bains
Code cleanup after changes for Bug 56628. The general approach for
InnoDB is to make a reference to each enum value whenever it is used in a
switch statement. In addition, no default case should be used for switch
statements on enum types. This assures that if there is ever any change
in the enum values, the switch will need to change to reflect it since a
compiler warning will occur. In this case, the enum row_type is declared
in handler.h and could be changed for another storage engine. If so, a
warning will occur in the InnoDB build.
Other changes;
* This patch uses 2 macros to help consolidate warning messages that
need to occur twice in the single switch for row_format.
* Using row_format as the variable name to distinguish it from the enum
type.
* Function declaration format correction.
modified:
storage/innodb_plugin/handler/ha_innodb.cc
=== modified file 'storage/innodb_plugin/trx/trx0i_s.c'
--- a/storage/innodb_plugin/trx/trx0i_s.c revid:kevin.lewis@stripped6pbc3
+++ b/storage/innodb_plugin/trx/trx0i_s.c revid:marko.makela@stripped
@@ -435,7 +435,7 @@ i_s_locks_row_validate(
/* record lock */
ut_ad(!strcmp("RECORD", row->lock_type));
ut_ad(row->lock_index != NULL);
- ut_ad(row->lock_data != NULL);
+ /* row->lock_data == NULL if buf_page_try_get() == NULL */
ut_ad(row->lock_page != ULINT_UNDEFINED);
ut_ad(row->lock_rec != ULINT_UNDEFINED);
}
Attachment: [text/bzr-bundle] bzr/marko.makela@oracle.com-20101201080353-2i2qyp0iars3nt1i.bundle
| Thread |
|---|
| • bzr push into mysql-5.1-innodb branch (marko.makela:3663 to 3664) Bug#58623 | marko.makela | 1 Dec |