=== modified file 'storage/innobase/handler/ha_innodb.cc' --- storage/innobase/handler/ha_innodb.cc 2010-09-06 08:37:48 +0000 +++ storage/innobase/handler/ha_innodb.cc 2010-09-27 06:42:09 +0000 @@ -31,14 +31,6 @@ Place, Suite 330, Boston, MA 02111-1307 *****************************************************************************/ -/* TODO list for the InnoDB handler in 5.0: - - Remove the flag trx->active_trans and look at trx->conc_state - - fix savepoint functions to use savepoint storage area - - Find out what kind of problems the OS X case-insensitivity causes to - table and database names; should we 'normalize' the names like we do - in Windows? -*/ - #ifdef USE_PRAGMA_IMPLEMENTATION #pragma implementation // gcc: Class implementation #endif === modified file 'storage/innobase/row/row0merge.c' --- storage/innobase/row/row0merge.c 2010-07-29 12:33:56 +0000 +++ storage/innobase/row/row0merge.c 2010-10-13 05:49:46 +0000 @@ -1230,9 +1230,9 @@ row_merge_read_clustered_index( if (btr_pcur_is_after_last_on_page(&pcur)) { if (UNIV_UNLIKELY(trx_is_interrupted(trx))) { - i = 0; err = DB_INTERRUPTED; - goto err_exit; + trx->error_key_num = 0; + goto func_exit; } btr_pcur_store_position(&pcur, &mtr); @@ -1274,8 +1274,8 @@ row_merge_read_clustered_index( if (dfield_is_null(field)) { err = DB_PRIMARY_KEY_IS_NULL; - i = 0; - goto err_exit; + trx->error_key_num = 0; + goto func_exit; } field_type->prtype |= DATA_NOT_NULL; @@ -1315,7 +1315,6 @@ row_merge_read_clustered_index( if (dup.n_dup) { err = DB_DUPLICATE_KEY; -err_exit: trx->error_key_num = i; goto func_exit; } @@ -1329,7 +1328,8 @@ err_exit: if (!row_merge_write(file->fd, file->offset++, block)) { err = DB_OUT_OF_FILE_SPACE; - goto err_exit; + trx->error_key_num = i; + goto func_exit; } UNIV_MEM_INVALID(block[0], sizeof block[0]);