~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item/subselect.cc

  • Committer: Brian Aker
  • Date: 2011-01-26 23:20:53 UTC
  • mto: (2123.1.2 build)
  • mto: This revision was merged to the branch mainline in revision 2124.
  • Revision ID: brian@tangent.org-20110126232053-mlfifpupgy0dp2ea
Remove current_session from a couple of locations, encapsulate where in
session.

Show diffs side-by-side

added added

removed removed

Lines of Context:
180
180
 
181
181
bool Item_subselect::fix_fields(Session *session_param, Item **ref)
182
182
{
183
 
  char const *save_where= session_param->where;
 
183
  char const *save_where= session_param->where();
184
184
  bool res;
185
185
 
186
186
  assert(fixed == 0);
223
223
        engine->exclude();
224
224
      }
225
225
      substitution= 0;
226
 
      session->where= "checking transformed subquery";
 
226
      session->setWhere("checking transformed subquery");
227
227
      if (! (*ref)->fixed)
228
228
      {
229
229
        ret= (*ref)->fix_fields(session, ref);
230
230
      }
231
 
      session->where= save_where;
 
231
      session->setWhere(save_where);
 
232
 
232
233
      return ret;
233
234
    }
234
235
    // Is it one field subselect?
253
254
  fixed= 1;
254
255
 
255
256
err:
256
 
  session->where= save_where;
 
257
  session->setWhere(save_where);
257
258
  return res;
258
259
}
259
260
 
1650
1651
Item_in_subselect::select_in_like_transformer(Join *join, const Comp_creator *func)
1651
1652
{
1652
1653
  Select_Lex *current= session->lex->current_select, *up;
1653
 
  const char *save_where= session->where;
 
1654
  const char *save_where= session->where();
1654
1655
  Item_subselect::trans_res res= RES_ERROR;
1655
1656
  bool result;
1656
1657
 
1670
1671
  if (changed)
1671
1672
    return(RES_OK);
1672
1673
 
1673
 
  session->where= "IN/ALL/ANY subquery";
 
1674
  session->setWhere("IN/ALL/ANY subquery");
1674
1675
 
1675
1676
  /*
1676
1677
    In some optimisation cases we will not need this Item_in_optimizer
1721
1722
    res= row_value_transformer(join);
1722
1723
  }
1723
1724
err:
1724
 
  session->where= save_where;
 
1725
  session->setWhere(save_where);
1725
1726
  return(res);
1726
1727
}
1727
1728
 
2142
2143
 
2143
2144
int subselect_single_select_engine::exec()
2144
2145
{
2145
 
  char const *save_where= session->where;
 
2146
  char const *save_where= session->where();
2146
2147
  Select_Lex *save_select= session->lex->current_select;
2147
2148
  session->lex->current_select= select_lex;
2148
2149
  if (!join->optimized)
2152
2153
    unit->set_limit(unit->global_parameters);
2153
2154
    if (join->optimize())
2154
2155
    {
2155
 
      session->where= save_where;
 
2156
      session->setWhere(save_where);
2156
2157
      executed= 1;
2157
2158
      session->lex->current_select= save_select;
2158
2159
      return(join->error ? join->error : 1);
2171
2172
  {
2172
2173
    if (join->reinit())
2173
2174
    {
2174
 
      session->where= save_where;
 
2175
      session->setWhere(save_where);
2175
2176
      session->lex->current_select= save_select;
2176
2177
      return 1;
2177
2178
    }
2230
2231
      tab->read_record.read_record= tab->save_read_record;
2231
2232
    }
2232
2233
    executed= 1;
2233
 
    session->where= save_where;
 
2234
    session->setWhere(save_where);
2234
2235
    session->lex->current_select= save_select;
2235
2236
    return(join->error||session->is_fatal_error);
2236
2237
  }
2237
 
  session->where= save_where;
 
2238
  session->setWhere(save_where);
2238
2239
  session->lex->current_select= save_select;
2239
2240
  return(0);
2240
2241
}
2279
2280
 
2280
2281
int subselect_union_engine::exec()
2281
2282
{
2282
 
  char const *save_where= session->where;
 
2283
  char const *save_where= session->where();
2283
2284
  int res= unit->exec();
2284
 
  session->where= save_where;
 
2285
  session->setWhere(save_where);
 
2286
 
2285
2287
  return res;
2286
2288
}
2287
2289