summaryrefslogtreecommitdiff
path: root/innobase/include
diff options
context:
space:
mode:
authorheikki@hundin.mysql.fi <>2003-01-13 15:52:39 +0200
committerheikki@hundin.mysql.fi <>2003-01-13 15:52:39 +0200
commit7424bf2ea97b958a392a1e337c3943fe33991733 (patch)
tree86b36cbd88f1b66a7c790eb9c632247d03023c72 /innobase/include
parent40689f64e78efc0e092b00bc1a1cd3d8f6a6b3c1 (diff)
downloadmariadb-git-7424bf2ea97b958a392a1e337c3943fe33991733.tar.gz
btr0cur.h, btr0btr.h, btr0btr.c, btr0cur.c, row0purge.c:
Fix a hang associated with an index tree of height 1 and purging of BLOB fields from it
Diffstat (limited to 'innobase/include')
-rw-r--r--innobase/include/btr0btr.h9
-rw-r--r--innobase/include/btr0cur.h8
2 files changed, 16 insertions, 1 deletions
diff --git a/innobase/include/btr0btr.h b/innobase/include/btr0btr.h
index 3cd44ab5175..8606fcd2a5c 100644
--- a/innobase/include/btr0btr.h
+++ b/innobase/include/btr0btr.h
@@ -56,6 +56,15 @@ insert buffer to speed up inserts */
#define BTR_IGNORE_SEC_UNIQUE 2048
/******************************************************************
+Gets the root node of a tree and x-latches it. */
+
+page_t*
+btr_root_get(
+/*=========*/
+ /* out: root page, x-latched */
+ dict_tree_t* tree, /* in: index tree */
+ mtr_t* mtr); /* in: mtr */
+/******************************************************************
Gets a buffer page and declares its latching order level. */
UNIV_INLINE
page_t*
diff --git a/innobase/include/btr0cur.h b/innobase/include/btr0cur.h
index 7039ceba245..1d17c0e952d 100644
--- a/innobase/include/btr0cur.h
+++ b/innobase/include/btr0cur.h
@@ -507,7 +507,13 @@ void
btr_free_externally_stored_field(
/*=============================*/
dict_index_t* index, /* in: index of the data, the index
- tree MUST be X-latched */
+ tree MUST be X-latched; if the tree
+ height is 1, then also the root page
+ must be X-latched! (this is relevant
+ in the case this function is called
+ from purge where 'data' is located on
+ an undo log page, not an index
+ page) */
byte* data, /* in: internally stored data
+ reference to the externally
stored part */