~stewart/drizzle/remove-unused-row-type-in-table-message

« back to all changes in this revision

Viewing changes to drizzled/optimizer/range.cc

  • Committer: Stewart Smith
  • Date: 2010-07-20 16:35:49 UTC
  • mfrom: (1638.1.28 drizzle)
  • Revision ID: stewart@flamingspork.com-20100720163549-zgcsmroyt0njr92d
merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
2567
2567
  field->setWriteSet();
2568
2568
 
2569
2569
  Item_result cmp_type= field->cmp_type();
2570
 
  if (!((ref_tables | field->table->map) & param_comp))
 
2570
  if (!((ref_tables | field->getTable()->map) & param_comp))
2571
2571
    ftree= get_func_mm_tree(param, cond_func, field, value, cmp_type, inv);
2572
2572
  Item_equal *item_equal= field_item->item_equal;
2573
2573
  if (item_equal)
2581
2581
 
2582
2582
      if (field->eq(f))
2583
2583
        continue;
2584
 
      if (!((ref_tables | f->table->map) & param_comp))
 
2584
      if (!((ref_tables | f->getTable()->map) & param_comp))
2585
2585
      {
2586
2586
        tree= get_func_mm_tree(param, cond_func, f, value, cmp_type, inv);
2587
2587
        ftree= !ftree ? tree : tree_and(param, ftree, tree);
2639
2639
    }
2640
2640
    return(tree);
2641
2641
  }
2642
 
  /* Here when simple cond */
2643
 
  if (cond->const_item())
 
2642
  /* Here when simple cond
 
2643
     There are limits on what kinds of const items we can evaluate, grep for
 
2644
     DontEvaluateMaterializedSubqueryTooEarly.
 
2645
  */
 
2646
  if (cond->const_item()  && !cond->is_expensive())
2644
2647
  {
2645
2648
    /*
2646
2649
      During the cond->val_int() evaluation we can come across a subselect
2732
2735
      field->setWriteSet();
2733
2736
 
2734
2737
      Item_result cmp_type= field->cmp_type();
2735
 
      if (!((ref_tables | field->table->map) & param_comp))
 
2738
      if (!((ref_tables | field->getTable()->map) & param_comp))
2736
2739
      {
2737
2740
        tree= get_mm_parts(param, cond, field, Item_func::EQ_FUNC,
2738
2741
                           value,cmp_type);
2771
2774
                   Item_func::Functype type,
2772
2775
                   Item *value, Item_result)
2773
2776
{
2774
 
  if (field->table != param->table)
 
2777
  if (field->getTable() != param->table)
2775
2778
    return 0;
2776
2779
 
2777
2780
  KEY_PART *key_part = param->key_parts;
2841
2844
  param->session->mem_root= param->old_root;
2842
2845
  if (!value)                                   // IS NULL or IS NOT NULL
2843
2846
  {
2844
 
    if (field->table->maybe_null)               // Can't use a key on this
 
2847
    if (field->getTable()->maybe_null)          // Can't use a key on this
2845
2848
      goto end;
2846
2849
    if (!maybe_null)                            // Not null field
2847
2850
    {