List:Falcon Storage Engine« Previous MessageNext Message »
From:Lars-Erik Bjørk Date:February 20 2009 12:33pm
Subject:Re: Patch for bug#23692
View as plain text  
This looked *so* much better in my mail editor. I have to learn that 
pasting from Firefox does not always look good. Sorry about the ugly 
layout, and the duplicated url :)

/Lars-Erik

Lars-Erik Bjørk wrote:
> Hi all!
>
> This is a patch for bug#23692 <http://bugs.mysql.com/23692> (Falcon: 
> searches fail if data is 0x00)
> The bug report is available here:http://bugs.mysql.com/bug.php?id=23692
> Here is a copy of my comment in the commit message, to give an 
> introduction to the patch :)
>
>      The solution is to append a pad key to the upper      bound 
> search key, if its last character is equal
>      to or greater than the pad character. This is done
>      In order to make it position after all values with      trailing 
> characters lower than the pad character.
>           For fields with a collation registered
>      [if (field->collation)], there is no efficient way
>      of checking if the last character is equal or greater
>      than the pad character, without iterating through the
>      entire key from the beginning.
>           I have discussed this with Alexander who suggests
>      to always pad the upper bound search key in these cases,
>      and to pad it to the length of the key, instead of      appending 
> just a single character. This way I can use the
>      existing cs->coll->strnxfrm function.
>           In the other cases, I have checked on the last byte and
>      appended 0x20 if the byte was >= 0x20.
>           I have also added one more parameter to the makeKey methods
>      to say that this is a highKey.
>
>
> The patch is available here
> http://lists.mysql.com/commits/67022
>
> And the test and result files are available her. I forgot to "bzr add" 
> them the first time :)
> http://lists.mysql.com/commits/67023
>

Thread
Patch for bug#23692Lars-Erik Bjørk20 Feb
  • Re: Patch for bug#23692Lars-Erik Bjørk20 Feb