summaryrefslogtreecommitdiff
path: root/storage/myisam
diff options
context:
space:
mode:
authorSergey Vojtovich <svoj@sun.com>2010-02-12 16:37:05 +0400
committerSergey Vojtovich <svoj@sun.com>2010-02-12 16:37:05 +0400
commite3eafe84f50c23e054525473ca0d152e9ecc7f79 (patch)
tree5612da1c8d30afbebb360cb5ae329bf5db8be293 /storage/myisam
parent1805fcdcfba5298662a2cf9668c8e0e5778a29b9 (diff)
parent62933c50df1dd97940f4b46c1376ba80e6a8368c (diff)
downloadmariadb-git-e3eafe84f50c23e054525473ca0d152e9ecc7f79.tar.gz
Merge fix for BUG49628 to mysql-5.1-bugteam.
Diffstat (limited to 'storage/myisam')
-rw-r--r--storage/myisam/mi_dynrec.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/storage/myisam/mi_dynrec.c b/storage/myisam/mi_dynrec.c
index 696b9ff93df..6518d874f4f 100644
--- a/storage/myisam/mi_dynrec.c
+++ b/storage/myisam/mi_dynrec.c
@@ -933,8 +933,16 @@ static int update_dynamic_record(MI_INFO *info, my_off_t filepos, uchar *record,
}
if (block_info.next_filepos != HA_OFFSET_ERROR)
+ {
+ /*
+ delete_dynamic_record() may change data file position.
+ IO cache must be notified as it may still have cached
+ data, which has to be flushed later.
+ */
+ info->rec_cache.seek_not_done= 1;
if (delete_dynamic_record(info,block_info.next_filepos,1))
goto err;
+ }
DBUG_RETURN(0);
err:
DBUG_RETURN(1);