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 #include <drizzled/sql_lex.h>
00026
00027 namespace drizzled {
00028 namespace statement {
00029
00030 SetOption::SetOption(Session *in_session) :
00031 Statement(in_session),
00032 one_shot_set(false)
00033 {
00034 set_command(SQLCOM_SET_OPTION);
00035 init_select(&lex());
00036 lex().option_type= OPT_SESSION;
00037 lex().var_list.empty();
00038 }
00039 }
00040
00041 bool statement::SetOption::execute()
00042 {
00043 TableList *all_tables= lex().query_tables;
00044
00045 if (session().openTablesLock(all_tables))
00046 {
00047 return true;
00048 }
00049 bool res= sql_set_variables(&session(), lex().var_list);
00050 if (res)
00051 {
00052
00053
00054
00055
00056
00057 if (! session().is_error())
00058 {
00059 my_error(ER_WRONG_ARGUMENTS, MYF(0), "SET");
00060 }
00061 }
00062 else
00063 {
00064 session().my_ok();
00065 }
00066
00067 return res;
00068 }
00069
00070 }