diff options
author | heikki@hundin.mysql.fi <> | 2003-01-13 15:52:39 +0200 |
---|---|---|
committer | heikki@hundin.mysql.fi <> | 2003-01-13 15:52:39 +0200 |
commit | 7424bf2ea97b958a392a1e337c3943fe33991733 (patch) | |
tree | 86b36cbd88f1b66a7c790eb9c632247d03023c72 /innobase/include | |
parent | 40689f64e78efc0e092b00bc1a1cd3d8f6a6b3c1 (diff) | |
download | mariadb-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.h | 9 | ||||
-rw-r--r-- | innobase/include/btr0cur.h | 8 |
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 */ |