Merge mysql.com:/home/hf/work/25097/my50-25097
into mysql.com:/home/hf/work/25097/my51-25097
This commit is contained in:
commit
b727a22d97
@ -421,6 +421,7 @@ int main(int argc,char *argv[])
|
|||||||
if (mysql_server_init(embedded_server_arg_count, embedded_server_args,
|
if (mysql_server_init(embedded_server_arg_count, embedded_server_args,
|
||||||
(char**) embedded_server_groups))
|
(char**) embedded_server_groups))
|
||||||
{
|
{
|
||||||
|
put_error(NULL);
|
||||||
free_defaults(defaults_argv);
|
free_defaults(defaults_argv);
|
||||||
my_end(0);
|
my_end(0);
|
||||||
exit(1);
|
exit(1);
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
|
|
||||||
extern const char *unknown_sqlstate;
|
extern const char *unknown_sqlstate;
|
||||||
|
extern const char *cant_connect_sqlstate;
|
||||||
extern const char *not_error_sqlstate;
|
extern const char *not_error_sqlstate;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -1500,7 +1500,7 @@ my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql)
|
|||||||
|
|
||||||
const char *STDCALL mysql_sqlstate(MYSQL *mysql)
|
const char *STDCALL mysql_sqlstate(MYSQL *mysql)
|
||||||
{
|
{
|
||||||
return mysql->net.sqlstate;
|
return mysql ? mysql->net.sqlstate : cant_connect_sqlstate;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint STDCALL mysql_warning_count(MYSQL *mysql)
|
uint STDCALL mysql_warning_count(MYSQL *mysql)
|
||||||
|
@ -38,6 +38,8 @@ C_MODE_START
|
|||||||
#include <sql_common.h>
|
#include <sql_common.h>
|
||||||
#include "embedded_priv.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);
|
static my_bool emb_read_query_result(MYSQL *mysql);
|
||||||
|
|
||||||
|
|
||||||
@ -1115,3 +1117,11 @@ bool Protocol::net_store_data(const uchar *from, size_t length)
|
|||||||
return FALSE;
|
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;
|
||||||
|
}
|
||||||
|
@ -112,6 +112,7 @@ uint mysql_port=0;
|
|||||||
char *mysql_unix_port= 0;
|
char *mysql_unix_port= 0;
|
||||||
const char *unknown_sqlstate= "HY000";
|
const char *unknown_sqlstate= "HY000";
|
||||||
const char *not_error_sqlstate= "00000";
|
const char *not_error_sqlstate= "00000";
|
||||||
|
const char *cant_connect_sqlstate= "08001";
|
||||||
#ifdef HAVE_SMEM
|
#ifdef HAVE_SMEM
|
||||||
char *shared_memory_base_name= 0;
|
char *shared_memory_base_name= 0;
|
||||||
const char *def_shared_memory_base_name= default_shared_memory_base_name;
|
const char *def_shared_memory_base_name= default_shared_memory_base_name;
|
||||||
@ -126,6 +127,9 @@ static int wait_for_data(my_socket fd, uint timeout);
|
|||||||
|
|
||||||
CHARSET_INFO *default_client_charset_info = &my_charset_latin1;
|
CHARSET_INFO *default_client_charset_info = &my_charset_latin1;
|
||||||
|
|
||||||
|
/* Server error code and message */
|
||||||
|
unsigned int mysql_server_last_errno;
|
||||||
|
char mysql_server_last_error[MYSQL_ERRMSG_SIZE];
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
A modified version of connect(). my_connect() allows you to specify
|
A modified version of connect(). my_connect() allows you to specify
|
||||||
@ -288,11 +292,18 @@ void set_mysql_error(MYSQL *mysql, int errcode, const char *sqlstate)
|
|||||||
DBUG_PRINT("enter", ("error :%d '%s'", errcode, ER(errcode)));
|
DBUG_PRINT("enter", ("error :%d '%s'", errcode, ER(errcode)));
|
||||||
DBUG_ASSERT(mysql != 0);
|
DBUG_ASSERT(mysql != 0);
|
||||||
|
|
||||||
|
if (mysql)
|
||||||
|
{
|
||||||
net= &mysql->net;
|
net= &mysql->net;
|
||||||
net->client_last_errno= errcode;
|
net->client_last_errno= errcode;
|
||||||
strmov(net->client_last_error, ER(errcode));
|
strmov(net->client_last_error, ER(errcode));
|
||||||
strmov(net->sqlstate, sqlstate);
|
strmov(net->sqlstate, sqlstate);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mysql_server_last_errno= errcode;
|
||||||
|
strmov(mysql_server_last_error, ER(errcode));
|
||||||
|
}
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1489,7 +1500,10 @@ mysql_init(MYSQL *mysql)
|
|||||||
if (!mysql)
|
if (!mysql)
|
||||||
{
|
{
|
||||||
if (!(mysql=(MYSQL*) my_malloc(sizeof(*mysql),MYF(MY_WME | MY_ZEROFILL))))
|
if (!(mysql=(MYSQL*) my_malloc(sizeof(*mysql),MYF(MY_WME | MY_ZEROFILL))))
|
||||||
|
{
|
||||||
|
set_mysql_error(NULL, CR_OUT_OF_MEMORY, unknown_sqlstate);
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
mysql->free_me=1;
|
mysql->free_me=1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -3079,13 +3093,13 @@ unsigned int STDCALL mysql_num_fields(MYSQL_RES *res)
|
|||||||
|
|
||||||
uint STDCALL mysql_errno(MYSQL *mysql)
|
uint STDCALL mysql_errno(MYSQL *mysql)
|
||||||
{
|
{
|
||||||
return mysql->net.client_last_errno;
|
return mysql ? mysql->net.client_last_errno : mysql_server_last_errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const char * STDCALL mysql_error(MYSQL *mysql)
|
const char * STDCALL mysql_error(MYSQL *mysql)
|
||||||
{
|
{
|
||||||
return mysql->net.client_last_error;
|
return mysql ? mysql->net.client_last_error : mysql_server_last_error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
10
sql/log.cc
10
sql/log.cc
@ -4378,15 +4378,7 @@ static void print_buffer_to_nt_eventlog(enum loglevel level, char *buff,
|
|||||||
return an error (e.g. logging to the log tables)
|
return an error (e.g. logging to the log tables)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef EMBEDDED_LIBRARY
|
#ifndef EMBEDDED_LIBRARY
|
||||||
int vprint_msg_to_log(enum loglevel level __attribute__((unused)),
|
|
||||||
const char *format __attribute__((unused)),
|
|
||||||
va_list argsi __attribute__((unused)))
|
|
||||||
{
|
|
||||||
DBUG_ENTER("vprint_msg_to_log");
|
|
||||||
DBUG_RETURN(0);
|
|
||||||
}
|
|
||||||
#else /*!EMBEDDED_LIBRARY*/
|
|
||||||
static void print_buffer_to_file(enum loglevel level, const char *buffer)
|
static void print_buffer_to_file(enum loglevel level, const char *buffer)
|
||||||
{
|
{
|
||||||
time_t skr;
|
time_t skr;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user