O'Reilly logo

MySQL 5.1 Plugin Development by Andrew Hutchings, Sergei Golubchik

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Searching in the index

index_read() is, perhaps, the most complex function in our engine. Not because it is difficult to look up a key in the B+tree, but because there are too many "search modes" in MySQL. But let's get started:

int ha_tocab::index_read(uchar *buf, const uchar *key,
uint key_len, enum ha_rkey_function find_flag)
{

Just like rnd_next(), from the previous chapter this method takes a pointer to a row buffer as an argument. The row that we will find should be written there. Not surprisingly, two other arguments of this method are key and key length—it is what we will need to search for. But the last argument—what is it? It is this very "search mode" that makes our lives complicated. It can take one of the following values:

Value ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required