27
#include <drizzled/definitions.h>
25
#include <drizzled/server_includes.h>
26
#include <drizzled/errmsg.h>
28
27
#include <drizzled/errmsg_print.h>
29
#include <drizzled/plugin/error_message.h>
28
#include <drizzled/current_session.h>
30
// need this for stderr
33
void sql_print_error(const char *format, ...)
36
va_start(args, format);
37
errmsg_vprintf(current_session, ERROR_LEVEL, format, args);
42
void sql_print_warning(const char *format, ...)
45
va_start(args, format);
46
errmsg_vprintf(current_session, WARNING_LEVEL, format, args);
51
void sql_print_information(const char *format, ...)
54
va_start(args, format);
55
errmsg_vprintf(current_session, INFORMATION_LEVEL, format, args);
37
60
void sql_perror(const char *message)
40
char errmsg[STRERROR_MAX];
43
#ifdef STRERROR_R_CHAR_P
44
errmsg_ptr= strerror_r(errno, errmsg, sizeof(errmsg));
46
strerror_r(errno, errmsg, sizeof(errmsg));
50
errmsg_printf(error::ERROR, "%s: %s\n", message, errmsg);
54
// @todo Cap the size of message.
55
void sql_perror(const std::string &message)
57
static std::string empty;
58
sql_perror(message, empty);
61
// @todo Cap the size of message/extra.
62
void sql_perror(std::string message, const std::string &extra)
65
char errmsg[STRERROR_MAX];
68
#ifdef STRERROR_R_CHAR_P
69
errmsg_ptr= strerror_r(errno, errmsg, sizeof(errmsg));
71
strerror_r(errno, errmsg, sizeof(errmsg));
75
if (not extra.empty())
77
if (message.at(message.size()) != ' ')
85
errmsg_printf(error::ERROR, "%s: %s\n", message.c_str(), errmsg);
88
bool errmsg_printf (error::level_t priority, char const *format, ...)
62
// is stderr threadsafe?
63
errmsg_printf(ERRMSG_LVL_ERROR, "%s: %s", message, strerror(errno));
67
bool errmsg_printf (int priority, char const *format, ...)
92
71
va_start(args, format);
93
rv= plugin::ErrorMessage::vprintf(priority, format, args);
72
rv= errmsg_vprintf(current_session, priority, format, args);
98
} /* namespace drizzled */