summaryrefslogtreecommitdiff
path: root/libmysql
diff options
context:
space:
mode:
authorunknown <Sinisa@sinisa.nasamreza.org>2003-02-22 17:14:50 +0200
committerunknown <Sinisa@sinisa.nasamreza.org>2003-02-22 17:14:50 +0200
commit17a76b00c65ef8da504bee2163a276b989bfe7f7 (patch)
tree8220b0ddede3a4122157e73888b9261d97c11ad0 /libmysql
parent72065f34e674d5dcbb8a6c7d6e96609fbb3ecab7 (diff)
parent8d05f9ef3eedafc10a9b37781240d6f286c27f37 (diff)
downloadmariadb-git-17a76b00c65ef8da504bee2163a276b989bfe7f7.tar.gz
merge fix
client/mysql.cc: Auto merged libmysql/libmysql.c: Auto merged sql/sql_yacc.yy: Auto merged
Diffstat (limited to 'libmysql')
-rw-r--r--libmysql/libmysql.c37
1 files changed, 21 insertions, 16 deletions
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c
index 95b3250ae94..9f113f4c1b6 100644
--- a/libmysql/libmysql.c
+++ b/libmysql/libmysql.c
@@ -774,7 +774,8 @@ char* getlogin(void);
/* default to "root" on NetWare */
static void read_user_name(char *name)
{
- (void)strmake(name,"root", USERNAME_LENGTH);
+ char *str=getenv("USER");
+ strmake(name, str ? str : "UNKNOWN_USER", USERNAME_LENGTH);
}
#elif !defined(MSDOS) && ! defined(VMS) && !defined(__WIN__) && !defined(OS2)
@@ -1776,7 +1777,7 @@ mysql_init(MYSQL *mysql)
outside program.
*/
-void STDCALL mysql_once_init(void)
+void mysql_once_init(void)
{
if (!mysql_client_init)
{
@@ -4373,7 +4374,6 @@ int STDCALL mysql_execute(MYSQL_STMT *stmt)
set_stmt_error(stmt, CR_NO_PREPARE_STMT);
DBUG_RETURN(1);
}
- stmt->mysql->fields= stmt->fields;
if (stmt->param_count)
{
NET *net= &stmt->mysql->net;
@@ -5433,12 +5433,15 @@ int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt)
static my_bool stmt_close(MYSQL_STMT *stmt, my_bool skip_list)
{
MYSQL *mysql;
- my_bool error= 0;
DBUG_ENTER("mysql_stmt_close");
DBUG_ASSERT(stmt != 0);
- mysql= stmt->mysql;
+ if (!(mysql= stmt->mysql))
+ {
+ my_free((gptr) stmt, MYF(MY_WME));
+ DBUG_RETURN(0);
+ }
if (mysql->status != MYSQL_STATUS_READY)
{
/* Clear the current execution status */
@@ -5457,18 +5460,20 @@ static my_bool stmt_close(MYSQL_STMT *stmt, my_bool skip_list)
{
char buff[4];
int4store(buff, stmt->stmt_id);
- error= simple_command(mysql, COM_CLOSE_STMT, buff, 4, 1);
- }
- if (!error)
- {
- mysql_free_result(stmt->result);
- free_root(&stmt->mem_root, MYF(0));
- if (!skip_list)
- mysql->stmts= list_delete(mysql->stmts, &stmt->list);
- mysql->status= MYSQL_STATUS_READY;
- my_free((gptr) stmt, MYF(MY_WME));
+ if (simple_command(mysql, COM_CLOSE_STMT, buff, 4, 1))
+ {
+ set_stmt_errmsg(stmt, mysql->net.last_error, mysql->net.last_errno);
+ stmt->mysql= NULL; /* connection isn't valid anymore */
+ DBUG_RETURN(1);
+ }
}
- DBUG_RETURN(error);
+ mysql_free_result(stmt->result);
+ free_root(&stmt->mem_root, MYF(0));
+ if (!skip_list)
+ mysql->stmts= list_delete(mysql->stmts, &stmt->list);
+ mysql->status= MYSQL_STATUS_READY;
+ my_free((gptr) stmt, MYF(MY_WME));
+ DBUG_RETURN(0);
}
my_bool STDCALL mysql_stmt_close(MYSQL_STMT *stmt)