From 10852be938b545af8a60b5357686d6f695932e89 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 14 Mar 2005 12:43:22 +0200 Subject: dict0load.c: dict_load_table(): Refuse to open ROW_FORMAT=COMPACT tables of MySQL 5.0.3 and later. innobase/dict/dict0load.c: dict_load_table(): Refuse to open ROW_FORMAT=COMPACT tables of MySQL 5.0.3 and later. --- innobase/dict/dict0load.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'innobase') diff --git a/innobase/dict/dict0load.c b/innobase/dict/dict0load.c index a4637e09d07..a39ffe37ffd 100644 --- a/innobase/dict/dict0load.c +++ b/innobase/dict/dict0load.c @@ -639,7 +639,7 @@ dict_load_table( /* Check if the table name in record is the searched one */ if (len != ut_strlen(name) || ut_memcmp(name, field, len) != 0) { - + err_exit: btr_pcur_close(&pcur); mtr_commit(&mtr); mem_heap_free(heap); @@ -662,6 +662,13 @@ dict_load_table( field = rec_get_nth_field(rec, 4, &len); n_cols = mach_read_from_4(field); + if (n_cols & 0x80000000UL) { + ut_print_timestamp(stderr); + fprintf(stderr, + " InnoDB: table %s is in the new compact format\n" + "InnoDB: of MySQL 5.0.3 or later\n", name); + goto err_exit; + } table = dict_mem_table_create(name, space, n_cols); -- cgit v1.2.1 From f56889321f9062f4b9af4664a9a8387a21534354 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 15 Mar 2005 08:33:47 +0200 Subject: buf0flu.c: Add diagnostics to track why ut_a(block->state == BUF_BLOCK_FILE_PAGE) failed in buf_flush_ready_for_replace() for a user innobase/buf/buf0flu.c: Add diagnostics to track why ut_a(block->state == BUF_BLOCK_FILE_PAGE) failed in buf_flush_ready_for_replace() for a user --- innobase/buf/buf0flu.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'innobase') diff --git a/innobase/buf/buf0flu.c b/innobase/buf/buf0flu.c index 964c396dd08..4df0e9962fb 100644 --- a/innobase/buf/buf0flu.c +++ b/innobase/buf/buf0flu.c @@ -115,7 +115,15 @@ buf_flush_ready_for_replace( #ifdef UNIV_SYNC_DEBUG ut_ad(mutex_own(&(buf_pool->mutex))); #endif /* UNIV_SYNC_DEBUG */ - ut_a(block->state == BUF_BLOCK_FILE_PAGE); + if (block->state != BUF_BLOCK_FILE_PAGE) { + ut_print_timestamp(stderr); + fprintf(stderr, +" InnoDB: Error: buffer block state %lu in the LRU list!\n", + (ulong)block->state); + ut_print_buf(stderr, (byte*)block, sizeof(buf_block_t)); + + return(FALSE); + } if ((ut_dulint_cmp(block->oldest_modification, ut_dulint_zero) > 0) || (block->buf_fix_count != 0) -- cgit v1.2.1