summaryrefslogtreecommitdiff
path: root/innobase/trx/trx0rec.c
diff options
context:
space:
mode:
authorunknown <marko@hundin.mysql.fi>2004-04-06 16:14:43 +0300
committerunknown <marko@hundin.mysql.fi>2004-04-06 16:14:43 +0300
commit08ebb9248f76820feacd3e56364d255be8d5b15e (patch)
treef7bc427aa7ce4a54802d6e8931ca1dfe64c7bfa8 /innobase/trx/trx0rec.c
parent4f08cfab0b487dcb338e3c41de2e531044b6c881 (diff)
downloadmariadb-git-08ebb9248f76820feacd3e56364d255be8d5b15e.tar.gz
InnoDB: send diagnostic output to stderr or files
instead of stdout or fixed-size memory buffers innobase/btr/btr0btr.c: Output to stderr; quote table and index names innobase/btr/btr0cur.c: Output to stderr; quote table and index names innobase/btr/btr0sea.c: Output to stderr innobase/buf/buf0buf.c: Output to stderr; quote table and index names innobase/buf/buf0flu.c: Output to stderr innobase/buf/buf0lru.c: Output to stderr innobase/buf/buf0rea.c: Output to stderr innobase/data/data0data.c: Remove dtuple_validate() unless #ifdef UNIV_DEBUG Remove unnecessary sprintf() calls Output to stderr innobase/data/data0type.c: Output to stderr innobase/dict/dict0boot.c: Remove dummy call to printf() innobase/dict/dict0crea.c: Output diagnostic information to stream, not to memory innobase/dict/dict0dict.c: Output diagnostics to a file, not to a memory buffer innobase/dict/dict0load.c: Output to stderr; quote table and index names innobase/eval/eval0eval.c: Output to stderr innobase/fil/fil0fil.c: Output to stderr innobase/fsp/fsp0fsp.c: Output to stderr Avoid sprintf() innobase/fut/fut0lst.c: Output to stderr innobase/ha/ha0ha.c: Output to stream, not to memory buffer innobase/ibuf/ibuf0ibuf.c: Output to stderr Avoid sprintf() innobase/include/buf0buf.h: Output to stream, not to memory buffer innobase/include/buf0buf.ic: Use %p for displaying pointers innobase/include/data0data.h: Remove dtuple_sprintf() innobase/include/dict0dict.h: Output to stream, not to memory buffer innobase/include/ha0ha.h: Output to stream, not to memory buffer innobase/include/ibuf0ibuf.h: Output to stream, not to memory buffer innobase/include/lock0lock.h: Output to stream, not to memory buffer innobase/include/log0log.h: Output to stream, not to memory buffer innobase/include/mtr0log.ic: Output to stderr Display pointers with %p innobase/include/os0file.h: Output to stream, not to memory buffer innobase/include/rem0rec.h: Remove rec_sprintf() innobase/include/rem0rec.ic: Output to stderr innobase/include/row0sel.ic: Output to stderr innobase/include/row0upd.ic: Quote table and index names innobase/include/srv0srv.h: Remove srv_sprintf_innodb_monitor() innobase/include/sync0arr.h: Output to stream, not to memory buffer innobase/include/sync0sync.h: Output to stream, not to memory buffer innobase/include/trx0sys.h: Output to stderr innobase/include/trx0trx.h: Output to stream, not to memory buffer innobase/include/ut0ut.h: Remove ut_sprintf_buf() Add ut_print_name(), ut_print_namel() and ut_copy_file() innobase/lock/lock0lock.c: Output to stream, not to memory buffer innobase/log/log0log.c: Output to stderr innobase/log/log0recv.c: Output to stderr innobase/mem/mem0dbg.c: Output to stderr innobase/mtr/mtr0log.c: Display pointers with %p innobase/mtr/mtr0mtr.c: Output to stderr innobase/os/os0file.c: Output to stream, not to memory buffer innobase/os/os0proc.c: Output to stderr innobase/os/os0thread.c: Output to stderr innobase/page/page0cur.c: Output to stderr innobase/page/page0page.c: Avoid sprintf() Output to stderr instead of stdout innobase/pars/pars0opt.c: Output to stderr instead of stdout innobase/rem/rem0rec.c: Remove rec_sprintf() Output to stderr instead of stdout innobase/row/row0ins.c: Output diagnostics to stream instead of memory buffer innobase/row/row0mysql.c: Output to stderr instead of stdout Quote table and index names innobase/row/row0purge.c: Output to stderr instead of stdout innobase/row/row0row.c: Quote table and index names innobase/row/row0sel.c: Output to stderr instead of stdout Quote table and index names innobase/row/row0umod.c: Avoid sprintf() Quote table and index names innobase/row/row0undo.c: Output to stderr instead of stdout innobase/row/row0upd.c: Avoid sprintf() innobase/srv/srv0srv.c: Output to stderr instead of stdout innobase/srv/srv0start.c: Handle srv_monitor_file Make some global variables static innobase/sync/sync0arr.c: Output to stderr instead of stdout Output to stream instead of memory buffer innobase/sync/sync0rw.c: Output to stderr instead of stdout innobase/sync/sync0sync.c: Output to stderr instead of stdout Output to stream instead of memory buffer innobase/trx/trx0purge.c: Output to stderr instead of stdout innobase/trx/trx0rec.c: Quote index and table names Avoid sprintf() innobase/trx/trx0roll.c: Quote identifier names Output to stderr instead of stdout innobase/trx/trx0sys.c: Output to stderr instead of stdout innobase/trx/trx0trx.c: Output to stream instead of memory buffer innobase/trx/trx0undo.c: Output to stderr instead of stdout innobase/ut/ut0ut.c: Declare mysql_get_identifier_quote_char() Remove ut_sprintf_buf() Add ut_print_name() and ut_print_namel() Add ut_copy_file() sql/ha_innodb.cc: innobase_mysql_print_thd(): output to stream, not to memory buffer Add mysql_get_identifier_quote_char() Remove unused function innobase_print_error() Display pointers with %p Buffer InnoDB output via files, not via statically allocated memory
Diffstat (limited to 'innobase/trx/trx0rec.c')
-rw-r--r--innobase/trx/trx0rec.c115
1 files changed, 54 insertions, 61 deletions
diff --git a/innobase/trx/trx0rec.c b/innobase/trx/trx0rec.c
index 9d944e16a1e..4926c776ae9 100644
--- a/innobase/trx/trx0rec.c
+++ b/innobase/trx/trx0rec.c
@@ -823,17 +823,18 @@ trx_undo_update_rec_get_update(
if (field_no >= dict_index_get_n_fields(index)) {
fprintf(stderr,
- "InnoDB: Error: trying to access update undo rec field %lu in table %s\n"
- "InnoDB: index %s, but index has only %lu fields\n",
- field_no, index->table_name, index->name,
- dict_index_get_n_fields(index));
- fprintf(stderr,
- "InnoDB: Send a detailed bug report to mysql@lists.mysql.com");
-
- fprintf(stderr,
- "InnoDB: Run also CHECK TABLE on table %s\n", index->table_name);
- fprintf(stderr,
- "InnoDB: n_fields = %lu, i = %lu, ptr %lx\n", n_fields, i, (ulint)ptr);
+ "InnoDB: Error: trying to access"
+ " update undo rec field %lu in ", field_no);
+ dict_index_name_print(stderr, index);
+ fprintf(stderr, "\n"
+ "InnoDB: but index has only %lu fields\n"
+ "InnoDB: Send a detailed bug report to mysql@lists.mysql.com\n"
+ "InnoDB: Run also CHECK TABLE ",
+ dict_index_get_n_fields(index));
+ ut_print_name(stderr, index->table_name);
+ fprintf(stderr, "\n"
+ "InnoDB: n_fields = %lu, i = %lu, ptr %p\n",
+ n_fields, i, ptr);
return(NULL);
}
@@ -1258,8 +1259,6 @@ trx_undo_prev_version_build(
byte* buf;
ulint err;
ulint i;
- char err_buf[1000];
-
#ifdef UNIV_SYNC_DEBUG
ut_ad(rw_lock_own(&(purge_sys->latch), RW_LOCK_SHARED));
#endif /* UNIV_SYNC_DEBUG */
@@ -1268,19 +1267,18 @@ trx_undo_prev_version_build(
mtr_memo_contains(index_mtr, buf_block_align(index_rec),
MTR_MEMO_PAGE_X_FIX));
if (!(index->type & DICT_CLUSTERED)) {
- fprintf(stderr,
- "InnoDB: Error: trying to access update undo rec for table %s\n"
- "InnoDB: index %s which is not a clustered index\n",
- index->table_name, index->name);
- fprintf(stderr,
- "InnoDB: Send a detailed bug report to mysql@lists.mysql.com");
-
- rec_sprintf(err_buf, 900, index_rec);
- fprintf(stderr, "InnoDB: index record %s\n", err_buf);
-
- rec_sprintf(err_buf, 900, rec);
- fprintf(stderr, "InnoDB: record version %s\n", err_buf);
-
+ fputs("InnoDB: Error: trying to access"
+ " update undo rec for non-clustered ", stderr);
+ dict_index_name_print(stderr, index);
+ fputs("\n"
+ "InnoDB: Send a detailed bug report to"
+ " mysql@lists.mysql.com\n"
+ "InnoDB: index record ", stderr);
+ rec_print(stderr, index_rec);
+ fputs("\n"
+ "InnoDB: record version ", stderr);
+ rec_print(stderr, rec);
+ putc('\n', stderr);
return(DB_ERROR);
}
@@ -1318,55 +1316,50 @@ trx_undo_prev_version_build(
if (ut_dulint_cmp(table_id, index->table->id) != 0) {
ptr = NULL;
- fprintf(stderr,
- "InnoDB: Error: trying to access update undo rec for table %s\n"
- "InnoDB: but the table id in the undo record is wrong\n",
- index->table_name);
- fprintf(stderr,
- "InnoDB: Send a detailed bug report to mysql@lists.mysql.com\n");
-
- fprintf(stderr,
- "InnoDB: Run also CHECK TABLE on table %s\n", index->table_name);
+ fputs("InnoDB: Error: trying to access"
+ " update undo rec for table ", stderr);
+ ut_print_name(stderr, index->table_name);
+ fputs("\n"
+ "InnoDB: but the table id in the"
+ " undo record is wrong\n"
+ "InnoDB: Send a detailed bug report to "
+ "mysql@lists.mysql.com\n"
+ "InnoDB: Run also CHECK TABLE ", stderr);
+ ut_print_name(stderr, index->table_name);
+ putc('\n', stderr);
}
if (ptr == NULL) {
/* The record was corrupted, return an error; these printfs
should catch an elusive bug in row_vers_old_has_index_entry */
- fprintf(stderr,
- "InnoDB: Table name %s, index name %s, n_uniq %lu\n",
- index->table_name, index->name,
- dict_index_get_n_unique(index));
-
- fprintf(stderr,
- "InnoDB: undo rec address %lx, type %lu cmpl_info %lu\n",
- (ulint)undo_rec, type, cmpl_info);
- fprintf(stderr,
- "InnoDB: undo rec table id %lu %lu, index table id %lu %lu\n",
+ fputs("InnoDB: ", stderr);
+ dict_index_name_print(stderr, index);
+ fprintf(stderr, ", n_uniq %lu\n"
+ "InnoDB: undo rec address %p, type %lu cmpl_info %lu\n"
+ "InnoDB: undo rec table id %lu %lu, index table id %lu %lu\n"
+ "InnoDB: dump of 150 bytes in undo rec: ",
+ dict_index_get_n_unique(index),
+ undo_rec, type, cmpl_info,
ut_dulint_get_high(table_id),
ut_dulint_get_low(table_id),
ut_dulint_get_high(index->table->id),
ut_dulint_get_low(index->table->id));
- ut_sprintf_buf(err_buf, undo_rec, 150);
-
- fprintf(stderr, "InnoDB: dump of 150 bytes in undo rec: %s\n",
- err_buf);
- rec_sprintf(err_buf, 900, index_rec);
- fprintf(stderr, "InnoDB: index record %s\n", err_buf);
-
- rec_sprintf(err_buf, 900, rec);
- fprintf(stderr, "InnoDB: record version %s\n", err_buf);
-
- fprintf(stderr,
- "InnoDB: Record trx id %lu %lu, update rec trx id %lu %lu\n",
+ ut_print_buf(stderr, undo_rec, 150);
+ fputs("\n"
+ "InnoDB: index record ", stderr);
+ rec_print(stderr, index_rec);
+ fputs("\n"
+ "InnoDB: record version ", stderr);
+ rec_print(stderr, rec);
+ fprintf(stderr, "\n"
+ "InnoDB: Record trx id %lu %lu, update rec trx id %lu %lu\n"
+ "InnoDB: Roll ptr in rec %lu %lu, in update rec %lu %lu\n",
ut_dulint_get_high(rec_trx_id),
ut_dulint_get_low(rec_trx_id),
ut_dulint_get_high(trx_id),
- ut_dulint_get_low(trx_id));
-
- fprintf(stderr,
- "InnoDB: Roll ptr in rec %lu %lu, in update rec %lu %lu\n",
+ ut_dulint_get_low(trx_id),
ut_dulint_get_high(old_roll_ptr),
ut_dulint_get_low(old_roll_ptr),
ut_dulint_get_high(roll_ptr),