~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/opt_range.h

Merged trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
#include <drizzled/field.h>
27
27
#include <drizzled/item/sum.h>
28
28
#include <queue>
 
29
#include <bitset>
29
30
 
30
31
class JOIN;
31
32
typedef class Item COND;
248
249
    Return 1 if any index used by this quick select
249
250
    uses field which is marked in passed bitmap.
250
251
  */
251
 
  virtual bool is_keys_used(const MY_BITMAP *fields);
 
252
  virtual bool is_keys_used(const std::bitset<MAX_FIELDS> *fields);
252
253
 
253
254
  /*
254
255
    rowid of last row retrieved by this quick select. This is used only when
295
296
 
296
297
  /* Members to deal with case when this quick select is a ROR-merged scan */
297
298
  bool in_ror_merged_scan;
298
 
  MY_BITMAP column_bitmap, *save_read_set, *save_write_set;
 
299
  std::bitset<MAX_FIELDS> column_bitmap, *save_read_set, *save_write_set;
299
300
  bool free_file;   /* TRUE <=> this->file is "owned" by this quick select */
300
301
 
301
302
  /* Range pointers to be used when not using MRR interface */
323
324
  MEM_ROOT alloc;
324
325
 
325
326
  QUICK_RANGE_SELECT(Session *session, Table *table,uint32_t index_arg,bool no_alloc,
326
 
                     MEM_ROOT *parent_alloc, bool *create_err);
 
327
                     MEM_ROOT *parent_alloc);
327
328
  ~QUICK_RANGE_SELECT();
328
329
 
329
330
  int init();
451
452
  int get_type() { return QS_TYPE_INDEX_MERGE; }
452
453
  void add_keys_and_lengths(String *key_names, String *used_lengths);
453
454
  void add_info_string(String *str);
454
 
  bool is_keys_used(const MY_BITMAP *fields);
 
455
  bool is_keys_used(const std::bitset<MAX_FIELDS> *fields);
455
456
 
456
457
  bool push_quick_back(QUICK_RANGE_SELECT *quick_sel_range);
457
458
 
507
508
  int get_type() { return QS_TYPE_ROR_INTERSECT; }
508
509
  void add_keys_and_lengths(String *key_names, String *used_lengths);
509
510
  void add_info_string(String *str);
510
 
  bool is_keys_used(const MY_BITMAP *fields);
 
511
  bool is_keys_used(const std::bitset<MAX_FIELDS> *fields);
511
512
  int init_ror_merged_scan(bool reuse_handler);
512
513
  bool push_quick_back(QUICK_RANGE_SELECT *quick_sel_range);
513
514
 
566
567
  int get_type() { return QS_TYPE_ROR_UNION; }
567
568
  void add_keys_and_lengths(String *key_names, String *used_lengths);
568
569
  void add_info_string(String *str);
569
 
  bool is_keys_used(const MY_BITMAP *fields);
 
570
  bool is_keys_used(const std::bitset<MAX_FIELDS> *fields);
570
571
 
571
572
  bool push_quick_back(QUICK_SELECT_I *quick_sel_range);
572
573