Commit 53043d6f authored by istruewing@chilla.local's avatar istruewing@chilla.local

Merge chilla.local:/home/mydev/mysql-5.1-ateam

into  chilla.local:/home/mydev/mysql-5.1-bug26827
parents 4ef3110a 5ac6264d
...@@ -103,6 +103,17 @@ extern void bitmap_lock_invert(MY_BITMAP *map); ...@@ -103,6 +103,17 @@ extern void bitmap_lock_invert(MY_BITMAP *map);
&= ~ (1 << ((BIT) & 7))) &= ~ (1 << ((BIT) & 7)))
#define _bitmap_is_set(MAP, BIT) (uint) (((uchar*)(MAP)->bitmap)[(BIT) / 8] \ #define _bitmap_is_set(MAP, BIT) (uint) (((uchar*)(MAP)->bitmap)[(BIT) / 8] \
& (1 << ((BIT) & 7))) & (1 << ((BIT) & 7)))
/*
WARNING!
The below symbols are inline functions in DEBUG builds and macros in
non-DEBUG builds. The latter evaluate their 'bit' argument twice.
NEVER use an increment/decrement operator with the 'bit' argument.
It would work with DEBUG builds, but fails later in production builds!
FORBIDDEN: bitmap_set_bit($my_bitmap, (field++)->field_index);
*/
#ifndef DBUG_OFF #ifndef DBUG_OFF
static inline void static inline void
bitmap_set_bit(MY_BITMAP *map,uint bit) bitmap_set_bit(MY_BITMAP *map,uint bit)
......
...@@ -606,8 +606,8 @@ static bool create_full_part_field_array(THD *thd, TABLE *table, ...@@ -606,8 +606,8 @@ static bool create_full_part_field_array(THD *thd, TABLE *table,
partitioning. partitioning.
*/ */
if ((ptr= part_info->full_part_field_array)) if ((ptr= part_info->full_part_field_array))
while (*ptr) for (; *ptr; ptr++)
bitmap_set_bit(&part_info->full_part_field_set, (*ptr++)->field_index); bitmap_set_bit(&part_info->full_part_field_set, (*ptr)->field_index);
end: end:
DBUG_RETURN(result); DBUG_RETURN(result);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment