1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-13 20:03:16 +03:00

branches/zip: Clarify why certain calls of

btr_rec_copy_externally_stored_field() are safe.

row_merge_copy_blobs(): Note that the table is locked during index creation.
Therefore, none of its BLOBs can be freed.

row_sel_fetch_columns(): Note that rec must be protected by a page latch.
Add const qualifier to rec.

row_sel_get_clust_rec(): Note that the clustered index record is protected
by a page latch that was acquired when the persistent cursor was positioned
and that the latch will be freed by mini-transaction commit.

row_sel_try_search_shortcut(): Check the delete-mark flag before fetching
the columns.  Note that the clustered index record is protected
by a page latch that was acquired when the persistent cursor was positioned
and that the latch will be freed by mini-transaction commit.

row_sel(), row_search_for_mysql(): Note that the clustered index record
is protected by a page latch that was acquired when the persistent cursor
was positioned and that the latch will be freed by mini-transaction commit.

row_sel_field_store_in_mysql_format(): Add const qualifier to data.

row_sel_store_mysql_rec(), row_sel_push_cache_row_for_mysql():
Add const qualifier to rec.  Note that rec must be protected by a page latch.
This commit is contained in:
marko
2008-01-11 19:59:47 +00:00
parent d837c2040f
commit aaccf9264f
2 changed files with 67 additions and 25 deletions

View File

@@ -1511,6 +1511,11 @@ row_merge_copy_blobs(
ut_ad(!dfield_is_null(field));
/* The table is locked during index creation.
Therefore, externally stored columns cannot possibly
be freed between the time the BLOB pointers are read
(row_merge_read_clustered_index()) and dereferenced
(below). */
data = btr_rec_copy_externally_stored_field(
mrec, offsets, zip_size, i, &len, heap);