summaryrefslogtreecommitdiff
path: root/sql/sql_select.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r--sql/sql_select.cc19
1 files changed, 10 insertions, 9 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index d22f43a5bbc..78cf91decc7 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -16141,20 +16141,21 @@ Field *create_tmp_field(THD *thd, TABLE *table,Item *item, Item::Type type,
void setup_tmp_table_column_bitmaps(TABLE *table, uchar *bitmaps)
{
uint field_count= table->s->fields;
+ uint bitmap_size= bitmap_buffer_size(field_count);
+
+ DBUG_ASSERT(table->s->vfields == 0 && table->def_vcol_set == 0);
+
my_bitmap_init(&table->def_read_set, (my_bitmap_map*) bitmaps, field_count,
FALSE);
- my_bitmap_init(&table->def_vcol_set,
- (my_bitmap_map*) (bitmaps+ bitmap_buffer_size(field_count)),
- field_count, FALSE);
+ bitmaps+= bitmap_size;
my_bitmap_init(&table->tmp_set,
- (my_bitmap_map*) (bitmaps+ 2*bitmap_buffer_size(field_count)),
- field_count, FALSE);
+ (my_bitmap_map*) bitmaps, field_count, FALSE);
+ bitmaps+= bitmap_size;
my_bitmap_init(&table->eq_join_set,
- (my_bitmap_map*) (bitmaps+ 3*bitmap_buffer_size(field_count)),
- field_count, FALSE);
+ (my_bitmap_map*) bitmaps, field_count, FALSE);
+ bitmaps+= bitmap_size;
my_bitmap_init(&table->cond_set,
- (my_bitmap_map*) (bitmaps+ 4*bitmap_buffer_size(field_count)),
- field_count, FALSE);
+ (my_bitmap_map*) bitmaps, field_count, FALSE);
/* write_set and all_set are copies of read_set */
table->def_write_set= table->def_read_set;
table->s->all_set= table->def_read_set;