diff options
author | unknown <Sinisa@sinisa.nasamreza.org> | 2002-05-29 15:21:06 +0300 |
---|---|---|
committer | unknown <Sinisa@sinisa.nasamreza.org> | 2002-05-29 15:21:06 +0300 |
commit | aea0ae808f28983bbe2d9dcff7f1c83e781903cb (patch) | |
tree | 49244c17caa608a7a6b44230e617d42fa3ba15ca /sql | |
parent | 9e279bde1289dfb30ef813839898434dcf64cc6a (diff) | |
download | mariadb-git-aea0ae808f28983bbe2d9dcff7f1c83e781903cb.tar.gz |
Some fixes for user resources management
Diffstat (limited to 'sql')
-rw-r--r-- | sql/sql_parse.cc | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 123a95070b9..4b4c085814a 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -160,7 +160,7 @@ static int get_or_create_user_conn(THD *thd, const char *user, uc->connections = 1; uc->questions=uc->updates=uc->conn_per_hour=0; uc->user_resources=*mqh; - if (mqh->connections > max_user_connections) + if (max_user_connections && mqh->connections > max_user_connections) uc->user_resources.connections = max_user_connections; uc->intime=thd->thr_create_time; if (hash_insert(&hash_user_connections, (byte*) uc)) @@ -298,7 +298,7 @@ static int check_for_max_user_connections(USER_CONN *uc) goto end; } uc->connections++; -if (uc->user_resources.connections && uc->conn_per_hour++ >= uc->user_resources.connections) + if (uc->user_resources.connections && uc->conn_per_hour++ >= uc->user_resources.connections) { net_printf(¤t_thd->net, ER_USER_LIMIT_REACHED, uc->user, "max_connections", (long) uc->user_resources.connections); @@ -317,12 +317,7 @@ static void decrease_user_connections(USER_CONN *uc) */ DBUG_ENTER("decrease_user_connections"); - if (mqh_used) - { - if (uc->conn_per_hour) - uc->conn_per_hour--; - } - else if (!--uc->connections) + if (!mqh_used && uc->connections && !--uc->connections) { /* Last connection for user; Delete it */ (void) pthread_mutex_lock(&LOCK_user_conn); |