summaryrefslogtreecommitdiff
path: root/myisam/mi_locking.c
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2003-09-05 06:42:55 +0300
committerunknown <monty@mashka.mysql.fi>2003-09-05 06:42:55 +0300
commita91b55ce48ca9e4472eecdaefaa584af890821e4 (patch)
tree5dd76a6d814942ef3e3f103a780cc8adc7877e7d /myisam/mi_locking.c
parent5e9e6eea1d98404826091dc49dd83fd6bae953af (diff)
downloadmariadb-git-a91b55ce48ca9e4472eecdaefaa584af890821e4.tar.gz
Fixed rare bug in MYISAM introduced in 4.0.3 where the index file header was not updated directly after an UPDATE of split dynamic rows.
myisam/mi_locking.c: Added DBUG info myisam/mi_open.c: Added DBUG info myisam/mi_update.c: More comments Fixed rare bug in MYISAM introduced in 4.0.3 where the index file header was not updated directly after an UPDATE of split dynamic rows. mysql-test/r/myisam.result: Added test case for MyISAM UPDATE bug mysql-test/t/myisam.test: Added test case for MyISAM UPDATE bug
Diffstat (limited to 'myisam/mi_locking.c')
-rw-r--r--myisam/mi_locking.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/myisam/mi_locking.c b/myisam/mi_locking.c
index 18daebffa85..a707eb294a9 100644
--- a/myisam/mi_locking.c
+++ b/myisam/mi_locking.c
@@ -76,6 +76,8 @@ int mi_lock_database(MI_INFO *info, int lock_type)
}
if (!count)
{
+ DBUG_PRINT("info",("changed: %u w_locks: %u",
+ (uint) share->changed, share->w_locks));
if (share->changed && !share->w_locks)
{
share->state.process= share->last_process=share->this_process;
@@ -352,6 +354,8 @@ int _mi_writeinfo(register MI_INFO *info, uint operation)
int error,olderror;
MYISAM_SHARE *share=info->s;
DBUG_ENTER("_mi_writeinfo");
+ DBUG_PRINT("info",("operation: %u tot_locks: %u", operation,
+ share->tot_locks));
error=0;
if (share->tot_locks == 0)
@@ -379,9 +383,7 @@ int _mi_writeinfo(register MI_INFO *info, uint operation)
my_errno=olderror;
}
else if (operation)
- {
share->changed= 1; /* Mark keyfile changed */
- }
DBUG_RETURN(error);
} /* _mi_writeinfo */