############# mysql-test\t\max_user_connections_func.test ####################
#                                                                            #
# Variable Name: max_user_connections                                        #
# Scope: SESSION                                                             #
# Access Type: Dynamic                                                       #
# Data Type: NUMERIC                                                         #
# Default Value: -                                                           #
# Values:       1-4294967295                                                 #
#                                                                            #
#                                                                            #
# Creation Date: 2008-03-02                                                  #
# Author:  Sharique Abdullah                                                 #
#                                                                            #
# Description: Test Cases of Dynamic System Variable "max_user_connections   #
#              that checks behavior of this variable in the following ways   #
#              * Functionality based on different values                     #
#                                                                            #
# Reference:                                                                 #
#    http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html     #
# option_mysqld_max_user_connections                                         #
#                                                                            #
# Modified: 2008-07-10 HHUNGER: Inserted wait condition                      #
#                                                                            #
##############################################################################

--echo ** Setup **
--echo
#
# Setup
#

--source include/not_embedded.inc

SET @default_max_user_connections = @@global.max_user_connections;

###################################
#Setting value max_user_connection#
###################################

Set Global max_user_connections=2;

--echo '#--------------------FN_DYNVARS_114_01-------------------------#'
########################################
#Should not make more then 2 connection#
########################################

--echo ** Connecting conn1 using username 'root' **
CONNECT (conn1,localhost,root,,);

--echo ** Connecting conn2 using username 'root' **
CONNECT (conn2,localhost,root,,);

--echo ** Connecting conn3 using username 'root' **
--disable_query_log
--Error ER_TOO_MANY_USER_CONNECTIONS
CONNECT (conn3,localhost,root,,);
--enable_query_log
--echo Expected error "too many connections"

--echo ** Disconnecting conn1 **
DISCONNECT conn1;

--echo ** Poll till disconnected conn1 disappears from processlist
let $wait_condition= SELECT count(id) <= 2
   FROM information_schema.processlist WHERE user = 'root';
--source include/wait_condition.inc

--echo '#--------------------FN_DYNVARS_114_02-------------------------#'
#####################################################
#Set value to 3 and see if 3 connections can be made#
#####################################################

Set Global max_user_connections=3;
--echo ** Connecting conn5 using username 'root' **
CONNECT (conn5,localhost,root,,);
--echo ** Connecting conn6 using username 'root' **
CONNECT (conn6,localhost,root,,);

#
# Cleanup
#

--echo ** Connection default **
CONNECTION default;

--echo ** Disconnecting conn5, conn6 **
DISCONNECT conn2;
DISCONNECT conn5;
DISCONNECT conn6;

SET @@global.max_user_connections = @default_max_user_connections;

