~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/optimizer/range.cc

  • Committer: Olaf van der Spek
  • Date: 2011-06-25 13:36:24 UTC
  • mto: This revision was merged to the branch mainline in revision 2349.
  • Revision ID: olafvdspek@gmail.com-20110625133624-hzy2ordecn161qco
Refactor

Show diffs side-by-side

added added

removed removed

Lines of Context:
1981
1981
  if (key_to_read)
1982
1982
  {
1983
1983
    idx= key_to_read - tree->keys;
1984
 
    if ((read_plan= new (*param->mem_root) optimizer::RangeReadPlan(*key_to_read, idx,
1985
 
                                                                   best_mrr_flags)))
1986
 
    {
1987
 
      read_plan->records= best_records;
1988
 
      read_plan->is_ror= tree->ror_scans_map.test(idx);
1989
 
      read_plan->read_cost= read_time;
1990
 
      read_plan->mrr_buf_size= best_buf_size;
1991
 
    }
 
1984
    read_plan= new (*param->mem_root) optimizer::RangeReadPlan(*key_to_read, idx, best_mrr_flags);
 
1985
    read_plan->records= best_records;
 
1986
    read_plan->is_ror= tree->ror_scans_map.test(idx);
 
1987
    read_plan->read_cost= read_time;
 
1988
    read_plan->mrr_buf_size= best_buf_size;
1992
1989
  }
1993
 
 
1994
 
  return(read_plan);
 
1990
  return read_plan;
1995
1991
}
1996
1992
 
1997
1993
 
5467
5463
 
5468
5464
optimizer::QuickSelectInterface *optimizer::RangeReadPlan::make_quick(optimizer::Parameter *param, bool, memory::Root *parent_alloc)
5469
5465
{
5470
 
  optimizer::QuickRangeSelect *quick= NULL;
5471
 
  if ((quick= optimizer::get_quick_select(param,
5472
 
                                          key_idx,
5473
 
                                          key,
5474
 
                                          mrr_flags,
5475
 
                                          mrr_buf_size,
5476
 
                                          parent_alloc)))
 
5466
  optimizer::QuickRangeSelect *quick= optimizer::get_quick_select(param, key_idx, key, mrr_flags, mrr_buf_size, parent_alloc);
 
5467
  if (quick)
5477
5468
  {
5478
5469
    quick->records= records;
5479
5470
    quick->read_time= read_cost;
5487
5478
  boost::dynamic_bitset<> map= bitsToBitset();
5488
5479
  for (boost::dynamic_bitset<>::size_type i= 0; i < map.size(); i++)
5489
5480
  {
5490
 
    if (! map.test(i))
5491
 
    {
 
5481
    if (not map.test(i))
5492
5482
      return i;
5493
 
    }
5494
5483
  }
5495
5484
  return map.size();
5496
5485
}