mirror of
https://github.com/MariaDB/server.git
synced 2025-05-07 04:01:59 +03:00
Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-4.1
into deer.(none):/home/hf/work/mysql-4.1.3744
This commit is contained in:
commit
418dffe205
@ -371,10 +371,16 @@ int main(int argc,char *argv[])
|
|||||||
!(status.line_buff=batch_readline_init(max_allowed_packet+512,stdin)))
|
!(status.line_buff=batch_readline_init(max_allowed_packet+512,stdin)))
|
||||||
{
|
{
|
||||||
free_defaults(defaults_argv);
|
free_defaults(defaults_argv);
|
||||||
|
my_end(0);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
if (mysql_server_init(0, NULL, (char**) server_default_groups))
|
||||||
|
{
|
||||||
|
free_defaults(defaults_argv);
|
||||||
|
my_end(0);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
glob_buffer.realloc(512);
|
glob_buffer.realloc(512);
|
||||||
mysql_server_init(0, NULL, (char**) server_default_groups);
|
|
||||||
completion_hash_init(&ht, 128);
|
completion_hash_init(&ht, 128);
|
||||||
init_alloc_root(&hash_mem_root, 16384, 0);
|
init_alloc_root(&hash_mem_root, 16384, 0);
|
||||||
bzero((char*) &mysql, sizeof(mysql));
|
bzero((char*) &mysql, sizeof(mysql));
|
||||||
|
@ -28,5 +28,6 @@ void init_embedded_mysql(MYSQL *mysql, int client_flag, char *db);
|
|||||||
void *create_embedded_thd(int client_flag, char *db);
|
void *create_embedded_thd(int client_flag, char *db);
|
||||||
int check_embedded_connection(MYSQL *mysql);
|
int check_embedded_connection(MYSQL *mysql);
|
||||||
void free_old_query(MYSQL *mysql);
|
void free_old_query(MYSQL *mysql);
|
||||||
|
void embedded_get_error(MYSQL *mysql);
|
||||||
extern MYSQL_METHODS embedded_methods;
|
extern MYSQL_METHODS embedded_methods;
|
||||||
C_MODE_END
|
C_MODE_END
|
||||||
|
@ -42,6 +42,22 @@ C_MODE_START
|
|||||||
#include "errmsg.h"
|
#include "errmsg.h"
|
||||||
#include <sql_common.h>
|
#include <sql_common.h>
|
||||||
|
|
||||||
|
void embedded_get_error(MYSQL *mysql)
|
||||||
|
{
|
||||||
|
THD *thd=(THD *) mysql->thd;
|
||||||
|
NET *net= &mysql->net;
|
||||||
|
if ((net->last_errno= thd->net.last_errno))
|
||||||
|
{
|
||||||
|
memcpy(net->last_error, thd->net.last_error, sizeof(net->last_error));
|
||||||
|
memcpy(net->sqlstate, thd->net.sqlstate, sizeof(net->sqlstate));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
net->last_error[0]= 0;
|
||||||
|
strmov(net->sqlstate, not_error_sqlstate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static my_bool
|
static my_bool
|
||||||
emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
|
emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
|
||||||
const char *header, ulong header_length,
|
const char *header, ulong header_length,
|
||||||
@ -86,16 +102,7 @@ emb_advanced_command(MYSQL *mysql, enum enum_server_command command,
|
|||||||
if (!skip_check)
|
if (!skip_check)
|
||||||
result= thd->net.last_errno ? -1 : 0;
|
result= thd->net.last_errno ? -1 : 0;
|
||||||
|
|
||||||
if ((net->last_errno= thd->net.last_errno))
|
embedded_get_error(mysql);
|
||||||
{
|
|
||||||
memcpy(net->last_error, thd->net.last_error, sizeof(net->last_error));
|
|
||||||
memcpy(net->sqlstate, thd->net.sqlstate, sizeof(net->sqlstate));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
net->last_error[0]= 0;
|
|
||||||
strmov(net->sqlstate, not_error_sqlstate);
|
|
||||||
}
|
|
||||||
mysql->server_status= thd->server_status;
|
mysql->server_status= thd->server_status;
|
||||||
mysql->warning_count= ((THD*)mysql->thd)->total_warn_count;
|
mysql->warning_count= ((THD*)mysql->thd)->total_warn_count;
|
||||||
return result;
|
return result;
|
||||||
@ -239,6 +246,7 @@ static void emb_free_embedded_thd(MYSQL *mysql)
|
|||||||
free_rows(thd->data);
|
free_rows(thd->data);
|
||||||
thread_count--;
|
thread_count--;
|
||||||
delete thd;
|
delete thd;
|
||||||
|
mysql->thd=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char * emb_read_statistics(MYSQL *mysql)
|
static const char * emb_read_statistics(MYSQL *mysql)
|
||||||
@ -498,8 +506,7 @@ int check_embedded_connection(MYSQL *mysql)
|
|||||||
thd->host= (char*)my_localhost;
|
thd->host= (char*)my_localhost;
|
||||||
thd->host_or_ip= thd->host;
|
thd->host_or_ip= thd->host;
|
||||||
thd->user= my_strdup(mysql->user, MYF(0));
|
thd->user= my_strdup(mysql->user, MYF(0));
|
||||||
check_user(thd, COM_CONNECT, NULL, 0, thd->db, true);
|
return check_user(thd, COM_CONNECT, NULL, 0, thd->db, true);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
@ -232,6 +232,7 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
|
|||||||
DBUG_RETURN(mysql);
|
DBUG_RETURN(mysql);
|
||||||
|
|
||||||
error:
|
error:
|
||||||
|
embedded_get_error(mysql);
|
||||||
DBUG_PRINT("error",("message: %u (%s)", mysql->net.last_errno,
|
DBUG_PRINT("error",("message: %u (%s)", mysql->net.last_errno,
|
||||||
mysql->net.last_error));
|
mysql->net.last_error));
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user