Commit 9e28fa23 authored by Michael Widenius's avatar Michael Widenius

Merge

parents 3411e31d 907f246c
...@@ -13,8 +13,7 @@ a ...@@ -13,8 +13,7 @@ a
Warnings: Warnings:
Error 1194 t1' is marked as crashed and should be repaired Error 1194 t1' is marked as crashed and should be repaired
flush table t1; flush table t1;
Status: changed,sorted index pages,zerofilled,movable Status: changed,sorted index pages,zerofilled
create_rename_lsn has magic value
insert into t1 values(2); insert into t1 values(2);
flush table t1; flush table t1;
create_rename_lsn has non-magic value create_rename_lsn has non-magic value
......
...@@ -1425,8 +1425,12 @@ int ha_maria::zerofill(THD * thd, HA_CHECK_OPT *check_opt) ...@@ -1425,8 +1425,12 @@ int ha_maria::zerofill(THD * thd, HA_CHECK_OPT *check_opt)
if (!error) if (!error)
{ {
TrID create_trid= trnman_get_min_safe_trid();
pthread_mutex_lock(&share->intern_lock); pthread_mutex_lock(&share->intern_lock);
share->state.changed|= STATE_NOT_MOVABLE;
maria_update_state_info(&param, file, UPDATE_TIME | UPDATE_OPEN_COUNT); maria_update_state_info(&param, file, UPDATE_TIME | UPDATE_OPEN_COUNT);
_ma_update_state_lsns_sub(share, LSN_IMPOSSIBLE, create_trid,
TRUE, TRUE);
pthread_mutex_unlock(&share->intern_lock); pthread_mutex_unlock(&share->intern_lock);
} }
return error; return error;
......
...@@ -247,6 +247,7 @@ my_bool _ma_ck_real_delete(register MARIA_HA *info, MARIA_KEY *key, ...@@ -247,6 +247,7 @@ my_bool _ma_ck_real_delete(register MARIA_HA *info, MARIA_KEY *key,
if (page.size <= page.node + share->keypage_header + 1) if (page.size <= page.node + share->keypage_header + 1)
{ {
DBUG_ASSERT(page.size == page.node + share->keypage_header);
if (page.node) if (page.node)
*root= _ma_kpos(page.node, root_buff +share->keypage_header + *root= _ma_kpos(page.node, root_buff +share->keypage_header +
page.node); page.node);
......
...@@ -398,7 +398,7 @@ int _ma_mark_file_changed(register MARIA_SHARE *share) ...@@ -398,7 +398,7 @@ int _ma_mark_file_changed(register MARIA_SHARE *share)
/* /*
For transactional tables, the table is marked changed when the first page For transactional tables, the table is marked changed when the first page
is written. Here we just mark the state to be updated so that caller is written. Here we just mark the state to be updated so that caller
can do 'anaylze table' and find that is has changed before any pages can do 'analyze table' and find that is has changed before any pages
are written. are written.
*/ */
if (! test_all_bits(share->state.changed, if (! test_all_bits(share->state.changed,
......
...@@ -748,6 +748,11 @@ MARIA_HA *maria_open(const char *name, int mode, uint open_flags) ...@@ -748,6 +748,11 @@ MARIA_HA *maria_open(const char *name, int mode, uint open_flags)
HA_ERR_CRASHED_ON_REPAIR : HA_ERR_CRASHED_ON_USAGE); HA_ERR_CRASHED_ON_REPAIR : HA_ERR_CRASHED_ON_USAGE);
goto err; goto err;
} }
else
{
/* create_rename_lsn != LSN_NEEDS_NEW_STATE_LSNS */
share->state.changed|= STATE_NOT_MOVABLE;
}
} }
else else
share->page_type= PAGECACHE_PLAIN_PAGE; share->page_type= PAGECACHE_PLAIN_PAGE;
......
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