Merge with 5.1 to get in critical bug fix that caused Aria tests to fail
This commit is contained in:
commit
f458432f68
@ -68,6 +68,8 @@ int my_sync(File fd, myf my_flags)
|
|||||||
res= fdatasync(fd);
|
res= fdatasync(fd);
|
||||||
#elif defined(HAVE_FSYNC)
|
#elif defined(HAVE_FSYNC)
|
||||||
res= fsync(fd);
|
res= fsync(fd);
|
||||||
|
if (res == -1 and errno == ENOLCK)
|
||||||
|
res= 0; /* Result Bug in Old FreeBSD */
|
||||||
#elif defined(__WIN__)
|
#elif defined(__WIN__)
|
||||||
res= _commit(fd);
|
res= _commit(fd);
|
||||||
#else
|
#else
|
||||||
|
@ -1914,7 +1914,6 @@ my_bool _ma_log_change(MARIA_PAGE *ma_page, const uchar *key_pos, uint length,
|
|||||||
uchar log_data[FILEID_STORE_SIZE + PAGE_STORE_SIZE + 2 + 6 + 7], *log_pos;
|
uchar log_data[FILEID_STORE_SIZE + PAGE_STORE_SIZE + 2 + 6 + 7], *log_pos;
|
||||||
LEX_CUSTRING log_array[TRANSLOG_INTERNAL_PARTS + 3];
|
LEX_CUSTRING log_array[TRANSLOG_INTERNAL_PARTS + 3];
|
||||||
uint offset= (uint) (key_pos - ma_page->buff), translog_parts;
|
uint offset= (uint) (key_pos - ma_page->buff), translog_parts;
|
||||||
uint extra_length= 0;
|
|
||||||
my_off_t page;
|
my_off_t page;
|
||||||
MARIA_HA *info= ma_page->info;
|
MARIA_HA *info= ma_page->info;
|
||||||
DBUG_ENTER("_ma_log_change");
|
DBUG_ENTER("_ma_log_change");
|
||||||
@ -1956,15 +1955,14 @@ my_bool _ma_log_change(MARIA_PAGE *ma_page, const uchar *key_pos, uint length,
|
|||||||
int4store(log_pos+3, crc);
|
int4store(log_pos+3, crc);
|
||||||
log_array[TRANSLOG_INTERNAL_PARTS + translog_parts].str= log_pos;
|
log_array[TRANSLOG_INTERNAL_PARTS + translog_parts].str= log_pos;
|
||||||
log_array[TRANSLOG_INTERNAL_PARTS + translog_parts].length= 7;
|
log_array[TRANSLOG_INTERNAL_PARTS + translog_parts].length= 7;
|
||||||
extra_length+= 7;
|
log_pos+= 7;
|
||||||
translog_parts++;
|
translog_parts++;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (translog_write_record(&lsn, LOGREC_REDO_INDEX,
|
if (translog_write_record(&lsn, LOGREC_REDO_INDEX,
|
||||||
info->trn, info,
|
info->trn, info,
|
||||||
(translog_size_t) (sizeof(log_data) - 7 + length +
|
(translog_size_t) (log_pos - log_data) + length,
|
||||||
extra_length),
|
|
||||||
TRANSLOG_INTERNAL_PARTS + translog_parts,
|
TRANSLOG_INTERNAL_PARTS + translog_parts,
|
||||||
log_array, log_data, NULL))
|
log_array, log_data, NULL))
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user