00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <config.h>
00022 #include <drizzled/show.h>
00023 #include <drizzled/session.h>
00024 #include <drizzled/statement/set_option.h>
00025
00026 namespace drizzled
00027 {
00028
00029 namespace statement
00030 {
00031 SetOption::SetOption(Session *in_session) :
00032 Statement(in_session),
00033 one_shot_set(false)
00034 {
00035 set_command(SQLCOM_SET_OPTION);
00036 init_select(&lex());
00037 lex().option_type= OPT_SESSION;
00038 lex().var_list.empty();
00039 }
00040 }
00041
00042 bool statement::SetOption::execute()
00043 {
00044 TableList *all_tables= lex().query_tables;
00045
00046 if (session().openTablesLock(all_tables))
00047 {
00048 return true;
00049 }
00050 bool res= sql_set_variables(&session(), lex().var_list);
00051 if (res)
00052 {
00053
00054
00055
00056
00057
00058 if (! session().is_error())
00059 {
00060 my_error(ER_WRONG_ARGUMENTS, MYF(0), "SET");
00061 }
00062 }
00063 else
00064 {
00065 session().my_ok();
00066 }
00067
00068 return res;
00069 }
00070
00071 }