diff --git a/mysql-test/suite/sys_vars/r/innodb_lock_wait_timeout_basic.result b/mysql-test/suite/sys_vars/r/innodb_lock_wait_timeout_basic.result index 3218c096c2b..fc60f89d72f 100644 --- a/mysql-test/suite/sys_vars/r/innodb_lock_wait_timeout_basic.result +++ b/mysql-test/suite/sys_vars/r/innodb_lock_wait_timeout_basic.result @@ -74,9 +74,11 @@ SELECT @@global.innodb_lock_wait_timeout; @@global.innodb_lock_wait_timeout 1024 SET @@global.innodb_lock_wait_timeout=1073741824; +Warnings: +Warning 1292 Truncated incorrect innodb_lock_wait_timeout value: '1073741824' SELECT @@global.innodb_lock_wait_timeout; @@global.innodb_lock_wait_timeout -1073741824 +100000000 SET @@session.innodb_lock_wait_timeout=1; SELECT @@session.innodb_lock_wait_timeout; @@session.innodb_lock_wait_timeout @@ -86,14 +88,16 @@ SELECT @@session.innodb_lock_wait_timeout; @@session.innodb_lock_wait_timeout 1024 SET @@session.innodb_lock_wait_timeout=1073741824; +Warnings: +Warning 1292 Truncated incorrect innodb_lock_wait_timeout value: '1073741824' SELECT @@session.innodb_lock_wait_timeout; @@session.innodb_lock_wait_timeout -1073741824 +100000000 SET @@global.innodb_lock_wait_timeout="t"; ERROR 42000: Incorrect argument type to variable 'innodb_lock_wait_timeout' SELECT @@global.innodb_lock_wait_timeout; @@global.innodb_lock_wait_timeout -1073741824 +100000000 SET @@global.innodb_lock_wait_timeout=-1024; Warnings: Warning 1292 Truncated incorrect innodb_lock_wait_timeout value: '-1024' @@ -105,27 +109,27 @@ Warnings: Warning 1292 Truncated incorrect innodb_lock_wait_timeout value: '1073741825' SELECT @@global.innodb_lock_wait_timeout; @@global.innodb_lock_wait_timeout -1073741824 +100000000 SET @@global.innodb_lock_wait_timeout=" "; ERROR 42000: Incorrect argument type to variable 'innodb_lock_wait_timeout' SELECT @@global.innodb_lock_wait_timeout; @@global.innodb_lock_wait_timeout -1073741824 +100000000 SET @@global.innodb_lock_wait_timeout=' '; ERROR 42000: Incorrect argument type to variable 'innodb_lock_wait_timeout' SELECT @@global.innodb_lock_wait_timeout; @@global.innodb_lock_wait_timeout -1073741824 +100000000 SET @@global.innodb_lock_wait_timeout=1.1; ERROR 42000: Incorrect argument type to variable 'innodb_lock_wait_timeout' SELECT @@global.innodb_lock_wait_timeout; @@global.innodb_lock_wait_timeout -1073741824 +100000000 SET @@session.innodb_lock_wait_timeout="T"; ERROR 42000: Incorrect argument type to variable 'innodb_lock_wait_timeout' SELECT @@session.innodb_lock_wait_timeout; @@session.innodb_lock_wait_timeout -1073741824 +100000000 SET @@session.innodb_lock_wait_timeout=-1024; Warnings: Warning 1292 Truncated incorrect innodb_lock_wait_timeout value: '-1024' @@ -137,22 +141,22 @@ Warnings: Warning 1292 Truncated incorrect innodb_lock_wait_timeout value: '1073999999' SELECT @@session.innodb_lock_wait_timeout; @@session.innodb_lock_wait_timeout -1073741824 +100000000 SET @@session.innodb_lock_wait_timeout=' '; ERROR 42000: Incorrect argument type to variable 'innodb_lock_wait_timeout' SELECT @@session.innodb_lock_wait_timeout; @@session.innodb_lock_wait_timeout -1073741824 +100000000 SET @@session.innodb_lock_wait_timeout=" "; ERROR 42000: Incorrect argument type to variable 'innodb_lock_wait_timeout' SELECT @@session.innodb_lock_wait_timeout; @@session.innodb_lock_wait_timeout -1073741824 +100000000 SET @@session.innodb_lock_wait_timeout=1.1; ERROR 42000: Incorrect argument type to variable 'innodb_lock_wait_timeout' SELECT @@session.innodb_lock_wait_timeout; @@session.innodb_lock_wait_timeout -1073741824 +100000000 SET @@global.innodb_lock_wait_timeout = @start_global_value; SELECT @@global.innodb_lock_wait_timeout; @@global.innodb_lock_wait_timeout diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff b/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff index 23f82f513e3..b0f0b46ded7 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff +++ b/mysql-test/suite/sys_vars/r/sysvars_innodb,32bit.rdiff @@ -207,15 +207,6 @@ NUMERIC_BLOCK_SIZE 0 ENUM_VALUE_LIST NULL READ_ONLY NO -@@ -1021,7 +1021,7 @@ - SESSION_VALUE 50 - DEFAULT_VALUE 50 - VARIABLE_SCOPE SESSION --VARIABLE_TYPE BIGINT UNSIGNED -+VARIABLE_TYPE INT UNSIGNED - VARIABLE_COMMENT Timeout in seconds an InnoDB transaction may wait for a lock before being rolled back. Values above 100000000 disable the timeout. - NUMERIC_MIN_VALUE 0 - NUMERIC_MAX_VALUE 1073741824 @@ -1033,10 +1033,10 @@ SESSION_VALUE NULL DEFAULT_VALUE 16777216 diff --git a/mysql-test/suite/sys_vars/r/sysvars_innodb.result b/mysql-test/suite/sys_vars/r/sysvars_innodb.result index bba60290863..33df36dfb3b 100644 --- a/mysql-test/suite/sys_vars/r/sysvars_innodb.result +++ b/mysql-test/suite/sys_vars/r/sysvars_innodb.result @@ -1009,10 +1009,10 @@ VARIABLE_NAME INNODB_LOCK_WAIT_TIMEOUT SESSION_VALUE 50 DEFAULT_VALUE 50 VARIABLE_SCOPE SESSION -VARIABLE_TYPE BIGINT UNSIGNED -VARIABLE_COMMENT Timeout in seconds an InnoDB transaction may wait for a lock before being rolled back. Values above 100000000 disable the timeout. +VARIABLE_TYPE INT UNSIGNED +VARIABLE_COMMENT Timeout in seconds an InnoDB transaction may wait for a lock before being rolled back. The value 100000000 is infinite timeout. NUMERIC_MIN_VALUE 0 -NUMERIC_MAX_VALUE 1073741824 +NUMERIC_MAX_VALUE 100000000 NUMERIC_BLOCK_SIZE 0 ENUM_VALUE_LIST NULL READ_ONLY NO diff --git a/mysql-test/suite/versioning/r/update.result b/mysql-test/suite/versioning/r/update.result index da893432749..9e5e28b09a1 100644 --- a/mysql-test/suite/versioning/r/update.result +++ b/mysql-test/suite/versioning/r/update.result @@ -270,7 +270,7 @@ replace t1 values (1,2),(1,3),(2,4); # MDEV-14829 Assertion `0' failed in Protocol::end_statement upon concurrent UPDATE # set @old_lock_wait_timeout= @@innodb_lock_wait_timeout; -set @@innodb_lock_wait_timeout= 1073741824; +set @@innodb_lock_wait_timeout= 100000000; create or replace table t1 (pk int, a char(3), b char(3), primary key(pk)) engine=innodb with system versioning; insert into t1 (pk) values (1); diff --git a/mysql-test/suite/versioning/t/update.test b/mysql-test/suite/versioning/t/update.test index 47a56a71bd3..a3252c9f8e3 100644 --- a/mysql-test/suite/versioning/t/update.test +++ b/mysql-test/suite/versioning/t/update.test @@ -173,7 +173,7 @@ replace t1 values (1,2),(1,3),(2,4); --echo # MDEV-14829 Assertion `0' failed in Protocol::end_statement upon concurrent UPDATE --echo # set @old_lock_wait_timeout= @@innodb_lock_wait_timeout; -set @@innodb_lock_wait_timeout= 1073741824; +set @@innodb_lock_wait_timeout= 100000000; create or replace table t1 (pk int, a char(3), b char(3), primary key(pk)) engine=innodb with system versioning; diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index 8b97bf07c33..1acb8ef5e20 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -869,9 +869,9 @@ static MYSQL_THDVAR_BOOL(ft_enable_stopword, PLUGIN_VAR_OPCMDARG, NULL, NULL, /* default */ TRUE); -static MYSQL_THDVAR_ULONG(lock_wait_timeout, PLUGIN_VAR_RQCMDARG, - "Timeout in seconds an InnoDB transaction may wait for a lock before being rolled back. Values above 100000000 disable the timeout.", - NULL, NULL, 50, 0, 1024 * 1024 * 1024, 0); +static MYSQL_THDVAR_UINT(lock_wait_timeout, PLUGIN_VAR_RQCMDARG, + "Timeout in seconds an InnoDB transaction may wait for a lock before being rolled back. The value 100000000 is infinite timeout.", + NULL, NULL, 50, 0, 100000000, 0); static MYSQL_THDVAR_STR(ft_user_stopword_table, PLUGIN_VAR_OPCMDARG|PLUGIN_VAR_MEMALLOC, @@ -1857,7 +1857,7 @@ thd_has_edited_nontrans_tables( /******************************************************************//** Returns the lock wait timeout for the current connection. @return the lock wait timeout, in seconds */ -ulong +uint thd_lock_wait_timeout( /*==================*/ THD* thd) /*!< in: thread handle, or NULL to query diff --git a/storage/innobase/include/ha_prototypes.h b/storage/innobase/include/ha_prototypes.h index b65a874177c..9a2786f9e69 100644 --- a/storage/innobase/include/ha_prototypes.h +++ b/storage/innobase/include/ha_prototypes.h @@ -242,7 +242,7 @@ const char *thd_innodb_tmpdir(THD *thd); /******************************************************************//** Returns the lock wait timeout for the current connection. @return the lock wait timeout, in seconds */ -ulong +uint thd_lock_wait_timeout( /*==================*/ THD* thd); /*!< in: thread handle, or NULL to query