List:Internals« Previous MessageNext Message »
From:Olivier Chédru Date:June 23 2011 4:44pm
Subject:RE: Temporarily preventing index from being selected
View as plain text  
Hi Serguei!

Thanks for the tip!

I guess the modification of keys_in_use should occur when handler::info() is called with
HA_STATUS_CONST?

Best regards,
Olivier.

-----Original Message-----
From: Sergei Golubchik [mailto:serg@stripped] 
Sent: Thursday, June 23, 2011 6:08 PM
To: Olivier Chédru
Cc: internals@stripped
Subject: Re: Temporarily preventing index from being selected

Hi, Olivier!

On Jun 23, Olivier Chédru wrote:
> Hi Yves,
> 
> You are right, if I return ((ha_rows)~0 - 1) the index is not selected.
> However, is there any guarantee this will be always the case?

There's no guarantee, and furthermore, MySQL doesn't always call
records_in_range() before using an index.

The correct approach is to mask this key out in the
TABLE_SHARE::keys_in_use bitmap.

Regards,
Sergei

> -----Original Message-----
> From: Yves Trudeau [mailto:y.trudeau@stripped] 
> Sent: Thursday, June 23, 2011 2:25 PM
> To: Olivier Chédru
> Cc: internals@stripped
> Subject: Re: Temporarily preventing index from being selected
> 
> Hi Olivier,
>   Have you tried returning a very large number.  That would hint not to
> use the index.
> 
> On Thu, 2011-06-23 at 12:03 +0200, Olivier Chédru wrote:
> > Hi!
> > 
> > I am developing a storage engine for MySQL 5.5. My storage engine is
> > able to perform online index alterations.
> > 
> > I would like to prevent MySQL from choosing an index currently being
> > added by the storage engine.
> > 
> > To do so, my handler::records_in_range() method returns HA_POS_ERROR.
> > However this does not work: the index is used by the query anyway.
> > 
> > Any idea about how to achieve that?
> > 
Thread
Temporarily preventing index from being selectedOlivier Chédru23 Jun
  • Re: Temporarily preventing index from being selectedYves Trudeau23 Jun
    • RE: Temporarily preventing index from being selectedOlivier Chédru23 Jun
      • Re: Temporarily preventing index from being selectedSergei Golubchik23 Jun
        • RE: Temporarily preventing index from being selectedOlivier Chédru23 Jun
          • Re: Temporarily preventing index from being selectedSergei Golubchik23 Jun