mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
Merge mysql-5.1 to mysql-5.5.
This commit is contained in:
commit
60e1a532e5
2 changed files with 20 additions and 13 deletions
|
@ -4596,6 +4596,10 @@ next_zip_page:
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
DBUG_EXECUTE_IF("btr_store_big_rec_extern",
|
||||
error = DB_OUT_OF_FILE_SPACE;
|
||||
goto func_exit;);
|
||||
}
|
||||
|
||||
func_exit:
|
||||
|
@ -4628,9 +4632,11 @@ func_exit:
|
|||
|
||||
field_ref = btr_rec_get_field_ref(rec, offsets, i);
|
||||
|
||||
/* The pointer must not be zero. */
|
||||
/* The pointer must not be zero if the operation
|
||||
succeeded. */
|
||||
ut_a(0 != memcmp(field_ref, field_ref_zero,
|
||||
BTR_EXTERN_FIELD_REF_SIZE));
|
||||
BTR_EXTERN_FIELD_REF_SIZE)
|
||||
|| error != DB_SUCCESS);
|
||||
/* The column must not be disowned by this record. */
|
||||
ut_a(!(field_ref[BTR_EXTERN_LEN] & BTR_EXTERN_OWNER_FLAG));
|
||||
}
|
||||
|
@ -4726,10 +4732,10 @@ btr_free_externally_stored_field(
|
|||
|
||||
if (UNIV_UNLIKELY(!memcmp(field_ref, field_ref_zero,
|
||||
BTR_EXTERN_FIELD_REF_SIZE))) {
|
||||
/* In the rollback of uncommitted transactions, we may
|
||||
encounter a clustered index record whose BLOBs have
|
||||
not been written. There is nothing to free then. */
|
||||
ut_a(rb_ctx == RB_RECOVERY || rb_ctx == RB_RECOVERY_PURGE_REC);
|
||||
/* In the rollback, we may encounter a clustered index
|
||||
record with some unwritten off-page columns. There is
|
||||
nothing to free then. */
|
||||
ut_a(rb_ctx != RB_NONE);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -340,13 +340,14 @@ row_undo_ins(
|
|||
/* The database must have crashed after
|
||||
inserting a clustered index record but before
|
||||
writing all the externally stored columns of
|
||||
that record. Because secondary index entries
|
||||
are inserted after the clustered index record,
|
||||
we may assume that the secondary index record
|
||||
does not exist. However, this situation may
|
||||
only occur during the rollback of incomplete
|
||||
transactions. */
|
||||
ut_a(trx_is_recv(node->trx));
|
||||
that record, or a statement is being rolled
|
||||
back because an error occurred while storing
|
||||
off-page columns.
|
||||
|
||||
Because secondary index entries are inserted
|
||||
after the clustered index record, we may
|
||||
assume that the secondary index record does
|
||||
not exist. */
|
||||
} else {
|
||||
log_free_check();
|
||||
err = row_undo_ins_remove_sec(node->index, entry);
|
||||
|
|
Loading…
Reference in a new issue