Drizzled Public API Documentation

set_option.cc
1 /* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2  * vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3  *
4  * Copyright (C) 2009 Sun Microsystems, Inc.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19  */
20 
21 #include <config.h>
22 #include <drizzled/show.h>
23 #include <drizzled/session.h>
24 #include <drizzled/statement/set_option.h>
25 #include <drizzled/sql_lex.h>
26 
27 namespace drizzled {
28 namespace statement {
29 
30 SetOption::SetOption(Session *in_session) :
31  Statement(in_session),
32  one_shot_set(false)
33  {
34  set_command(SQLCOM_SET_OPTION);
35  init_select(&lex());
36  lex().option_type= OPT_SESSION;
37  lex().var_list.empty();
38  }
39 } // namespace statement
40 
42 {
43  TableList *all_tables= lex().query_tables;
44 
45  if (session().openTablesLock(all_tables))
46  {
47  return true;
48  }
49  bool res= sql_set_variables(&session(), lex().var_list);
50  if (res)
51  {
52  /*
53  * We encountered some sort of error, but no message was sent.
54  * Send something semi-generic here since we don't know which
55  * assignment in the list caused the error.
56  */
57  if (! session().is_error())
58  {
59  my_error(ER_WRONG_ARGUMENTS, MYF(0), "SET");
60  }
61  }
62  else
63  {
64  session().my_ok();
65  }
66 
67  return res;
68 }
69 
70 } /* namespace drizzled */
void my_ok(ha_rows affected_rows=0, ha_rows found_rows_arg=0, uint64_t passed_id=0, const char *message=NULL)
Definition: session.cc:1877
int sql_set_variables(Session *session, const SetVarVector &var_list)
Definition: set_var.cc:58