Commit 4de021dc authored by Michael Widenius's avatar Michael Widenius

Automatic merge

parents 2b59944d 54b25f06
...@@ -193,23 +193,29 @@ int maria_close(register MARIA_HA *info) ...@@ -193,23 +193,29 @@ int maria_close(register MARIA_HA *info)
else else
share_can_be_freed= TRUE; share_can_be_freed= TRUE;
if (share->state_history && share->state_history->trid) if (share->state_history)
{ {
MARIA_STATE_HISTORY_CLOSED *history; if (share->state_history->trid) /* If not visible for all */
DBUG_PRINT("info", ("Storing state history"));
/*
Here we ignore the unlikely case that we don't have memory to
store the state. In the worst case what happens is that any transaction
that tries to access this table will get a wrong status information.
*/
if ((history= (MARIA_STATE_HISTORY_CLOSED *)
my_malloc(sizeof(*history), MYF(MY_WME))))
{ {
history->create_rename_lsn= share->state.create_rename_lsn; MARIA_STATE_HISTORY_CLOSED *history;
history->state_history= share->state_history; DBUG_PRINT("info", ("Storing state history"));
if (my_hash_insert(&maria_stored_state, (uchar*) history)) /*
my_free(history); Here we ignore the unlikely case that we don't have memory
to store the state. In the worst case what happens is that
any transaction that tries to access this table will get a
wrong status information.
*/
if ((history= (MARIA_STATE_HISTORY_CLOSED *)
my_malloc(sizeof(*history), MYF(MY_WME))))
{
history->create_rename_lsn= share->state.create_rename_lsn;
history->state_history= share->state_history;
if (my_hash_insert(&maria_stored_state, (uchar*) history))
my_free(history);
}
} }
else
my_free(share->state_history);
/* Marker for concurrent checkpoint */ /* Marker for concurrent checkpoint */
share->state_history= 0; share->state_history= 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment