Commit 0c401332 authored by Alexander Nozdrin's avatar Alexander Nozdrin

Auto-merge from mysql-next-4284.

parents e3d20efd a7a89c88
...@@ -83,7 +83,6 @@ enum enum_thr_lock_result { THR_LOCK_SUCCESS= 0, THR_LOCK_ABORTED= 1, ...@@ -83,7 +83,6 @@ enum enum_thr_lock_result { THR_LOCK_SUCCESS= 0, THR_LOCK_ABORTED= 1,
extern ulong max_write_lock_count; extern ulong max_write_lock_count;
extern ulong table_lock_wait_timeout;
extern my_bool thr_lock_inited; extern my_bool thr_lock_inited;
extern enum thr_lock_type thr_upgraded_concurrent_insert_lock; extern enum thr_lock_type thr_upgraded_concurrent_insert_lock;
......
...@@ -717,10 +717,6 @@ The following options may be given as the first argument: ...@@ -717,10 +717,6 @@ The following options may be given as the first argument:
--table-cache=# Deprecated; use --table-open-cache instead. --table-cache=# Deprecated; use --table-open-cache instead.
--table-definition-cache=# --table-definition-cache=#
The number of cached table definitions The number of cached table definitions
--table-lock-wait-timeout=#
Timeout in seconds to wait for a table level lock before
returning an error. Used only if the connection has
active cursors
--table-open-cache=# --table-open-cache=#
The number of cached open tables The number of cached open tables
--tc-heuristic-recover=name --tc-heuristic-recover=name
...@@ -983,7 +979,6 @@ sync-relay-log-info 0 ...@@ -983,7 +979,6 @@ sync-relay-log-info 0
sysdate-is-now FALSE sysdate-is-now FALSE
table-cache 400 table-cache 400
table-definition-cache 400 table-definition-cache 400
table-lock-wait-timeout 50
table-open-cache 400 table-open-cache 400
tc-heuristic-recover COMMIT tc-heuristic-recover COMMIT
thread-cache-size 0 thread-cache-size 0
......
...@@ -721,10 +721,6 @@ The following options may be given as the first argument: ...@@ -721,10 +721,6 @@ The following options may be given as the first argument:
--table-cache=# Deprecated; use --table-open-cache instead. --table-cache=# Deprecated; use --table-open-cache instead.
--table-definition-cache=# --table-definition-cache=#
The number of cached table definitions The number of cached table definitions
--table-lock-wait-timeout=#
Timeout in seconds to wait for a table level lock before
returning an error. Used only if the connection has
active cursors
--table-open-cache=# --table-open-cache=#
The number of cached open tables The number of cached open tables
--tc-heuristic-recover=name --tc-heuristic-recover=name
...@@ -989,7 +985,6 @@ sync-relay-log-info 0 ...@@ -989,7 +985,6 @@ sync-relay-log-info 0
sysdate-is-now FALSE sysdate-is-now FALSE
table-cache 400 table-cache 400
table-definition-cache 400 table-definition-cache 400
table-lock-wait-timeout 50
table-open-cache 400 table-open-cache 400
tc-heuristic-recover COMMIT tc-heuristic-recover COMMIT
thread-cache-size 0 thread-cache-size 0
......
...@@ -1066,11 +1066,9 @@ set global default_storage_engine =@my_storage_engine; ...@@ -1066,11 +1066,9 @@ set global default_storage_engine =@my_storage_engine;
set global thread_cache_size =@my_thread_cache_size; set global thread_cache_size =@my_thread_cache_size;
set global max_allowed_packet =@my_max_allowed_packet; set global max_allowed_packet =@my_max_allowed_packet;
set global join_buffer_size =@my_join_buffer_size; set global join_buffer_size =@my_join_buffer_size;
show global variables where Variable_name='table_definition_cache' or show global variables where Variable_name='table_definition_cache';
Variable_name='table_lock_wait_timeout';
Variable_name Value Variable_name Value
table_definition_cache # table_definition_cache #
table_lock_wait_timeout #
# -- # --
# -- Bug#34820: log_output can be set to illegal value. # -- Bug#34820: log_output can be set to illegal value.
......
SET @start_value = @@global.table_lock_wait_timeout;
SELECT @start_value;
@start_value
50
'#--------------------FN_DYNVARS_001_01------------------------#'
SET @@global.table_lock_wait_timeout = 99;
SET @@global.table_lock_wait_timeout = DeFAULT;
SELECT @@global.table_lock_wait_timeout;
@@global.table_lock_wait_timeout
50
'#---------------------FN_DYNVARS_001_02-------------------------#'
SET @@global.table_lock_wait_timeout =Default;
SELECT @@global.table_lock_wait_timeout = 50;
@@global.table_lock_wait_timeout = 50
1
'#--------------------FN_DYNVARS_001_03------------------------#'
SET @@global.table_lock_wait_timeout = 8;
SELECT @@global.table_lock_wait_timeout ;
@@global.table_lock_wait_timeout
8
SET @@global.table_lock_wait_timeout = 1;
SELECT @@global.table_lock_wait_timeout ;
@@global.table_lock_wait_timeout
1
SET @@global.table_lock_wait_timeout = 1073741824;
SELECT @@global.table_lock_wait_timeout ;
@@global.table_lock_wait_timeout
1073741824
SET @@global.table_lock_wait_timeout = 18000;
SELECT @@global.table_lock_wait_timeout ;
@@global.table_lock_wait_timeout
18000
SET @@global.table_lock_wait_timeout = 65535;
SELECT @@global.table_lock_wait_timeout ;
@@global.table_lock_wait_timeout
65535
'#--------------------FN_DYNVARS_001_04-------------------------#'
SET @@global.table_lock_wait_timeout = -1;
Warnings:
Warning 1292 Truncated incorrect table_lock_wait_timeout value: '-1'
SET @@global.table_lock_wait_timeout= 100000000000;
Warnings:
Warning 1292 Truncated incorrect table_lock_wait_timeout value: '100000000000'
SET @@global.table_lock_wait_timeout= -1024;
Warnings:
Warning 1292 Truncated incorrect table_lock_wait_timeout value: '-1024'
SET @@global.table_lock_wait_timeout= 0;
Warnings:
Warning 1292 Truncated incorrect table_lock_wait_timeout value: '0'
SET @@global.table_lock_wait_timeout= 10000.01;
ERROR 42000: Incorrect argument type to variable 'table_lock_wait_timeout'
SET @@global.table_lock_wait_timeout= ON;
ERROR 42000: Incorrect argument type to variable 'table_lock_wait_timeout'
SET @@global.table_lock_wait_timeout= 'test';
ERROR 42000: Incorrect argument type to variable 'table_lock_wait_timeout'
SET @@global.table_lock_wait_timeout= '';
ERROR 42000: Incorrect argument type to variable 'table_lock_wait_timeout'
'#-------------------FN_DYNVARS_001_05----------------------------#'
SET @@session.table_lock_wait_timeout= 0;
ERROR HY000: Variable 'table_lock_wait_timeout' is a GLOBAL variable and should be set with SET GLOBAL
SELECT @@table_lock_wait_timeout;
@@table_lock_wait_timeout
1
'#----------------------FN_DYNVARS_001_06------------------------#'
SELECT @@global.table_lock_wait_timeout= VARIABLE_VALUE
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME='table_lock_wait_timeout';
@@global.table_lock_wait_timeout= VARIABLE_VALUE
1
'#---------------------FN_DYNVARS_001_09----------------------#'
SET @@global.table_lock_wait_timeout= TRUE;
SELECT @@global.table_lock_wait_timeout;
@@global.table_lock_wait_timeout
1
SET @@global.table_lock_wait_timeout= FALSE;
Warnings:
Warning 1292 Truncated incorrect table_lock_wait_timeout value: '0'
SELECT @@global.table_lock_wait_timeout;
@@global.table_lock_wait_timeout
1
'#---------------------FN_DYNVARS_001_10----------------------#'
SET @@global.table_lock_wait_timeout= 10;
SELECT @@table_lock_wait_timeout= @@global.table_lock_wait_timeout;
@@table_lock_wait_timeout= @@global.table_lock_wait_timeout
1
'#---------------------FN_DYNVARS_001_11----------------------#'
SET table_lock_wait_timeout= 8;
ERROR HY000: Variable 'table_lock_wait_timeout' is a GLOBAL variable and should be set with SET GLOBAL
SET global.table_lock_wait_timeout= 10;
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'table_lock_wait_timeout= 10' at line 1
SELECT global.table_lock_wait_timeout;
ERROR 42S02: Unknown table 'global' in field list
SELECT table_lock_wait_timeout= @@session.table_lock_wait_timeout;
ERROR 42S22: Unknown column 'table_lock_wait_timeout' in 'field list'
SET @@global.table_lock_wait_timeout= @start_value;
SELECT @@global.table_lock_wait_timeout;
@@global.table_lock_wait_timeout
50
############## mysql-test\t\table_lock_wait_timeout_basic.test ################
# #
# Variable Name: table_lock_wait _timeout #
# Scope: GLOBAL #
# Access Type: Dynamic #
# Data Type: numeric #
# Default Value: 50 #
# Range: 1-1073741824 #
# #
# #
# Creation Date: 2008-02-14 #
# Author: Salman #
# #
# Description: Test Cases of Dynamic System Variable table_lock_wait_timeout #
# that checks the behavior of this variable in the following ways#
# * Default Value #
# * Valid & Invalid values #
# * Scope & Access method #
# * Data Integrity #
# #
# Reference: http://dev.mysql.com/doc/refman/5.1/en/ #
# server-system-variables.html#option_mysqld_table_lock_wait_timeout #
# #
###############################################################################
--source include/load_sysvars.inc
########################################################################
# START OF table_lock_wait_timeout TESTS #
########################################################################
##########################################################################
# Saving initial value of table_lock_wait_timeout in a temporary variable#
##########################################################################
SET @start_value = @@global.table_lock_wait_timeout;
SELECT @start_value;
--echo '#--------------------FN_DYNVARS_001_01------------------------#'
########################################################################
# Display the DEFAULT value of table_lock_wait_timeout #
########################################################################
SET @@global.table_lock_wait_timeout = 99;
SET @@global.table_lock_wait_timeout = DeFAULT;
SELECT @@global.table_lock_wait_timeout;
--echo '#---------------------FN_DYNVARS_001_02-------------------------#'
###############################################
# Verify default value of variable #
###############################################
SET @@global.table_lock_wait_timeout =Default;
SELECT @@global.table_lock_wait_timeout = 50;
--echo '#--------------------FN_DYNVARS_001_03------------------------#'
########################################################################
# Change the value of table_lock_wait_timeout to a valid value #
########################################################################
SET @@global.table_lock_wait_timeout = 8;
SELECT @@global.table_lock_wait_timeout ;
SET @@global.table_lock_wait_timeout = 1;
SELECT @@global.table_lock_wait_timeout ;
SET @@global.table_lock_wait_timeout = 1073741824;
SELECT @@global.table_lock_wait_timeout ;
SET @@global.table_lock_wait_timeout = 18000;
SELECT @@global.table_lock_wait_timeout ;
SET @@global.table_lock_wait_timeout = 65535;
SELECT @@global.table_lock_wait_timeout ;
--echo '#--------------------FN_DYNVARS_001_04-------------------------#'
#########################################################################
# Change the value of table_lock_wait_timeout to invalid value #
#########################################################################
SET @@global.table_lock_wait_timeout = -1;
SET @@global.table_lock_wait_timeout= 100000000000;
SET @@global.table_lock_wait_timeout= -1024;
SET @@global.table_lock_wait_timeout= 0;
--Error ER_WRONG_TYPE_FOR_VAR
SET @@global.table_lock_wait_timeout= 10000.01;
--Error ER_WRONG_TYPE_FOR_VAR
SET @@global.table_lock_wait_timeout= ON;
--Error ER_WRONG_TYPE_FOR_VAR
SET @@global.table_lock_wait_timeout= 'test';
--Error ER_WRONG_TYPE_FOR_VAR
SET @@global.table_lock_wait_timeout= '';
--echo '#-------------------FN_DYNVARS_001_05----------------------------#'
###########################################################################
# Test if accessing session table_lock_wait_timeout gives error #
###########################################################################
--Error ER_GLOBAL_VARIABLE
SET @@session.table_lock_wait_timeout= 0;
SELECT @@table_lock_wait_timeout;
--echo '#----------------------FN_DYNVARS_001_06------------------------#'
##############################################################################
# Check if the value in GLOBAL & SESSION Tables matches values in variable #
##############################################################################
SELECT @@global.table_lock_wait_timeout= VARIABLE_VALUE
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME='table_lock_wait_timeout';
--echo '#---------------------FN_DYNVARS_001_09----------------------#'
###################################################################
# Check if TRUE and FALSE values can be used on variable #
###################################################################
SET @@global.table_lock_wait_timeout= TRUE;
SELECT @@global.table_lock_wait_timeout;
SET @@global.table_lock_wait_timeout= FALSE;
SELECT @@global.table_lock_wait_timeout;
--echo '#---------------------FN_DYNVARS_001_10----------------------#'
###############################################################################
# Check if accessing variable without SCOPE points to same global variable #
###############################################################################
SET @@global.table_lock_wait_timeout= 10;
SELECT @@table_lock_wait_timeout= @@global.table_lock_wait_timeout;
--echo '#---------------------FN_DYNVARS_001_11----------------------#'
###############################################################################
# Check if table_lock_wait_timeout can be accessed with and without @@ sign #
###############################################################################
--Error ER_GLOBAL_VARIABLE
SET table_lock_wait_timeout= 8;
--Error ER_PARSE_ERROR
SET global.table_lock_wait_timeout= 10;
--Error ER_UNKNOWN_TABLE
SELECT global.table_lock_wait_timeout;
--Error ER_BAD_FIELD_ERROR
SELECT table_lock_wait_timeout= @@session.table_lock_wait_timeout;
##############################
# Restore initial value #
##############################
SET @@global.table_lock_wait_timeout= @start_value;
SELECT @@global.table_lock_wait_timeout;
########################################################################
# END OF table_lock_wait_timeout TESTS #
########################################################################
...@@ -830,8 +830,8 @@ set global join_buffer_size =@my_join_buffer_size; ...@@ -830,8 +830,8 @@ set global join_buffer_size =@my_join_buffer_size;
# Bug#28580 Repeatation of status variables # Bug#28580 Repeatation of status variables
# #
--replace_column 2 # --replace_column 2 #
show global variables where Variable_name='table_definition_cache' or show global variables where Variable_name='table_definition_cache';
Variable_name='table_lock_wait_timeout'; # Note: table_lock_wait_timeout no longer exists. See bug#45225.
########################################################################### ###########################################################################
......
...@@ -83,7 +83,6 @@ multiple read locks. ...@@ -83,7 +83,6 @@ multiple read locks.
my_bool thr_lock_inited=0; my_bool thr_lock_inited=0;
ulong locks_immediate = 0L, locks_waited = 0L; ulong locks_immediate = 0L, locks_waited = 0L;
ulong table_lock_wait_timeout;
enum thr_lock_type thr_upgraded_concurrent_insert_lock = TL_WRITE; enum thr_lock_type thr_upgraded_concurrent_insert_lock = TL_WRITE;
/* The following constants are only for debug output */ /* The following constants are only for debug output */
......
...@@ -74,7 +74,20 @@ class Deadlock_detection_context ...@@ -74,7 +74,20 @@ class Deadlock_detection_context
MDL_context *start; MDL_context *start;
MDL_context *victim; MDL_context *victim;
uint current_search_depth; uint current_search_depth;
static const uint MAX_SEARCH_DEPTH= 1000; /**
Maximum depth for deadlock searches. After this depth is
achieved we will unconditionally declare that there is a
deadlock.
@note This depth should be small enough to avoid stack
being exhausted by recursive search algorithm.
TODO: Find out what is the optimal value for this parameter.
Current value is safe, but probably sub-optimal,
as there is an anecdotal evidence that real-life
deadlocks are even shorter typically.
*/
static const uint MAX_SEARCH_DEPTH= 32;
}; };
......
...@@ -1954,13 +1954,6 @@ static Sys_var_ulong Sys_table_cache_size( ...@@ -1954,13 +1954,6 @@ static Sys_var_ulong Sys_table_cache_size(
VALID_RANGE(1, 512*1024), DEFAULT(TABLE_OPEN_CACHE_DEFAULT), VALID_RANGE(1, 512*1024), DEFAULT(TABLE_OPEN_CACHE_DEFAULT),
BLOCK_SIZE(1)); BLOCK_SIZE(1));
static Sys_var_ulong Sys_table_lock_wait_timeout(
"table_lock_wait_timeout",
"Timeout in seconds to wait for a table level lock before returning an "
"error. Used only if the connection has active cursors",
GLOBAL_VAR(table_lock_wait_timeout), CMD_LINE(REQUIRED_ARG),
VALID_RANGE(1, 1024*1024*1024), DEFAULT(50), BLOCK_SIZE(1));
static Sys_var_ulong Sys_thread_cache_size( static Sys_var_ulong Sys_thread_cache_size(
"thread_cache_size", "thread_cache_size",
"How many threads we should keep in a cache for reuse", "How many threads we should keep in a cache for reuse",
......
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