diff options
author | Sergey Vojtovich <svoj@sun.com> | 2010-02-12 16:37:05 +0400 |
---|---|---|
committer | Sergey Vojtovich <svoj@sun.com> | 2010-02-12 16:37:05 +0400 |
commit | e3eafe84f50c23e054525473ca0d152e9ecc7f79 (patch) | |
tree | 5612da1c8d30afbebb360cb5ae329bf5db8be293 /storage/myisam | |
parent | 1805fcdcfba5298662a2cf9668c8e0e5778a29b9 (diff) | |
parent | 62933c50df1dd97940f4b46c1376ba80e6a8368c (diff) | |
download | mariadb-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.c | 8 |
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); |