The bitmap was not a strict subset. The reason I was able to find the
problem was that because the bitmap was not a subset, the query
returned an incorrect result. Upon investigation, I found the problem.
The workaround for us is that for queries using ::rnd_pos, we retrieve
the whole row.
On Wed, Jul 15, 2009 at 6:56 AM, Sergei Golubchik<serg@stripped> wrote:
> Hi, Zardosht!
> On Jul 14, Zardosht Kasheff wrote:
>> Some time back, I filed MySQL bug #44373, because comments in the
>> Handler API led me to believe it is a bug. However, I was never really
>> sure. I may be misunderstanding the intended API contracts. What I am
>> wondering is this. Is my understanding correct, and this is a bug, or
>> is my understanding of the behavior of column_bitmaps_signal with
>> respect to the handler::position API not correct?
> From what you've written in the bug report it looks like it's a genuine
> But - admittedly - I didn't try to extract a small test case out of
> test-ATIS and run it in a debugger.
> Is the new bitmap a strict subset of the old one ? I remember
> discussions that NDB needs to know the bitmap before the scan starts
> (e.g. before index_init) because it sends it (bitmap) to other nodes,
> and we were talking about an optimization where MySQL could remove
> columns from a bitmap after the scan started - but the engine was not
> required to obey it, indeed, it's always ok to return more columns than
> what was requested. But even in this case column_bitmaps_signal()
> should've been called. Still a bug.
> If a new bitmap is not a strict subset of the old one then it's a much
> worse bug, and it probably would deliver incorrect query results (or
> worse) with ndb.
> Regards / Mit vielen Grüßen,
> __ ___ ___ ____ __
> / |/ /_ __/ __/ __ \/ / Sergei Golubchik
> / /|_/ / // /\ \/ /_/ / /__ Principal Software Engineer/Server Architect
> /_/ /_/\_, /___/\___\_\___/ Sun Microsystems GmbH, HRB München
> Sonnenallee 1, 85551 Kirchheim-Heimstetten
> Geschäftsführer: Thomas Schroeder, Wolfgang Engels, Wolf Frenkel
> Vorsitzender des Aufsichtsrates: Martin Häring