1 | /* Copyright (c) 2000, 2001, 2005-2007 MySQL AB |
2 | Use is subject to license terms |
3 | |
4 | This program is free software; you can redistribute it and/or modify |
5 | it under the terms of the GNU General Public License as published by |
6 | the Free Software Foundation; version 2 of the License. |
7 | |
8 | This program is distributed in the hope that it will be useful, |
9 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
11 | GNU General Public License for more details. |
12 | |
13 | You should have received a copy of the GNU General Public License |
14 | along with this program; if not, write to the Free Software |
15 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ |
16 | |
17 | /* Read through all rows sequntially */ |
18 | |
19 | #include "myisamdef.h" |
20 | |
21 | int mi_scan_init(register MI_INFO *info) |
22 | { |
23 | DBUG_ENTER("mi_scan_init" ); |
24 | info->nextpos=info->s->pack.header_length; /* Read first record */ |
25 | info->lastinx= -1; /* Can't forward or backward */ |
26 | if (info->opt_flag & WRITE_CACHE_USED && flush_io_cache(&info->rec_cache)) |
27 | DBUG_RETURN(my_errno); |
28 | DBUG_RETURN(0); |
29 | } |
30 | |
31 | /* |
32 | Read a row based on position. |
33 | If filepos= HA_OFFSET_ERROR then read next row |
34 | Return values |
35 | Returns one of following values: |
36 | 0 = Ok. |
37 | HA_ERR_END_OF_FILE = EOF. |
38 | */ |
39 | |
40 | int mi_scan(MI_INFO *info, uchar *buf) |
41 | { |
42 | DBUG_ENTER("mi_scan" ); |
43 | /* Init all but update-flag */ |
44 | info->update&= (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED); |
45 | DBUG_RETURN ((*info->s->read_rnd)(info,buf,info->nextpos,1)); |
46 | } |
47 | |