10bet网址
MySQL内部手册


23.16.8实现index_read()方法

(custom-engine.html # custom-engine-api-reference-index_readindex_read ()]方法用于基于键检索一行:

Int ha_foo::index_read(byte * buf, const byte * key, ulonglong keypart_map, enum ha_rkey_function find_flag)

*缓冲区参数是一个字节数组,存储引擎使用与中指定的索引键匹配的行填充该字节数组*关键。的keypart_map参数是位图,该位图指示键的哪些部分出现在关键范围。的find_flag参数是指示要使用的搜索行为的枚举数,如中所述解析关键信息

以前使用的索引在[custom-engine.html#自定义-negine-index-init中定义index_init ()调用,并存储在active_index处理程序变量。

允许使用以下值find_flag:

Ha_read_after_key ha_read_before_key ha_read_key_exact ha_read_key_or_next ha_read_key_or_prev ha_read_prefix ha_read_prefix_last ha_read_prefix_last_or_prev

存储引擎必须转换*关键参数指定存储引擎特定格式时,使用它根据find_flag然后填充*缓冲区MySQL内部行格式的匹配行。有关内部行格式的更多信息,请参见#实现rnd_next()方法

除了返回匹配的行之外,存储引擎还必须设置一个游标来支持顺序索引读取。

如果*关键参数为空,存储引擎应该读取索引中的第一个键。