~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/table.h

Merged Padraig.

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
#include <drizzled/lex_string.h>
34
34
#include <drizzled/table_list.h>
35
35
#include <drizzled/table_share.h>
 
36
#include <bitset>
36
37
 
37
38
class Item;
38
39
class Item_subselect;
94
95
 
95
96
  /* For TMP tables, should be pulled out as a class */
96
97
  void updateCreateInfo(HA_CREATE_INFO *create_info);
97
 
  void setup_tmp_table_column_bitmaps(unsigned char *bitmaps);
 
98
  void setup_tmp_table_column_bitmaps();
98
99
  bool create_myisam_tmp_table(KEY *keyinfo,
99
100
                               MI_COLUMNDEF *start_recinfo,
100
101
                               MI_COLUMNDEF **recinfo,
157
158
  const char    *alias;                   /* alias or table name */
158
159
  unsigned char         *null_flags;
159
160
  my_bitmap_map *bitmap_init_value;
160
 
  MY_BITMAP     def_read_set, def_write_set, tmp_set; /* containers */
161
 
  MY_BITMAP     *read_set, *write_set;          /* Active column sets */
 
161
  std::bitset<MAX_FIELDS> def_read_set, def_write_set, tmp_set; /* containers */
 
162
  std::bitset<MAX_FIELDS> *read_set, *write_set;                /* Active column sets */
162
163
  /*
163
164
   The ID of the query that opened and is using this table. Has different
164
165
   meanings depending on the table type.
285
286
  void reset_item_list(List<Item> *item_list) const;
286
287
  void clear_column_bitmaps(void);
287
288
  void prepare_for_position(void);
288
 
  void mark_columns_used_by_index_no_reset(uint32_t index, MY_BITMAP *map);
 
289
  void mark_columns_used_by_index_no_reset(uint32_t index, std::bitset<MAX_FIELDS> *map);
289
290
  void mark_columns_used_by_index(uint32_t index);
290
291
  void restore_column_maps_after_mark_index();
291
292
  void mark_auto_increment_column(void);
293
294
  void mark_columns_needed_for_delete(void);
294
295
  void mark_columns_needed_for_insert(void);
295
296
  void mark_virtual_columns(void);
296
 
  inline void column_bitmaps_set(MY_BITMAP *read_set_arg,
297
 
                                 MY_BITMAP *write_set_arg)
 
297
  inline void column_bitmaps_set(std::bitset<MAX_FIELDS> *read_set_arg,
 
298
                                 std::bitset<MAX_FIELDS> *write_set_arg)
298
299
  {
299
300
    read_set= read_set_arg;
300
301
    write_set= write_set_arg;
301
302
    if (file)
302
303
      file->column_bitmaps_signal();
303
304
  }
304
 
  inline void column_bitmaps_set_no_signal(MY_BITMAP *read_set_arg,
305
 
                                           MY_BITMAP *write_set_arg)
 
305
  inline void column_bitmaps_set_no_signal(std::bitset<MAX_FIELDS> *read_set_arg,
 
306
                                           std::bitset<MAX_FIELDS> *write_set_arg)
306
307
  {
307
308
    read_set= read_set_arg;
308
309
    write_set= write_set_arg;
309
310
  }
310
311
 
311
 
  void restore_column_map(my_bitmap_map *old);
 
312
  void restore_column_map(std::bitset<MAX_FIELDS> *old);
312
313
 
313
 
  my_bitmap_map *use_all_columns(MY_BITMAP *bitmap);
 
314
  std::bitset<MAX_FIELDS> *use_all_columns(std::bitset<MAX_FIELDS> *bitmap);
314
315
  inline void use_all_columns()
315
316
  {
316
317
    column_bitmaps_set(&s->all_set, &s->all_set);