diff options
author | unknown <kevin.lewis@oracle.com> | 2010-11-02 10:04:16 -0500 |
---|---|---|
committer | unknown <kevin.lewis@oracle.com> | 2010-11-02 10:04:16 -0500 |
commit | f45f5902cef9a7b4b83acf1868fd78c187972bbd (patch) | |
tree | 102d5e787a07171466969a3712950e7d0e0a2f8d /storage | |
parent | a63c14e9a6b4d2d2cccf302cc0e6e03f97ef0d02 (diff) | |
parent | 9b9ac02e6aa54437d3e72c40b902a2efd520eb6e (diff) | |
download | mariadb-git-f45f5902cef9a7b4b83acf1868fd78c187972bbd.tar.gz |
Merge
Diffstat (limited to 'storage')
-rw-r--r-- | storage/innobase/row/row0sel.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/storage/innobase/row/row0sel.c b/storage/innobase/row/row0sel.c index 491db8849e3..14deff2d465 100644 --- a/storage/innobase/row/row0sel.c +++ b/storage/innobase/row/row0sel.c @@ -104,6 +104,18 @@ row_sel_sec_rec_is_for_blob( ulint len; byte buf[DICT_MAX_INDEX_COL_LEN]; + ut_a(clust_len >= BTR_EXTERN_FIELD_REF_SIZE); + + if (UNIV_UNLIKELY + (!memcmp(clust_field + clust_len - BTR_EXTERN_FIELD_REF_SIZE, + field_ref_zero, BTR_EXTERN_FIELD_REF_SIZE))) { + /* The externally stored field was not written yet. + This record should only be seen by + recv_recovery_rollback_active() or any + TRX_ISO_READ_UNCOMMITTED transactions. */ + return(FALSE); + } + len = btr_copy_externally_stored_field_prefix(buf, sizeof buf, zip_size, clust_field, clust_len); |