16.14.11. rnd_next
目的
从表中读取下一行,并将其返回服务器。
概要
virtual int rnd_next (
buf);
byte *
buf ;
描述
这是rnd_next方法。
对于表扫描的每一行调用它。耗尽记录时,应返回HA_ERR_END_OF_FILE。用行信息填充buff。表的字段结构是以服务器能理解的方式将数据保存到buf中的键。
从下述文件调用:filesort.cc, records.cc, sql_handler.cc, sql_select.cc, sql_table.cc,和sql_update.cc。
参数
buf
返回值
无返回值。
用法
下述示例取自ARCHIVE存储引擎:
int ha_archive::rnd_next(byte *buf)
{
int rc;
DBUG_ENTER("ha_archive::rnd_next");
if (share->crashed)
DBUG_RETURN(HA_ERR_CRASHED_ON_USAGE);
if (!scan_rows)
DBUG_RETURN(HA_ERR_END_OF_FILE);
scan_rows--;
statistic_increment(table->in_use->status_var.ha_read_rnd_next_count,
&LOCK_status);
current_position= gztell(archive);
rc= get_row(archive, buf);
if (rc != HA_ERR_END_OF_FILE)
records++;
DBUG_RETURN(rc);
}