16.14.10. rnd_init

目的

为表扫描功能初始化处理程序。

概要

virtual int rnd_init ( scan);  
bool  scan ;

描述

这是rnd_init方法。

当系统希望存储引擎执行表扫描时,将调用rnd_init()

index_init()不同,rnd_init()可以调用两次,两次调用之间不使用rnd_end()(仅当scan=1时才有意义)。随后,第2次调用应准备好新的表扫描。例如,如果rnd_init分配了光标,第2次调用应将光标定位于表的开始部分,不需要撤销分配并再次分配。

从下述文件调用:filesort.cc, records.cc, sql_handler.cc, sql_select.cc, sql_table.cc, sql_update.cc

参数

  • scan

返回值

无返回值。

用法

该示例取自CSV存储引擎:

int ha_tina::rnd_init(bool scan)
{
  DBUG_ENTER("ha_tina::rnd_init");

  current_position= next_position= 0;
  records= 0;
  chain_ptr= chain;
  DBUG_RETURN(0);
}          
关注编程学问公众号