Commit bf6b46bb authored by unknown's avatar unknown

Merge mysql.com:/home/mydev/mysql-5.0

into mysql.com:/home/mydev/mysql-5.0-5000


sql/set_var.cc:
  Auto merged
parents 01e84598 147640b8
...@@ -259,6 +259,8 @@ extern char wild_many,wild_one,wild_prefix; ...@@ -259,6 +259,8 @@ extern char wild_many,wild_one,wild_prefix;
extern const char *charsets_dir; extern const char *charsets_dir;
extern char *defaults_extra_file; extern char *defaults_extra_file;
extern my_bool timed_mutexes;
typedef struct wild_file_pack /* Struct to hold info when selecting files */ typedef struct wild_file_pack /* Struct to hold info when selecting files */
{ {
uint wilds; /* How many wildcards */ uint wilds; /* How many wildcards */
......
#################### include/testdb_only.inc ######################
# #
# We must prevent to work on databases created by customers, #
# because we DROP/CREATE/MODIFY objects with sometimes common #
# names like STAFF, EMPLOYEE etc. #
# #
# Therefore we check the environment variable USE_RUNNING_SERVER. #
# USE_RUNNING_SERVER is exported by "mysql-test-run" and could #
# contain the following values: #
# 0 -- mysql-test-run was started without the --extern option #
# That means the test will be performed within the test #
# area 'mysql-test/var/...' . #
# 1 -- mysql-test-run was started with the --extern option #
# That means the test will be performed by an already #
# running server and data modifications will most probably #
# outside of the common test area 'mysql-test/var/...' . #
# #
# If USE_RUNNING_SERVER is not 0 the test will be skipped. #
# #
###################################################################
--disable_query_log
eval set @USE_RUNNING_SERVER= '$USE_RUNNING_SERVER';
--require r/testdb_only.require
SELECT 'use extern server'
AS "Variable_name ",
IF(@USE_RUNNING_SERVER= '1','YES',
IF(@USE_RUNNING_SERVER= '0','NO','UNEXPECTED'))
AS "Value" ;
--enable_query_log
...@@ -224,7 +224,7 @@ EXTRA_MASTER_OPT="" ...@@ -224,7 +224,7 @@ EXTRA_MASTER_OPT=""
EXTRA_MYSQL_TEST_OPT="" EXTRA_MYSQL_TEST_OPT=""
EXTRA_MYSQLDUMP_OPT="" EXTRA_MYSQLDUMP_OPT=""
EXTRA_MYSQLBINLOG_OPT="" EXTRA_MYSQLBINLOG_OPT=""
USE_RUNNING_SERVER="" USE_RUNNING_SERVER=0
USE_NDBCLUSTER="" USE_NDBCLUSTER=""
USE_RUNNING_NDBCLUSTER="" USE_RUNNING_NDBCLUSTER=""
DO_GCOV="" DO_GCOV=""
...@@ -255,7 +255,7 @@ NDBD_EXTRA_OPTS= ...@@ -255,7 +255,7 @@ NDBD_EXTRA_OPTS=
while test $# -gt 0; do while test $# -gt 0; do
case "$1" in case "$1" in
--embedded-server) USE_EMBEDDED_SERVER=1 USE_MANAGER=0 NO_SLAVE=1 ; \ --embedded-server) USE_EMBEDDED_SERVER=1 USE_MANAGER=0 NO_SLAVE=1 ; \
USE_RUNNING_SERVER="" RESULT_EXT=".es" TEST_MODE="embedded" ;; USE_RUNNING_SERVER=0 RESULT_EXT=".es" TEST_MODE="embedded" ;;
--user=*) DBUSER=`$ECHO "$1" | $SED -e "s;--user=;;"` ;; --user=*) DBUSER=`$ECHO "$1" | $SED -e "s;--user=;;"` ;;
--force) FORCE=1 ;; --force) FORCE=1 ;;
--timer) USE_TIMER=1 ;; --timer) USE_TIMER=1 ;;
...@@ -265,8 +265,8 @@ while test $# -gt 0; do ...@@ -265,8 +265,8 @@ while test $# -gt 0; do
MASTER_MYSQLD=`$ECHO "$1" | $SED -e "s;--master-binary=;;"` ;; MASTER_MYSQLD=`$ECHO "$1" | $SED -e "s;--master-binary=;;"` ;;
--slave-binary=*) --slave-binary=*)
SLAVE_MYSQLD=`$ECHO "$1" | $SED -e "s;--slave-binary=;;"` ;; SLAVE_MYSQLD=`$ECHO "$1" | $SED -e "s;--slave-binary=;;"` ;;
--local) USE_RUNNING_SERVER="" ;; --local) USE_RUNNING_SERVER=0 ;;
--extern) USE_RUNNING_SERVER="1" ;; --extern) USE_RUNNING_SERVER=1 ;;
--with-ndbcluster) --with-ndbcluster)
USE_NDBCLUSTER="--ndbcluster" ;; USE_NDBCLUSTER="--ndbcluster" ;;
--ndb-connectstring=*) --ndb-connectstring=*)
...@@ -303,7 +303,7 @@ while test $# -gt 0; do ...@@ -303,7 +303,7 @@ while test $# -gt 0; do
--no-manager | --skip-manager) USE_MANAGER=0 ;; --no-manager | --skip-manager) USE_MANAGER=0 ;;
--manager) --manager)
USE_MANAGER=1 USE_MANAGER=1
USE_RUNNING_SERVER= USE_RUNNING_SERVER=0
;; ;;
--start-and-exit) --start-and-exit)
START_AND_EXIT=1 START_AND_EXIT=1
...@@ -372,7 +372,7 @@ while test $# -gt 0; do ...@@ -372,7 +372,7 @@ while test $# -gt 0; do
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb"
# This needs to be checked properly # This needs to be checked properly
# USE_MANAGER=1 # USE_MANAGER=1
USE_RUNNING_SERVER="" USE_RUNNING_SERVER=0
;; ;;
--client-gdb ) --client-gdb )
if [ x$BINARY_DIST = x1 ] ; then if [ x$BINARY_DIST = x1 ] ; then
...@@ -385,7 +385,7 @@ while test $# -gt 0; do ...@@ -385,7 +385,7 @@ while test $# -gt 0; do
--manual-gdb ) --manual-gdb )
DO_GDB=1 DO_GDB=1
MANUAL_GDB=1 MANUAL_GDB=1
USE_RUNNING_SERVER="" USE_RUNNING_SERVER=0
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --gdb" EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --gdb"
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb"
;; ;;
...@@ -394,7 +394,7 @@ while test $# -gt 0; do ...@@ -394,7 +394,7 @@ while test $# -gt 0; do
$ECHO "Note: you will get more meaningful output on a source distribution compiled with debugging option when running tests with --ddd option" $ECHO "Note: you will get more meaningful output on a source distribution compiled with debugging option when running tests with --ddd option"
fi fi
DO_DDD=1 DO_DDD=1
USE_RUNNING_SERVER="" USE_RUNNING_SERVER=0
EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --gdb" EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT --gdb"
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --gdb"
;; ;;
...@@ -412,7 +412,7 @@ while test $# -gt 0; do ...@@ -412,7 +412,7 @@ while test $# -gt 0; do
EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --skip-safemalloc --skip-bdb" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT --skip-safemalloc --skip-bdb"
SLEEP_TIME_AFTER_RESTART=10 SLEEP_TIME_AFTER_RESTART=10
SLEEP_TIME_FOR_DELETE=60 SLEEP_TIME_FOR_DELETE=60
USE_RUNNING_SERVER="" USE_RUNNING_SERVER=0
if test "$1" = "--valgrind-all" if test "$1" = "--valgrind-all"
then then
VALGRIND="$VALGRIND -v --show-reachable=yes" VALGRIND="$VALGRIND -v --show-reachable=yes"
...@@ -627,9 +627,9 @@ fi ...@@ -627,9 +627,9 @@ fi
if [ -z "$1" ] if [ -z "$1" ]
then then
USE_RUNNING_SERVER="" USE_RUNNING_SERVER=0
fi fi
if [ -n "$USE_RUNNING_SERVER" ] if [ $USE_RUNNING_SERVER -eq 1 ]
then then
MASTER_MYSOCK=$LOCAL_SOCKET; MASTER_MYSOCK=$LOCAL_SOCKET;
DBUSER=${DBUSER:-test} DBUSER=${DBUSER:-test}
...@@ -801,7 +801,7 @@ report_stats () { ...@@ -801,7 +801,7 @@ report_stats () {
$ECHO "http://www.mysql.com/doc/en/MySQL_test_suite.html" $ECHO "http://www.mysql.com/doc/en/MySQL_test_suite.html"
fi fi
if test -z "$USE_RUNNING_SERVER" if [ $USE_RUNNING_SERVER -eq 0 ]
then then
# Report if there was any fatal warnings/errors in the log files # Report if there was any fatal warnings/errors in the log files
...@@ -1511,7 +1511,7 @@ run_testcase () ...@@ -1511,7 +1511,7 @@ run_testcase ()
done done
fi fi
if [ -z "$USE_RUNNING_SERVER" ] ; if [ $USE_RUNNING_SERVER -eq 0 ] ;
then then
if [ -f $master_opt_file ] ; if [ -f $master_opt_file ] ;
then then
...@@ -1655,7 +1655,7 @@ run_testcase () ...@@ -1655,7 +1655,7 @@ run_testcase ()
if [ x$FORCE != x1 ] ; then if [ x$FORCE != x1 ] ; then
$ECHO "Aborting: $tname failed in $TEST_MODE mode. To continue, re-run with '--force'." $ECHO "Aborting: $tname failed in $TEST_MODE mode. To continue, re-run with '--force'."
$ECHO $ECHO
if [ -z "$DO_GDB" ] && [ -z "$USE_RUNNING_SERVER" ] && \ if [ -z "$DO_GDB" ] && [ $USE_RUNNING_SERVER -eq 0 ] && \
[ -z "$DO_DDD" ] && [ -z "$USE_EMBEDDED_SERVER" ] [ -z "$DO_DDD" ] && [ -z "$USE_EMBEDDED_SERVER" ]
then then
mysql_stop mysql_stop
...@@ -1664,7 +1664,7 @@ run_testcase () ...@@ -1664,7 +1664,7 @@ run_testcase ()
exit 1 exit 1
fi fi
FAILED_CASES="$FAILED_CASES $tname" FAILED_CASES="$FAILED_CASES $tname"
if [ -z "$DO_GDB" ] && [ -z "$USE_RUNNING_SERVER" ] && \ if [ -z "$DO_GDB" ] && [ $USE_RUNNING_SERVER -eq 0 ] && \
[ -z "$DO_DDD" ] && [ -z "$USE_EMBEDDED_SERVER" ] [ -z "$DO_DDD" ] && [ -z "$USE_EMBEDDED_SERVER" ]
then then
mysql_restart mysql_restart
...@@ -1683,7 +1683,7 @@ run_testcase () ...@@ -1683,7 +1683,7 @@ run_testcase ()
[ "$DO_GCOV" ] && gcov_prepare [ "$DO_GCOV" ] && gcov_prepare
[ "$DO_GPROF" ] && gprof_prepare [ "$DO_GPROF" ] && gprof_prepare
if [ -z "$USE_RUNNING_SERVER" ] if [ $USE_RUNNING_SERVER -eq 0 ]
then then
if [ -z "$FAST_START" ] if [ -z "$FAST_START" ]
then then
...@@ -1744,6 +1744,9 @@ fi ...@@ -1744,6 +1744,9 @@ fi
$ECHO "Starting Tests" $ECHO "Starting Tests"
# Some test cases need USE_RUNNING_SERVER
export USE_RUNNING_SERVER
# #
# This can probably be deleted # This can probably be deleted
# #
...@@ -1816,7 +1819,7 @@ fi ...@@ -1816,7 +1819,7 @@ fi
$ECHO $DASH72 $ECHO $DASH72
$ECHO $ECHO
if [ -z "$DO_GDB" ] && [ -z "$USE_RUNNING_SERVER" ] && [ -z "$DO_DDD" ] if [ -z "$DO_GDB" ] && [ $USE_RUNNING_SERVER -eq 0 ] && [ -z "$DO_DDD" ]
then then
mysql_stop mysql_stop
fi fi
......
Variable_name Value
use extern server NO
...@@ -6,6 +6,7 @@ delete from mysql.tables_priv where user like 'mysqltest\_%'; ...@@ -6,6 +6,7 @@ delete from mysql.tables_priv where user like 'mysqltest\_%';
delete from mysql.columns_priv where user like 'mysqltest\_%'; delete from mysql.columns_priv where user like 'mysqltest\_%';
flush privileges; flush privileges;
grant usage on *.* to mysqltest_1@localhost with max_queries_per_hour 2; grant usage on *.* to mysqltest_1@localhost with max_queries_per_hour 2;
flush user_resources;
select * from t1; select * from t1;
i i
select * from t1; select * from t1;
...@@ -16,6 +17,7 @@ select * from t1; ...@@ -16,6 +17,7 @@ select * from t1;
ERROR 42000: User 'mysqltest_1' has exceeded the 'max_questions' resource (current value: 2) ERROR 42000: User 'mysqltest_1' has exceeded the 'max_questions' resource (current value: 2)
drop user mysqltest_1@localhost; drop user mysqltest_1@localhost;
grant usage on *.* to mysqltest_1@localhost with max_updates_per_hour 2; grant usage on *.* to mysqltest_1@localhost with max_updates_per_hour 2;
flush user_resources;
select * from t1; select * from t1;
i i
select * from t1; select * from t1;
...@@ -34,6 +36,7 @@ select * from t1; ...@@ -34,6 +36,7 @@ select * from t1;
i i
drop user mysqltest_1@localhost; drop user mysqltest_1@localhost;
grant usage on *.* to mysqltest_1@localhost with max_connections_per_hour 2; grant usage on *.* to mysqltest_1@localhost with max_connections_per_hour 2;
flush user_resources;
select * from t1; select * from t1;
i i
select * from t1; select * from t1;
...@@ -47,6 +50,7 @@ ERROR 42000: User 'mysqltest_1' has exceeded the 'max_connections' resource (cur ...@@ -47,6 +50,7 @@ ERROR 42000: User 'mysqltest_1' has exceeded the 'max_connections' resource (cur
drop user mysqltest_1@localhost; drop user mysqltest_1@localhost;
flush privileges; flush privileges;
grant usage on *.* to mysqltest_1@localhost with max_user_connections 2; grant usage on *.* to mysqltest_1@localhost with max_user_connections 2;
flush user_resources;
select * from t1; select * from t1;
i i
select * from t1; select * from t1;
...@@ -56,6 +60,7 @@ ERROR 42000: User 'mysqltest_1' has exceeded the 'max_user_connections' resource ...@@ -56,6 +60,7 @@ ERROR 42000: User 'mysqltest_1' has exceeded the 'max_user_connections' resource
select * from t1; select * from t1;
i i
grant usage on *.* to mysqltest_1@localhost with max_user_connections 3; grant usage on *.* to mysqltest_1@localhost with max_user_connections 3;
flush user_resources;
select * from t1; select * from t1;
i i
connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK); connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK);
...@@ -71,6 +76,7 @@ select @@session.max_user_connections, @@global.max_user_connections; ...@@ -71,6 +76,7 @@ select @@session.max_user_connections, @@global.max_user_connections;
@@session.max_user_connections @@global.max_user_connections @@session.max_user_connections @@global.max_user_connections
2 2 2 2
grant usage on *.* to mysqltest_1@localhost; grant usage on *.* to mysqltest_1@localhost;
flush user_resources;
select @@session.max_user_connections, @@global.max_user_connections; select @@session.max_user_connections, @@global.max_user_connections;
@@session.max_user_connections @@global.max_user_connections @@session.max_user_connections @@global.max_user_connections
2 2 2 2
...@@ -79,6 +85,7 @@ i ...@@ -79,6 +85,7 @@ i
connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK); connect(localhost,mysqltest_1,,test,MYSQL_PORT,MYSQL_SOCK);
ERROR 42000: User mysqltest_1 already has more than 'max_user_connections' active connections ERROR 42000: User mysqltest_1 already has more than 'max_user_connections' active connections
grant usage on *.* to mysqltest_1@localhost with max_user_connections 3; grant usage on *.* to mysqltest_1@localhost with max_user_connections 3;
flush user_resources;
select @@session.max_user_connections, @@global.max_user_connections; select @@session.max_user_connections, @@global.max_user_connections;
@@session.max_user_connections @@global.max_user_connections @@session.max_user_connections @@global.max_user_connections
3 2 3 2
......
...@@ -19,6 +19,8 @@ flush privileges; ...@@ -19,6 +19,8 @@ flush privileges;
# Test of MAX_QUERIES_PER_HOUR limit # Test of MAX_QUERIES_PER_HOUR limit
grant usage on *.* to mysqltest_1@localhost with max_queries_per_hour 2; grant usage on *.* to mysqltest_1@localhost with max_queries_per_hour 2;
# This ensures that counters are reset and makes test scheduling independent
flush user_resources;
connect (mqph, localhost, mysqltest_1,,); connect (mqph, localhost, mysqltest_1,,);
connection mqph; connection mqph;
select * from t1; select * from t1;
...@@ -37,6 +39,7 @@ disconnect mqph2; ...@@ -37,6 +39,7 @@ disconnect mqph2;
# Test of MAX_UPDATES_PER_HOUR limit # Test of MAX_UPDATES_PER_HOUR limit
grant usage on *.* to mysqltest_1@localhost with max_updates_per_hour 2; grant usage on *.* to mysqltest_1@localhost with max_updates_per_hour 2;
flush user_resources;
connect (muph, localhost, mysqltest_1,,); connect (muph, localhost, mysqltest_1,,);
connection muph; connection muph;
select * from t1; select * from t1;
...@@ -60,6 +63,7 @@ disconnect muph2; ...@@ -60,6 +63,7 @@ disconnect muph2;
# Test of MAX_CONNECTIONS_PER_HOUR limit # Test of MAX_CONNECTIONS_PER_HOUR limit
grant usage on *.* to mysqltest_1@localhost with max_connections_per_hour 2; grant usage on *.* to mysqltest_1@localhost with max_connections_per_hour 2;
flush user_resources;
connect (mcph1, localhost, mysqltest_1,,); connect (mcph1, localhost, mysqltest_1,,);
connection mcph1; connection mcph1;
select * from t1; select * from t1;
...@@ -86,6 +90,7 @@ drop user mysqltest_1@localhost; ...@@ -86,6 +90,7 @@ drop user mysqltest_1@localhost;
# We need this to reset internal mqh_used variable # We need this to reset internal mqh_used variable
flush privileges; flush privileges;
grant usage on *.* to mysqltest_1@localhost with max_user_connections 2; grant usage on *.* to mysqltest_1@localhost with max_user_connections 2;
flush user_resources;
connect (muc1, localhost, mysqltest_1,,); connect (muc1, localhost, mysqltest_1,,);
connection muc1; connection muc1;
select * from t1; select * from t1;
...@@ -102,6 +107,7 @@ select * from t1; ...@@ -102,6 +107,7 @@ select * from t1;
# Changing of limit should also help (and immediately) # Changing of limit should also help (and immediately)
connection default; connection default;
grant usage on *.* to mysqltest_1@localhost with max_user_connections 3; grant usage on *.* to mysqltest_1@localhost with max_user_connections 3;
flush user_resources;
connect (muc4, localhost, mysqltest_1,,); connect (muc4, localhost, mysqltest_1,,);
connection muc4; connection muc4;
select * from t1; select * from t1;
...@@ -127,6 +133,7 @@ set global max_user_connections= 2; ...@@ -127,6 +133,7 @@ set global max_user_connections= 2;
select @@session.max_user_connections, @@global.max_user_connections; select @@session.max_user_connections, @@global.max_user_connections;
# Let us check that global limit works # Let us check that global limit works
grant usage on *.* to mysqltest_1@localhost; grant usage on *.* to mysqltest_1@localhost;
flush user_resources;
connect (muca1, localhost, mysqltest_1,,); connect (muca1, localhost, mysqltest_1,,);
connection muca1; connection muca1;
select @@session.max_user_connections, @@global.max_user_connections; select @@session.max_user_connections, @@global.max_user_connections;
...@@ -139,6 +146,7 @@ connect (muca3, localhost, mysqltest_1,,); ...@@ -139,6 +146,7 @@ connect (muca3, localhost, mysqltest_1,,);
# Now we are testing that per-account limit prevails over gloabl limit # Now we are testing that per-account limit prevails over gloabl limit
connection default; connection default;
grant usage on *.* to mysqltest_1@localhost with max_user_connections 3; grant usage on *.* to mysqltest_1@localhost with max_user_connections 3;
flush user_resources;
connect (muca3, localhost, mysqltest_1,,); connect (muca3, localhost, mysqltest_1,,);
connection muca3; connection muca3;
select @@session.max_user_connections, @@global.max_user_connections; select @@session.max_user_connections, @@global.max_user_connections;
......
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
#include "my_alarm.h" #include "my_alarm.h"
#endif #endif
my_bool timed_mutexes= 0;
/* from my_init */ /* from my_init */
my_string home_dir=0,my_progname=0; my_string home_dir=0,my_progname=0;
char NEAR curr_dir[FN_REFLEN]= {0}, char NEAR curr_dir[FN_REFLEN]= {0},
......
...@@ -1001,8 +1001,7 @@ extern ulong ha_read_count, ha_discover_count; ...@@ -1001,8 +1001,7 @@ extern ulong ha_read_count, ha_discover_count;
extern ulong table_cache_size; extern ulong table_cache_size;
extern ulong max_connections,max_connect_errors, connect_timeout; extern ulong max_connections,max_connect_errors, connect_timeout;
extern ulong slave_net_timeout; extern ulong slave_net_timeout;
extern ulong max_user_connections; extern uint max_user_connections;
extern my_bool timed_mutexes;
extern ulong what_to_log,flush_time; extern ulong what_to_log,flush_time;
extern ulong query_buff_size, thread_stack,thread_stack_min; extern ulong query_buff_size, thread_stack,thread_stack_min;
extern ulong binlog_cache_size, max_binlog_cache_size, open_files_limit; extern ulong binlog_cache_size, max_binlog_cache_size, open_files_limit;
......
...@@ -333,9 +333,9 @@ ulong delayed_insert_errors,flush_time, thread_created; ...@@ -333,9 +333,9 @@ ulong delayed_insert_errors,flush_time, thread_created;
ulong specialflag=0; ulong specialflag=0;
ulong binlog_cache_use= 0, binlog_cache_disk_use= 0; ulong binlog_cache_use= 0, binlog_cache_disk_use= 0;
ulong max_connections,max_used_connections, ulong max_connections,max_used_connections,
max_connect_errors, max_user_connections = 0; max_connect_errors;
uint max_user_connections= 0;
ulong thread_id=1L,current_pid; ulong thread_id=1L,current_pid;
my_bool timed_mutexes= 0;
ulong slow_launch_threads = 0, sync_binlog_period; ulong slow_launch_threads = 0, sync_binlog_period;
ulong expire_logs_days = 0; ulong expire_logs_days = 0;
ulong rpl_recovery_rank=0; ulong rpl_recovery_rank=0;
...@@ -5254,8 +5254,8 @@ The minimum value for this variable is 4096.", ...@@ -5254,8 +5254,8 @@ The minimum value for this variable is 4096.",
REQUIRED_ARG, 32, 1, ~0L, 0, 1, 0}, REQUIRED_ARG, 32, 1, ~0L, 0, 1, 0},
{"max_user_connections", OPT_MAX_USER_CONNECTIONS, {"max_user_connections", OPT_MAX_USER_CONNECTIONS,
"The maximum number of active connections for a single user (0 = no limit).", "The maximum number of active connections for a single user (0 = no limit).",
(gptr*) &max_user_connections, (gptr*) &max_user_connections, 0, GET_ULONG, (gptr*) &max_user_connections, (gptr*) &max_user_connections, 0, GET_UINT,
REQUIRED_ARG, 0, 1, ~0L, 0, 1, 0}, REQUIRED_ARG, 0, 1, ~0, 0, 1, 0},
{"max_write_lock_count", OPT_MAX_WRITE_LOCK_COUNT, {"max_write_lock_count", OPT_MAX_WRITE_LOCK_COUNT,
"After this many write locks, allow some read locks to run in between.", "After this many write locks, allow some read locks to run in between.",
(gptr*) &max_write_lock_count, (gptr*) &max_write_lock_count, 0, GET_ULONG, (gptr*) &max_write_lock_count, (gptr*) &max_write_lock_count, 0, GET_ULONG,
......
...@@ -1601,6 +1601,14 @@ Item *sys_var::item(THD *thd, enum_var_type var_type, LEX_STRING *base) ...@@ -1601,6 +1601,14 @@ Item *sys_var::item(THD *thd, enum_var_type var_type, LEX_STRING *base)
var_type= OPT_GLOBAL; var_type= OPT_GLOBAL;
} }
switch (type()) { switch (type()) {
case SHOW_INT:
{
uint value;
pthread_mutex_lock(&LOCK_global_system_variables);
value= *(uint*) value_ptr(thd, var_type, base);
pthread_mutex_unlock(&LOCK_global_system_variables);
return new Item_uint((int32) value);
}
case SHOW_LONG: case SHOW_LONG:
{ {
ulong value; ulong value;
......
...@@ -740,7 +740,7 @@ class sys_var_max_user_conn : public sys_var_thd ...@@ -740,7 +740,7 @@ class sys_var_max_user_conn : public sys_var_thd
return type != OPT_GLOBAL || !option_limits; return type != OPT_GLOBAL || !option_limits;
} }
void set_default(THD *thd, enum_var_type type); void set_default(THD *thd, enum_var_type type);
SHOW_TYPE type() { return SHOW_LONG; } SHOW_TYPE type() { return SHOW_INT; }
byte *value_ptr(THD *thd, enum_var_type type, LEX_STRING *base); byte *value_ptr(THD *thd, enum_var_type type, LEX_STRING *base);
}; };
......
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