summaryrefslogtreecommitdiff
path: root/libmysqld
diff options
context:
space:
mode:
authorunknown <holyfoot/hf@mysql.com/hfmain.(none)>2008-02-27 12:42:43 +0400
committerunknown <holyfoot/hf@mysql.com/hfmain.(none)>2008-02-27 12:42:43 +0400
commita4b0a2cf67356c0f8f80b5291b3c1f4f8327cb97 (patch)
tree59053e19fde04a14b780f67eb9ed983bf57e3d3b /libmysqld
parent4d794c233419658cd79b416a3ce45d0b1efea688 (diff)
downloadmariadb-git-a4b0a2cf67356c0f8f80b5291b3c1f4f8327cb97.tar.gz
Bug #25097 mysql_server_init fails silently if no errmsg.sys is present.
There was no way to return an error from the client library if no MYSQL connections was established. So here i added variables to store that king of errors and made functions like mysql_error(NULL) to return these. client/mysql.cc: Bug #25097 mysql_server_init fails silently if no errmsg.sys is present. Show the error message on std_error include/sql_common.h: Bug #25097 mysql_server_init fails silently if no errmsg.sys is present. cant_connect_sqlstate constant declared libmysql/libmysql.c: Bug #25097 mysql_server_init fails silently if no errmsg.sys is present. mysql_sqlstate(NULL) returns 'unknown_sqlstate' libmysqld/lib_sql.cc: Bug #25097 mysql_server_init fails silently if no errmsg.sys is present. EMBEDDED_SERVER version of the vprint_msg_to_log() implemented sql-common/client.c: Bug #25097 mysql_server_init fails silently if no errmsg.sys is present. mysql_server_last_errno and mysql_server_last_error introduced to store errors not related to particular connections. mysql_error(NULL) and mysql_errno(NULL) now returns these mysql_server_last_error and errno respectively sql/log.cc: Bug #25097 mysql_server_init fails silently if no errmsg.sys is present. EMBEDDED_LIBRARY implementation of the vprint_msg_to_log() moved to lib_sql.cc
Diffstat (limited to 'libmysqld')
-rw-r--r--libmysqld/lib_sql.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc
index ce692169a5f..b0a47727c7c 100644
--- a/libmysqld/lib_sql.cc
+++ b/libmysqld/lib_sql.cc
@@ -47,6 +47,8 @@ C_MODE_START
#include <sql_common.h>
#include "embedded_priv.h"
+extern unsigned int mysql_server_last_errno;
+extern char mysql_server_last_error[MYSQL_ERRMSG_SIZE];
static my_bool emb_read_query_result(MYSQL *mysql);
@@ -1084,3 +1086,11 @@ bool Protocol::net_store_data(const char *from, uint length)
return false;
}
+
+void vprint_msg_to_log(enum loglevel level __attribute__((unused)),
+ const char *format, va_list argsi)
+{
+ vsnprintf(mysql_server_last_error, sizeof(mysql_server_last_error),
+ format, argsi);
+ mysql_server_last_errno= CR_UNKNOWN_ERROR;
+}