summaryrefslogtreecommitdiff
path: root/innobase/include/page0page.ic
diff options
context:
space:
mode:
authorunknown <marko@hundin.mysql.fi>2005-03-01 19:42:59 +0200
committerunknown <marko@hundin.mysql.fi>2005-03-01 19:42:59 +0200
commit39cf45fd54247ca02554a2ecfedcbfbd996b9060 (patch)
tree87a9487085f2946b718777b52b8cfc500bea903b /innobase/include/page0page.ic
parent91fa4862c07354a7ac65055758ca21cf21296245 (diff)
downloadmariadb-git-39cf45fd54247ca02554a2ecfedcbfbd996b9060.tar.gz
After review fixes. Fix bugs in TRUNCATE.
innobase/dict/dict0crea.c: dict_truncate_index_tree(): Commit the mtr after deleting the index tree. Add diagnostics for error cases. Let the caller update SYS_INDEXES.PAGE_NO to the new root page number. Return the new root page number, or FIL_NULL on error. innobase/include/dict0crea.h: dict_truncate_index_tree(): Commit the mtr after deleting the index tree. Add diagnostics for error cases. Let the caller update SYS_INDEXES.PAGE_NO to the new root page number. Return the new root page number, or FIL_NULL on error. innobase/include/page0page.ic: page_mem_free(): Disable the memset() call, to make it possible to recover some data if someone accidentally deletes a large number of records from a table. innobase/log/log0recv.c: Do not disable InnoDB Hot Backup specific code in MySQL builds. innobase/row/row0mysql.c: row_truncate_table_for_mysql(): Remove an infinite loop in case a SYS_INDEXES record has been deleted. Avoid deadlocks by committing and restarting the mini-transaction. sql/ha_innodb.cc: ha_innobase::delete_all_rows(): set trx->active_trans = 1
Diffstat (limited to 'innobase/include/page0page.ic')
-rw-r--r--innobase/include/page0page.ic3
1 files changed, 3 insertions, 0 deletions
diff --git a/innobase/include/page0page.ic b/innobase/include/page0page.ic
index e3e93e9f756..ac6b0263a7d 100644
--- a/innobase/include/page0page.ic
+++ b/innobase/include/page0page.ic
@@ -788,12 +788,15 @@ page_mem_free(
page_rec_set_next(rec, free);
page_header_set_ptr(page, PAGE_FREE, rec);
+#if 0 /* It's better not to destroy the user's data. */
+
/* Clear the data bytes of the deleted record in order to improve
the compression ratio of the page and to make it easier to read
page dumps in corruption reports. The extra bytes of the record
cannot be cleared, because page_mem_alloc() needs them in order
to determine the size of the deleted record. */
memset(rec, 0, rec_offs_data_size(offsets));
+#endif
garbage = page_header_get_field(page, PAGE_GARBAGE);