(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()方法。
除了返回匹配的行之外,存储引擎还必须设置一个游标来支持顺序索引读取。
如果*关键
参数为空,存储引擎应该读取索引中的第一个键。