22 #include <plugin/slave/sql_executor.h>
23 #include <drizzled/plugin/listen.h>
24 #include <drizzled/plugin/client.h>
25 #include <drizzled/catalog/local.h>
26 #include <drizzled/execute.h>
27 #include <drizzled/sql/result_set.h>
28 #include <drizzled/errmsg_print.h>
29 #include <drizzled/plugin.h>
37 SQLExecutor::SQLExecutor(
const string &user,
const string &schema)
38 : _in_error_state(false)
41 _session= Session::make_shared(plugin::Listen::getNullClient(), catalog::local());
42 identifier::user::mptr user_id= identifier::User::make_shared();
43 user_id->setUser(user);
52 _error_message.clear();
57 BOOST_FOREACH(
string& it, sql)
59 combined_sql.append(it);
60 combined_sql.append(
"; ");
66 execute.run(combined_sql, result_set);
70 drizzled::error_t err= exception.getErrorCode();
72 if ((err != drizzled::EE_OK) && (err != drizzled::ER_EMPTY_QUERY))
80 _in_error_state=
true;
81 _error_message=
"(SQLSTATE ";
82 _error_message.append(exception.getSQLState());
83 _error_message.append(
") ");
84 _error_message.append(exception.getErrorMessage());
86 string bad_sql(
"Failure while executing:\n");
87 for (
size_t y= 0; y < sql.size(); y++)
89 bad_sql.append(sql[y]);
93 errmsg_printf(error::ERROR, _(
"%s\n%s\n"), _error_message.c_str(), bad_sql.c_str());
bool executeSQL(string &sql)
TODO: Rename this file - func.h is stupid.
drizzled::Session::shared_ptr _session