mariadb/storage/innodb_plugin/btr
Marko Mäkelä 7271bcb4ec Bug#54358: READ UNCOMMITTED access failure of off-page DYNAMIC or COMPRESSED
columns

When the server crashes after a record stub has been inserted and
before all its off-page columns have been written, the record will
contain incomplete off-page columns after crash recovery. Such records
may only be accessed at the READ UNCOMMITTED isolation level or when
rolling back a recovered transaction in recv_recovery_rollback_active().
Skip these records at the READ UNCOMMITTED isolation level.

TODO: Add assertions for checking the above assumptions hold when an
incomplete BLOB is encountered.

btr_rec_copy_externally_stored_field(): Return NULL if the field is
incomplete.

row_prebuilt_t::templ_contains_blob: Clarify what "BLOB" means in this
context. Hint: MySQL BLOBs are not the same as InnoDB BLOBs.

row_sel_store_mysql_rec(): Return FALSE if not all columns could be
retrieved. Previously this function always returned TRUE.  Assert that
the record is not delete-marked.

row_sel_push_cache_row_for_mysql(): Return FALSE if not all columns
could be retrieved.

row_search_for_mysql(): Skip records containing incomplete off-page
columns. Assert that the transaction isolation level is READ
UNCOMMITTED.

rb://380 approved by Jimmy Yang
2010-06-29 15:55:18 +03:00
..
btr0btr.c btr_page_split_and_insert(): Add an assertion 2010-05-11 13:49:10 +03:00
btr0cur.c Bug#54358: READ UNCOMMITTED access failure of off-page DYNAMIC or COMPRESSED 2010-06-29 15:55:18 +03:00
btr0pcur.c Applying InnoDB snapshot 2010-04-01 16:27:13 +04:00
btr0sea.c Merge a change from mysql-trunk-innodb: 2010-05-31 19:35:40 +03:00