diff options
Diffstat (limited to 'storage/maria/ma_rrnd.c')
-rw-r--r-- | storage/maria/ma_rrnd.c | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/storage/maria/ma_rrnd.c b/storage/maria/ma_rrnd.c index 2f01c0e92c5..33940d5f23f 100644 --- a/storage/maria/ma_rrnd.c +++ b/storage/maria/ma_rrnd.c @@ -21,40 +21,34 @@ #include "maria_def.h" /* - Read a row based on position. - If filepos= HA_OFFSET_ERROR then read next row - Return values - Returns one of following values: - 0 = Ok. - HA_ERR_RECORD_DELETED = Record is deleted. - HA_ERR_END_OF_FILE = EOF. + Read a row based on position. + + RETURN + 0 Ok. + HA_ERR_RECORD_DELETED Record is deleted. + HA_ERR_END_OF_FILE EOF. */ -int maria_rrnd(MARIA_HA *info, byte *buf, register my_off_t filepos) +int maria_rrnd(MARIA_HA *info, byte *buf, MARIA_RECORD_POS filepos) { - my_bool skip_deleted_blocks; DBUG_ENTER("maria_rrnd"); - skip_deleted_blocks=0; - + DBUG_ASSERT(filepos != HA_OFFSET_ERROR); +#ifdef NOT_USED if (filepos == HA_OFFSET_ERROR) { skip_deleted_blocks=1; - if (info->lastpos == HA_OFFSET_ERROR) /* First read ? */ - filepos= info->s->pack.header_length; /* Read first record */ + if (info->cur_row.lastpos == HA_OFFSET_ERROR) /* First read ? */ + filepos= info->s->pack.header_length; /* Read first record */ else - filepos= info->nextpos; + filepos= info->cur_row.nextpos; } +#endif - if (info->once_flags & RRND_PRESERVE_LASTINX) - info->once_flags&= ~RRND_PRESERVE_LASTINX; - else - info->lastinx= -1; /* Can't forward or backward */ /* Init all but update-flag */ info->update&= (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED); - if (info->opt_flag & WRITE_CACHE_USED && flush_io_cache(&info->rec_cache)) DBUG_RETURN(my_errno); - DBUG_RETURN ((*info->s->read_rnd)(info,buf,filepos,skip_deleted_blocks)); + DBUG_RETURN((*info->s->read_record)(info, buf, filepos)); } |