summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorunknown <kevin.lewis@oracle.com>2010-11-02 10:04:16 -0500
committerunknown <kevin.lewis@oracle.com>2010-11-02 10:04:16 -0500
commitf45f5902cef9a7b4b83acf1868fd78c187972bbd (patch)
tree102d5e787a07171466969a3712950e7d0e0a2f8d /storage
parenta63c14e9a6b4d2d2cccf302cc0e6e03f97ef0d02 (diff)
parent9b9ac02e6aa54437d3e72c40b902a2efd520eb6e (diff)
downloadmariadb-git-f45f5902cef9a7b4b83acf1868fd78c187972bbd.tar.gz
Merge
Diffstat (limited to 'storage')
-rw-r--r--storage/innobase/row/row0sel.c12
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);