~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_base.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:
900
900
  const char *alias= table_list->alias;
901
901
 
902
902
  /* Parsing of partitioning information from .frm needs session->lex set up. */
903
 
  assert(getLex()->is_lex_started);
 
903
  assert(lex().is_lex_started);
904
904
 
905
905
  /* find a unused table in the open table cache */
906
906
  if (refresh)
2292
2292
        fields.
2293
2293
      */
2294
2294
      {
2295
 
        Select_Lex *current_sel= session->getLex()->current_select;
 
2295
        Select_Lex *current_sel= session->lex().current_select;
2296
2296
        Select_Lex *last_select= table_ref->select_lex;
2297
2297
        /*
2298
2298
          If the field was an outer referencee, mark all selects using this
3271
3271
  Item *item;
3272
3272
  List<Item>::iterator it(fields.begin());
3273
3273
 
3274
 
  session->getLex()->current_select->cur_pos_in_select_list= 0;
 
3274
  session->lex().current_select->cur_pos_in_select_list= 0;
3275
3275
  while (wild_num && (item= it++))
3276
3276
  {
3277
3277
    if (item->type() == Item::FIELD_ITEM &&
3281
3281
    {
3282
3282
      uint32_t elem= fields.size();
3283
3283
      bool any_privileges= ((Item_field *) item)->any_privileges;
3284
 
      Item_subselect *subsel= session->getLex()->current_select->master_unit()->item;
 
3284
      Item_subselect *subsel= session->lex().current_select->master_unit()->item;
3285
3285
      if (subsel &&
3286
3286
          subsel->substype() == Item_subselect::EXISTS_SUBS)
3287
3287
      {
3312
3312
      wild_num--;
3313
3313
    }
3314
3314
    else
3315
 
      session->getLex()->current_select->cur_pos_in_select_list++;
 
3315
      session->lex().current_select->cur_pos_in_select_list++;
3316
3316
  }
3317
 
  session->getLex()->current_select->cur_pos_in_select_list= UNDEF_POS;
 
3317
  session->lex().current_select->cur_pos_in_select_list= UNDEF_POS;
3318
3318
 
3319
3319
  return 0;
3320
3320
}
3329
3329
{
3330
3330
  register Item *item;
3331
3331
  enum_mark_columns save_mark_used_columns= session->mark_used_columns;
3332
 
  nesting_map save_allow_sum_func= session->getLex()->allow_sum_func;
 
3332
  nesting_map save_allow_sum_func= session->lex().allow_sum_func;
3333
3333
  List<Item>::iterator it(fields.begin());
3334
3334
  bool save_is_item_list_lookup;
3335
3335
 
3336
3336
  session->mark_used_columns= mark_used_columns;
3337
3337
  if (allow_sum_func)
3338
 
    session->getLex()->allow_sum_func|= 1 << session->getLex()->current_select->nest_level;
 
3338
    session->lex().allow_sum_func|= 1 << session->lex().current_select->nest_level;
3339
3339
  session->setWhere(Session::DEFAULT_WHERE);
3340
 
  save_is_item_list_lookup= session->getLex()->current_select->is_item_list_lookup;
3341
 
  session->getLex()->current_select->is_item_list_lookup= 0;
 
3340
  save_is_item_list_lookup= session->lex().current_select->is_item_list_lookup;
 
3341
  session->lex().current_select->is_item_list_lookup= 0;
3342
3342
 
3343
3343
  /*
3344
3344
    To prevent fail on forward lookup we fill it with zerows,
3356
3356
  }
3357
3357
 
3358
3358
  Item **ref= ref_pointer_array;
3359
 
  session->getLex()->current_select->cur_pos_in_select_list= 0;
 
3359
  session->lex().current_select->cur_pos_in_select_list= 0;
3360
3360
  while ((item= it++))
3361
3361
  {
3362
3362
    if ((!item->fixed && item->fix_fields(session, it.ref())) || (item= *(it.ref()))->check_cols(1))
3363
3363
    {
3364
 
      session->getLex()->current_select->is_item_list_lookup= save_is_item_list_lookup;
3365
 
      session->getLex()->allow_sum_func= save_allow_sum_func;
 
3364
      session->lex().current_select->is_item_list_lookup= save_is_item_list_lookup;
 
3365
      session->lex().allow_sum_func= save_allow_sum_func;
3366
3366
      session->mark_used_columns= save_mark_used_columns;
3367
3367
      return true;
3368
3368
    }
3372
3372
        sum_func_list)
3373
3373
      item->split_sum_func(session, ref_pointer_array, *sum_func_list);
3374
3374
    session->used_tables|= item->used_tables();
3375
 
    session->getLex()->current_select->cur_pos_in_select_list++;
 
3375
    session->lex().current_select->cur_pos_in_select_list++;
3376
3376
  }
3377
 
  session->getLex()->current_select->is_item_list_lookup= save_is_item_list_lookup;
3378
 
  session->getLex()->current_select->cur_pos_in_select_list= UNDEF_POS;
 
3377
  session->lex().current_select->is_item_list_lookup= save_is_item_list_lookup;
 
3378
  session->lex().current_select->cur_pos_in_select_list= UNDEF_POS;
3379
3379
 
3380
 
  session->getLex()->allow_sum_func= save_allow_sum_func;
 
3380
  session->lex().allow_sum_func= save_allow_sum_func;
3381
3381
  session->mark_used_columns= save_mark_used_columns;
3382
3382
  return(test(session->is_error()));
3383
3383
}
3653
3653
        session->used_tables|= item->used_tables();
3654
3654
      }
3655
3655
 
3656
 
      session->getLex()->current_select->cur_pos_in_select_list++;
 
3656
      session->lex().current_select->cur_pos_in_select_list++;
3657
3657
    }
3658
3658
    /*
3659
3659
      In case of stored tables, all fields are considered as used,
3706
3706
int Session::setup_conds(TableList *leaves, COND **conds)
3707
3707
{
3708
3708
  Session *session= this;
3709
 
  Select_Lex *select_lex= session->getLex()->current_select;
 
3709
  Select_Lex *select_lex= session->lex().current_select;
3710
3710
  TableList *table= NULL;       // For HP compilers
3711
3711
  void *save_session_marker= session->session_marker;
3712
3712
  /*
3764
3764
  }
3765
3765
  session->session_marker= save_session_marker;
3766
3766
 
3767
 
  session->getLex()->current_select->is_item_list_lookup= save_is_item_list_lookup;
 
3767
  session->lex().current_select->is_item_list_lookup= save_is_item_list_lookup;
3768
3768
  return(test(session->is_error()));
3769
3769
 
3770
3770
err_no_arena: