~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_select.cc

  • Committer: Lee Bieber
  • Date: 2011-03-13 16:37:38 UTC
  • mfrom: (2227.4.18 session2)
  • Revision ID: kalebral@gmail.com-20110313163738-7ti21zk40o2xi3ew
Merge Olaf - Refactor Session

Show diffs side-by-side

added added

removed removed

Lines of Context:
424
424
    goto err; // 1
425
425
  }
426
426
 
427
 
  if (session->getLex()->describe & DESCRIBE_EXTENDED)
 
427
  if (session->lex().describe & DESCRIBE_EXTENDED)
428
428
  {
429
429
    join->conds_history= join->conds;
430
430
    join->having_history= (join->having?join->having:join->tmp_having);
435
435
 
436
436
  join->exec();
437
437
 
438
 
  if (session->getLex()->describe & DESCRIBE_EXTENDED)
 
438
  if (session->lex().describe & DESCRIBE_EXTENDED)
439
439
  {
440
440
    select_lex->where= join->conds_history;
441
441
    select_lex->having= join->having_history;
574
574
    substitutions.
575
575
  */
576
576
  sz= sizeof(optimizer::KeyField) *
577
 
      (((session->getLex()->current_select->cond_count+1)*2 +
578
 
        session->getLex()->current_select->between_count)*m+1);
 
577
      (((session->lex().current_select->cond_count+1)*2 +
 
578
        session->lex().current_select->between_count)*m+1);
579
579
  if (! (key_fields= (optimizer::KeyField*) session->getMemRoot()->allocate(sz)))
580
580
    return true;
581
581
  and_level= 0;
1653
1653
                                       (Item_row *) right_item,
1654
1654
                                       cond_equal, eq_list);
1655
1655
      if (!is_converted)
1656
 
        session->getLex()->current_select->cond_count++;
 
1656
        session->lex().current_select->cond_count++;
1657
1657
    }
1658
1658
    else
1659
1659
    {
1660
1660
      is_converted= check_simple_equality(left_item, right_item, 0, cond_equal);
1661
 
      session->getLex()->current_select->cond_count++;
 
1661
      session->lex().current_select->cond_count++;
1662
1662
    }
1663
1663
 
1664
1664
    if (!is_converted)
1714
1714
    if (left_item->type() == Item::ROW_ITEM &&
1715
1715
        right_item->type() == Item::ROW_ITEM)
1716
1716
    {
1717
 
      session->getLex()->current_select->cond_count--;
 
1717
      session->lex().current_select->cond_count--;
1718
1718
      return check_row_equality(session,
1719
1719
                                (Item_row *) left_item,
1720
1720
                                (Item_row *) right_item,
1745
1745
    just an argument of a comparison predicate.
1746
1746
    The function also determines the maximum number of members in
1747
1747
    equality lists of each Item_cond_and object assigning it to
1748
 
    session->getLex()->current_select->max_equal_elems.
 
1748
    session->lex().current_select->max_equal_elems.
1749
1749
 
1750
1750
  @note
1751
1751
    Multiple equality predicate =(f1,..fn) is equivalent to the conjuction of
1829
1829
      {
1830
1830
        item_equal->fix_length_and_dec();
1831
1831
        item_equal->update_used_tables();
1832
 
        set_if_bigger(session->getLex()->current_select->max_equal_elems,
 
1832
        set_if_bigger(session->lex().current_select->max_equal_elems,
1833
1833
                      item_equal->members());
1834
1834
      }
1835
1835
 
1888
1888
        }
1889
1889
        else
1890
1890
          item_equal= (Item_equal *) eq_list.pop();
1891
 
        set_if_bigger(session->getLex()->current_select->max_equal_elems,
 
1891
        set_if_bigger(session->lex().current_select->max_equal_elems,
1892
1892
                      item_equal->members());
1893
1893
        return item_equal;
1894
1894
      }
1906
1906
        {
1907
1907
          item_equal->fix_length_and_dec();
1908
1908
          item_equal->update_used_tables();
1909
 
          set_if_bigger(session->getLex()->current_select->max_equal_elems,
 
1909
          set_if_bigger(session->lex().current_select->max_equal_elems,
1910
1910
                        item_equal->members());
1911
1911
        }
1912
1912
        and_cond->cond_equal= cond_equal;
5559
5559
    Item_field *field;
5560
5560
    int cur_pos_in_select_list= 0;
5561
5561
    List<Item>::iterator li(fields.begin());
5562
 
    List<Item_field>::iterator naf_it(session->getLex()->current_select->non_agg_fields.begin());
 
5562
    List<Item_field>::iterator naf_it(session->lex().current_select->non_agg_fields.begin());
5563
5563
 
5564
5564
    field= naf_it++;
5565
5565
    while (field && (item=li++))
6203
6203
{
6204
6204
  if (expr->arg_count)
6205
6205
  {
6206
 
    Name_resolution_context *context= &session->getLex()->current_select->context;
 
6206
    Name_resolution_context *context= &session->lex().current_select->context;
6207
6207
    Item **arg,**arg_end;
6208
6208
    bool arg_changed= false;
6209
6209
    for (arg= expr->arguments(),