~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/set_var.cc

  • Committer: Monty Taylor
  • Date: 2011-03-10 18:19:38 UTC
  • mfrom: (2207.8.7 list)
  • mto: This revision was merged to the branch mainline in revision 2228.
  • Revision ID: mordred@inaugust.com-20110310181938-lgzhh09zzvu1apu7
Merge Olaf: Refactor List

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
 
20
20
#include <config.h>
21
21
 
 
22
#include <boost/foreach.hpp>
22
23
#include <boost/lexical_cast.hpp>
23
24
#include <boost/exception/get_error_info.hpp>
24
25
#include <string>
25
26
 
26
27
#include <drizzled/session.h>
27
28
#include <drizzled/item/string.h>
28
 
#include <drizzled/sql_list.h>
29
29
#include <drizzled/function/set_user_var.h>
30
30
 
31
31
using namespace std;
56
56
int sql_set_variables(Session *session, const SetVarVector &var_list)
57
57
{
58
58
  int error;
59
 
 
60
 
  SetVarVector::const_iterator it(var_list.begin());
61
 
 
62
 
  while (it != var_list.end())
 
59
  BOOST_FOREACH(SetVarVector::const_reference it, var_list)
63
60
  {
64
 
    if ((error= (*it)->check(session)))
 
61
    if ((error= it->check(session)))
65
62
      goto err;
66
 
    ++it;
67
63
  }
68
64
  if (!(error= test(session->is_error())))
69
65
  {
70
 
    it= var_list.begin();
71
 
    while (it != var_list.end())
 
66
    BOOST_FOREACH(SetVarVector::const_reference it, var_list)
72
67
    {
73
 
      error|= (*it)->update(session);         // Returns 0, -1 or 1
74
 
      ++it;
 
68
      error|= it->update(session);         // Returns 0, -1 or 1
75
69
    }
76
70
  }
77
 
 
78
71
err:
79
72
  free_underlaid_joins(session, &session->getLex()->select_lex);
80
 
  return(error);
 
73
  return error;
81
74
}
82
75
 
83
76