Commit acbacd92 authored by anozdrin@mysql.com's avatar anozdrin@mysql.com

Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new

into  mysql.com:/home/alik/MySQL/devel/5.1-bug15110
parents b1705ae5 f4bb80b6
...@@ -273,6 +273,7 @@ typedef struct ...@@ -273,6 +273,7 @@ typedef struct
int alloced_len; int alloced_len;
int int_dirty; /* do not update string if int is updated until first read */ int int_dirty; /* do not update string if int is updated until first read */
int alloced; int alloced;
char *env_s;
} VAR; } VAR;
#if defined(__NETWARE__) || defined(__WIN__) #if defined(__NETWARE__) || defined(__WIN__)
...@@ -885,16 +886,18 @@ int var_set(const char *var_name, const char *var_name_end, ...@@ -885,16 +886,18 @@ int var_set(const char *var_name, const char *var_name_end,
if (env_var) if (env_var)
{ {
char buf[1024]; char buf[1024], *old_env_s= v->env_s;
memcpy(buf, v->name, v->name_len);
buf[v->name_len]= 0;
if (v->int_dirty) if (v->int_dirty)
{ {
sprintf(v->str_val, "%d", v->int_val); sprintf(v->str_val, "%d", v->int_val);
v->int_dirty= 0; v->int_dirty= 0;
v->str_val_len= strlen(v->str_val); v->str_val_len= strlen(v->str_val);
} }
setenv(buf, v->str_val, 1); strxmov(buf, v->name, "=", v->str_val, NullS);
if (!(v->env_s= my_strdup(buf, MYF(MY_WME))))
die("Out of memory");
putenv(v->env_s);
my_free((gptr)old_env_s, MYF(MY_ALLOW_ZERO_PTR));
} }
DBUG_RETURN(result); DBUG_RETURN(result);
} }
...@@ -4335,6 +4338,7 @@ static VAR *var_init(VAR *v, const char *name, int name_len, const char *val, ...@@ -4335,6 +4338,7 @@ static VAR *var_init(VAR *v, const char *name, int name_len, const char *val,
tmp_var->alloced_len = val_alloc_len; tmp_var->alloced_len = val_alloc_len;
tmp_var->int_val = (val) ? atoi(val) : 0; tmp_var->int_val = (val) ? atoi(val) : 0;
tmp_var->int_dirty = 0; tmp_var->int_dirty = 0;
tmp_var->env_s = 0;
return tmp_var; return tmp_var;
} }
......
...@@ -245,11 +245,12 @@ if [ -n "$MTR_BUILD_THREAD" ] ; then ...@@ -245,11 +245,12 @@ if [ -n "$MTR_BUILD_THREAD" ] ; then
SLAVE_MYPORT=`expr $MASTER_MYPORT + 3` SLAVE_MYPORT=`expr $MASTER_MYPORT + 3`
NDBCLUSTER_PORT=`expr $MASTER_MYPORT + 4` NDBCLUSTER_PORT=`expr $MASTER_MYPORT + 4`
echo "Using MTR_BUILD_THREAD = $MTR_BUILD_THREAD" echo "Using MTR_BUILD_THREAD = $MTR_BUILD_THREAD"
echo "Using MASTER_MYPORT = $MASTER_MYPORT" echo "Using MASTER_MYPORT = $MASTER_MYPORT"
echo "Using MYSQL_MANAGER_PORT = $MYSQL_MANAGER_PORT" echo "Using MYSQL_MANAGER_PORT = $MYSQL_MANAGER_PORT"
echo "Using SLAVE_MYPORT = $SLAVE_MYPORT" echo "Using SLAVE_MYPORT = $SLAVE_MYPORT"
echo "Using NDBCLUSTER_PORT = $NDBCLUSTER_PORT" echo "Using NDBCLUSTER_PORT = $NDBCLUSTER_PORT"
echo "Using NDBCLUSTER_PORT_SLAVE = $NDBCLUSTER_PORT_SLAVE"
fi fi
NO_SLAVE=0 NO_SLAVE=0
......
...@@ -20,8 +20,6 @@ subselect : Bug#15706 ...@@ -20,8 +20,6 @@ subselect : Bug#15706
ps_7ndb : dbug assert in RBR mode when executing test suite ps_7ndb : dbug assert in RBR mode when executing test suite
rpl_ddl : Bug#15963 SBR does not show "Definer" correctly rpl_ddl : Bug#15963 SBR does not show "Definer" correctly
events : Affects flush test case. A table lock not released somewhere events : Affects flush test case. A table lock not released somewhere
ndb_autodiscover : TBF with CR
ndb_autodiscover2 : TBF with CR
ndb_binlog_basic : Results are not deterministic, Tomas will fix ndb_binlog_basic : Results are not deterministic, Tomas will fix
rpl_ndb_basic : Bug#16228 rpl_ndb_basic : Bug#16228
rpl_sp : Bug #16456 rpl_sp : Bug #16456
...@@ -6441,7 +6441,7 @@ NDB_SHARE *ndbcluster_get_share(const char *key, TABLE *table, ...@@ -6441,7 +6441,7 @@ NDB_SHARE *ndbcluster_get_share(const char *key, TABLE *table,
DBUG_PRINT("error", ("get_share: %s does not exist", key)); DBUG_PRINT("error", ("get_share: %s does not exist", key));
if (!have_lock) if (!have_lock)
pthread_mutex_unlock(&ndbcluster_mutex); pthread_mutex_unlock(&ndbcluster_mutex);
return 0; DBUG_RETURN(0);
} }
if ((share= (NDB_SHARE*) my_malloc(sizeof(*share), if ((share= (NDB_SHARE*) my_malloc(sizeof(*share),
MYF(MY_WME | MY_ZEROFILL)))) MYF(MY_WME | MY_ZEROFILL))))
...@@ -6463,7 +6463,7 @@ NDB_SHARE *ndbcluster_get_share(const char *key, TABLE *table, ...@@ -6463,7 +6463,7 @@ NDB_SHARE *ndbcluster_get_share(const char *key, TABLE *table,
*root_ptr= old_root; *root_ptr= old_root;
if (!have_lock) if (!have_lock)
pthread_mutex_unlock(&ndbcluster_mutex); pthread_mutex_unlock(&ndbcluster_mutex);
return 0; DBUG_RETURN(0);
} }
thr_lock_init(&share->lock); thr_lock_init(&share->lock);
pthread_mutex_init(&share->mutex, MY_MUTEX_INIT_FAST); pthread_mutex_init(&share->mutex, MY_MUTEX_INIT_FAST);
...@@ -6484,7 +6484,7 @@ NDB_SHARE *ndbcluster_get_share(const char *key, TABLE *table, ...@@ -6484,7 +6484,7 @@ NDB_SHARE *ndbcluster_get_share(const char *key, TABLE *table,
if (!have_lock) if (!have_lock)
pthread_mutex_unlock(&ndbcluster_mutex); pthread_mutex_unlock(&ndbcluster_mutex);
my_error(ER_OUTOFMEMORY, MYF(0), sizeof(*share)); my_error(ER_OUTOFMEMORY, MYF(0), sizeof(*share));
return 0; DBUG_RETURN(0);
} }
} }
share->use_count++; share->use_count++;
...@@ -6500,7 +6500,7 @@ NDB_SHARE *ndbcluster_get_share(const char *key, TABLE *table, ...@@ -6500,7 +6500,7 @@ NDB_SHARE *ndbcluster_get_share(const char *key, TABLE *table,
share->use_count, share->commit_count)); share->use_count, share->commit_count));
if (!have_lock) if (!have_lock)
pthread_mutex_unlock(&ndbcluster_mutex); pthread_mutex_unlock(&ndbcluster_mutex);
return share; DBUG_RETURN(share);
} }
void ndbcluster_real_free_share(NDB_SHARE **share) void ndbcluster_real_free_share(NDB_SHARE **share)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment