List:Commits« Previous MessageNext Message »
From:Davi Arnaut Date:November 7 2008 11:25am
Subject:Re: bzr commit into mysql-5.1 branch (staale.smedseng:2773) Bug#22891
View as plain text  
Hi Staale,

OK to push. A few minor comments below.

On 10/31/08 8:10 AM, Staale Smedseng wrote:
> #At file:///export/home/tmp/ss156133/z/b22891-51/
>
>   2773 Staale Smedseng	2008-10-31
>        A fix for Bug#22891 "session level max_allowed_packet can be
>        set but is ignored".
>
>        This patch makes @@session.max_allowed_packed and
>        @@session.net_buffer_length read-only as suggested in the bug
>        report. The user will have to use SET GLOBAL (and reconnect)
>        to alter the session values of these variables.
>
>        The error string ER_VARIABLE_IS_READONLY is introduced.
>
>        Tests are modified accordingly.
> modified:
>    mysql-test/r/func_compress.result
>    mysql-test/r/max_allowed_packet_basic.result
>    mysql-test/r/max_allowed_packet_func.result
>    mysql-test/r/net_buffer_length_basic.result
>    mysql-test/r/packet.result
>    mysql-test/r/union.result
>    mysql-test/r/variables.result
>    mysql-test/t/func_compress.test
>    mysql-test/t/innodb_bug34300.test
>    mysql-test/t/max_allowed_packet_basic.test
>    mysql-test/t/max_allowed_packet_func.test
>    mysql-test/t/net_buffer_length_basic.test
>    mysql-test/t/packet.test
>    mysql-test/t/union.test
>    mysql-test/t/variables.test
>    sql/set_var.cc
>    sql/set_var.h
>    sql/share/errmsg.txt
>
> per-file messages:
>    sql/set_var.cc
>      The class sys_var_thd_ulong_session_readonly is introduced as
>      a specialization of sys_var_thd_ulong implementing a read-only
>      session variable. The class overrides check() and
>      check_default() to achieve the read-only property for the
>      session part of the variable.
>    sql/set_var.h
>      The class sys_var_thd_ulong_session_readonly is introduced as
>      a specialization of sys_var_thd_ulong implementing a read-only
>      session variable. The class overrides check() and
>      check_default() to achieve the read-only property for the
>      session part of the variable.
> === modified file 'mysql-test/r/func_compress.result'
> --- a/mysql-test/r/func_compress.result	2006-10-13 14:33:28 +0000
> +++ b/mysql-test/r/func_compress.result	2008-10-31 10:10:18 +0000
> @@ -68,7 +68,7 @@ Warnings:
>   Error	1259	ZLIB: Input data corrupted
>   Error	1256	Uncompressed data size too large; the maximum size is 1048576 (probably,
> length of uncompressed data was corrupted)
>   drop table t1;
> -set @@max_allowed_packet=1048576*100;
> +set @@global.max_allowed_packet=1048576*100;
>   select compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null;
>   compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null
>   0
>
> === modified file 'mysql-test/r/max_allowed_packet_basic.result'
> --- a/mysql-test/r/max_allowed_packet_basic.result	2008-04-10 13:14:28 +0000
> +++ b/mysql-test/r/max_allowed_packet_basic.result	2008-10-31 10:10:18 +0000
> @@ -2,10 +2,7 @@ SET @start_global_value = @@global.max_a
>   SELECT @start_global_value;
>   @start_global_value
>   1048576
> -SET @start_session_value = @@session.max_allowed_packet;
> -SELECT @start_session_value;
> -@start_session_value
> -1048576
> +SET @@global.max_allowed_packet = DEFAULT;
>   '#--------------------FN_DYNVARS_070_01-------------------------#'
>   SET @@global.max_allowed_packet = 1000;
>   Warnings:
> @@ -15,7 +12,9 @@ SELECT @@global.max_allowed_packet;
>   @@global.max_allowed_packet
>   1048576
>   SET @@session.max_allowed_packet = 20000;
> +ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to
> assign the value
>   SET @@session.max_allowed_packet = DEFAULT;
> +ERROR 42000: Variable 'max_allowed_packet' doesn't have a default value

Shouldn't this error be ER_VARIABLE_IS_READONLY?

>   SELECT @@session.max_allowed_packet;
>   @@session.max_allowed_packet
>   1048576
> @@ -24,10 +23,6 @@ SET @@global.max_allowed_packet = DEFAUL
>   SELECT @@global.max_allowed_packet = 1048576;
>   @@global.max_allowed_packet = 1048576
>   1
> -SET @@session.max_allowed_packet = DEFAULT;
> -SELECT @@session.max_allowed_packet = 1048576;
> -@@session.max_allowed_packet = 1048576
> -1

[..]

> === modified file 'mysql-test/r/max_allowed_packet_func.result'
> --- a/mysql-test/r/max_allowed_packet_func.result	2008-04-18 09:38:41 +0000
> +++ b/mysql-test/r/max_allowed_packet_func.result	2008-10-31 10:10:18 +0000
> @@ -10,24 +10,15 @@ name BLOB
>   '#--------------------FN_DYNVARS_070_01-------------------------#'
>   ## Setting value of max_allowed packet and net_buffer_length to 1024 ##
>   SET @@session.max_allowed_packet = 1024;
> -SET @@session.net_buffer_length = 1024;
> +ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to
> assign the value
>   SELECT @@session.max_allowed_packet;
>   @@session.max_allowed_packet
> -1024
> +1048576
> +SET @@session.net_buffer_length = 1024;
> +ERROR HY000: SESSION variable 'net_buffer_length' is read-only. Use SET GLOBAL to
> assign the value
>   SELECT @@session.net_buffer_length;
>   @@session.net_buffer_length
> -1024
> -## Inserting and fetching data of length greater than 1024 ##
> -INSERT into t1(name) values("aaassssssssddddddddffffffgggggggg,
> askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
jj
>  
> jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk");
> -SELECT length("aaaaaasssssssssssdddddddfffffgggg,
> askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
jj
>  
> jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk")
> as len;
> -len
> -1470
> -## Verifying record in table t1 ##
> -SELECT * from t1;
> -id	name
> -1	aaassssssssddddddddffffffgggggggg,
> askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
jj
>  
> jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
> -'Bug#35381: Error is not coming on inserting and fetching data of length'
> -'greater than max_allowed_packet size at session level';

Can you preserve this test case?

> +16384
>   '#--------------------FN_DYNVARS_070_02-------------------------#'
>   ## Setting value of max_allowed packet and net_buffer_length to 1024 ##
>   SET @@global.max_allowed_packet = 1024;
>
> === modified file 'mysql-test/r/net_buffer_length_basic.result'
> --- a/mysql-test/r/net_buffer_length_basic.result	2008-04-10 13:14:28 +0000
> +++ b/mysql-test/r/net_buffer_length_basic.result	2008-10-31 10:10:18 +0000
> @@ -1,5 +1,5 @@
>   SET @start_global_value = @@global.net_buffer_length;
> -SET @start_session_value = @@session.net_buffer_length;
> +SET @@global.net_buffer_length = DEFAULT;
>   '#--------------------FN_DYNVARS_109_01-------------------------#'
>   SET @@global.net_buffer_length = 10000;
>   SET @@global.net_buffer_length = DEFAULT;
> @@ -7,7 +7,9 @@ SELECT @@global.net_buffer_length;
>   @@global.net_buffer_length
>   16384
>   SET @@session.net_buffer_length = 20000;
> +ERROR HY000: SESSION variable 'net_buffer_length' is read-only. Use SET GLOBAL to
> assign the value
>   SET @@session.net_buffer_length = DEFAULT;
> +ERROR 42000: Variable 'net_buffer_length' doesn't have a default value
>   SELECT @@session.net_buffer_length;
>   @@session.net_buffer_length
>   16384
> @@ -16,10 +18,6 @@ SET @@global.net_buffer_length = DEFAULT
>   SELECT @@global.net_buffer_length = 16384;
>   @@global.net_buffer_length = 16384
>   1
> -SET @@session.net_buffer_length = DEFAULT;
> -SELECT @@session.net_buffer_length = 16384;
> -@@session.net_buffer_length = 16384
> -1
>   '#--------------------FN_DYNVARS_109_03-------------------------#'
>   SET @@global.net_buffer_length = 1024;
>   SELECT @@global.net_buffer_length;
> @@ -43,27 +41,6 @@ SELECT @@global.net_buffer_length;
>   64512
>   'Bug# 34877: Invalid Values are coming in variable on assigning valid values';
>   '#--------------------FN_DYNVARS_109_04-------------------------#'
> -SET @@session.net_buffer_length = 1024;
> -SELECT @@session.net_buffer_length;
> -@@session.net_buffer_length
> -1024
> -SET @@session.net_buffer_length = 1025;
> -SELECT @@session.net_buffer_length;
> -@@session.net_buffer_length
> -1024
> -SET @@session.net_buffer_length = 1048576;
> -SELECT @@session.net_buffer_length;
> -@@session.net_buffer_length
> -1048576
> -SET @@session.net_buffer_length = 1048575;
> -SELECT @@session.net_buffer_length;
> -@@session.net_buffer_length
> -1047552
> -SET @@session.net_buffer_length = 65535;
> -SELECT @@session.net_buffer_length;
> -@@session.net_buffer_length
> -64512
> -'Bug# 34877: Invalid Values are coming in variable on assigning valid values';
>   '#------------------FN_DYNVARS_109_05-----------------------#'
>   SET @@global.net_buffer_length = 0;
>   Warnings:
> @@ -105,42 +82,12 @@ ERROR 42000: Incorrect argument type to
>   SELECT @@global.net_buffer_length;
>   @@global.net_buffer_length
>   1048576
> -SET @@session.net_buffer_length = 0;
> -Warnings:
> -Warning	1292	Truncated incorrect net_buffer_length value: '0'
> -SELECT @@session.net_buffer_length;
> -@@session.net_buffer_length
> -1024
> -SET @@session.net_buffer_length = -2;
> -Warnings:
> -Warning	1292	Truncated incorrect net_buffer_length value: '0'
> -SELECT @@session.net_buffer_length;
> -@@session.net_buffer_length
> -1024
> -SET @@session.net_buffer_length = 1048577;
> -Warnings:
> -Warning	1292	Truncated incorrect net_buffer_length value: '1048577'
> -SELECT @@session.net_buffer_length;
> -@@session.net_buffer_length
> -1048576
> -SET @@session.net_buffer_length = 1048576002;
> -Warnings:
> -Warning	1292	Truncated incorrect net_buffer_length value: '1048576002'
> -SELECT @@session.net_buffer_length;
> -@@session.net_buffer_length
> -1048576
> -SET @@session.net_buffer_length = 65530.34.;
> -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 '.' at line 1
> -SET @@session.net_buffer_length = 65550;
> -SELECT @@session.net_buffer_length;
> -@@session.net_buffer_length
> -65536
>   'Bug # 34837: Errors are not coming on assigning invalid values to variable';
>   SET @@session.net_buffer_length = test;
>   ERROR 42000: Incorrect argument type to variable 'net_buffer_length'
>   SELECT @@session.net_buffer_length;
>   @@session.net_buffer_length
> -65536
> +16384
>   '#------------------FN_DYNVARS_109_06-----------------------#'
>   SELECT @@global.net_buffer_length = VARIABLE_VALUE
>   FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
> @@ -172,18 +119,10 @@ SELECT @@net_buffer_length = @@global.ne
>   @@net_buffer_length = @@global.net_buffer_length
>   0
>   '#---------------------FN_DYNVARS_109_10----------------------#'
> -SET @@net_buffer_length = 100000;
> -SELECT @@net_buffer_length = @@local.net_buffer_length;
> -@@net_buffer_length = @@local.net_buffer_length
> -1
> -SELECT @@local.net_buffer_length = @@session.net_buffer_length;
> -@@local.net_buffer_length = @@session.net_buffer_length
> -1
>   '#---------------------FN_DYNVARS_109_11----------------------#'
> -SET net_buffer_length = 1024;
>   SELECT @@net_buffer_length;
>   @@net_buffer_length
> -1024
> +16384
>   SELECT local.net_buffer_length;
>   ERROR 42S02: Unknown table 'local' in field list
>   SELECT session.net_buffer_length;
> @@ -191,4 +130,3 @@ ERROR 42S02: Unknown table 'session' in
>   SELECT net_buffer_length = @@session.net_buffer_length;
>   ERROR 42S22: Unknown column 'net_buffer_length' in 'field list'
>   SET @@global.net_buffer_length = @start_global_value;
> -SET @@session.net_buffer_length = @start_session_value;
>

[..]

>
> === modified file 'mysql-test/r/variables.result'
> --- a/mysql-test/r/variables.result	2008-03-28 15:10:04 +0000
> +++ b/mysql-test/r/variables.result	2008-10-31 10:10:18 +0000
> @@ -228,7 +228,6 @@ VARIABLE_NAME	VARIABLE_VALUE
>   MYISAM_MAX_SORT_FILE_SIZE	FILE_SIZE
>   set global net_retry_count=10, session net_retry_count=10;
>   set global net_buffer_length=1024, net_write_timeout=200, net_read_timeout=300;
> -set session net_buffer_length=2048, net_write_timeout=500, net_read_timeout=600;
>   show global variables like 'net_%';
>   Variable_name	Value
>   net_buffer_length	1024
> @@ -243,57 +242,45 @@ NET_RETRY_COUNT	10
>   NET_WRITE_TIMEOUT	200
>   show session variables like 'net_%';
>   Variable_name	Value
> -net_buffer_length	2048
> -net_read_timeout	600
> +net_buffer_length	16384
> +net_read_timeout	30
>   net_retry_count	10
> -net_write_timeout	500
> +net_write_timeout	60
>   select * from information_schema.session_variables where variable_name like 'net_%'
> order by 1;
>   VARIABLE_NAME	VARIABLE_VALUE
> -NET_BUFFER_LENGTH	2048
> -NET_READ_TIMEOUT	600
> +NET_BUFFER_LENGTH	16384
> +NET_READ_TIMEOUT	30
>   NET_RETRY_COUNT	10
> -NET_WRITE_TIMEOUT	500
> -set session net_buffer_length=8000, global net_read_timeout=900,
> net_write_timeout=1000;
> +NET_WRITE_TIMEOUT	60
> +set global net_buffer_length=8000, global net_read_timeout=900,
> net_write_timeout=1000;
>   show global variables like 'net_%';
>   Variable_name	Value
> -net_buffer_length	1024
> +net_buffer_length	7168
>   net_read_timeout	900
>   net_retry_count	10
>   net_write_timeout	1000
>   select * from information_schema.global_variables where variable_name like 'net_%'
> order by 1;
>   VARIABLE_NAME	VARIABLE_VALUE
> -NET_BUFFER_LENGTH	1024
> +NET_BUFFER_LENGTH	7168
>   NET_READ_TIMEOUT	900
>   NET_RETRY_COUNT	10
>   NET_WRITE_TIMEOUT	1000
> -show session variables like 'net_%';
> -Variable_name	Value
> -net_buffer_length	7168
> -net_read_timeout	600
> -net_retry_count	10
> -net_write_timeout	500
> -select * from information_schema.session_variables where variable_name like 'net_%'
> order by 1;
> -VARIABLE_NAME	VARIABLE_VALUE
> -NET_BUFFER_LENGTH	7168
> -NET_READ_TIMEOUT	600
> -NET_RETRY_COUNT	10
> -NET_WRITE_TIMEOUT	500
> -set net_buffer_length=1;
> +set global net_buffer_length=1;
>   Warnings:
>   Warning	1292	Truncated incorrect net_buffer_length value: '1'
> -show variables like 'net_buffer_length';
> +show global variables like 'net_buffer_length';
>   Variable_name	Value
>   net_buffer_length	1024
> -select * from information_schema.session_variables where variable_name like
> 'net_buffer_length';
> +select * from information_schema.global_variables where variable_name like
> 'net_buffer_length';
>   VARIABLE_NAME	VARIABLE_VALUE
>   NET_BUFFER_LENGTH	1024
> -set net_buffer_length=2000000000;
> +set global net_buffer_length=2000000000;
>   Warnings:
>   Warning	1292	Truncated incorrect net_buffer_length value: '2000000000'
> -show variables like 'net_buffer_length';
> +show global variables like 'net_buffer_length';
>   Variable_name	Value
>   net_buffer_length	1048576
> -select * from information_schema.session_variables where variable_name like
> 'net_buffer_length';
> +select * from information_schema.global_variables where variable_name like
> 'net_buffer_length';
>   VARIABLE_NAME	VARIABLE_VALUE
>   NET_BUFFER_LENGTH	1048576
>   set character set cp1251_koi8;
> @@ -461,7 +448,7 @@ select @@long_query_time;
>   @@long_query_time
>   100.000001
>   set low_priority_updates=1;
> -set max_allowed_packet=100;
> +set global max_allowed_packet=100;
>   Warnings:
>   Warning	1292	Truncated incorrect max_allowed_packet value: '100'
>   set global max_binlog_cache_size=100;
> @@ -485,7 +472,7 @@ select @@max_user_connections;
>   100
>   set global max_write_lock_count=100;
>   set myisam_sort_buffer_size=100;
> -set net_buffer_length=100;
> +set global net_buffer_length=100;
>   Warnings:
>   Warning	1292	Truncated incorrect net_buffer_length value: '100'
>   set net_read_timeout=100;
>
> === modified file 'mysql-test/t/func_compress.test'
> --- a/mysql-test/t/func_compress.test	2006-10-13 14:09:22 +0000
> +++ b/mysql-test/t/func_compress.test	2008-10-31 10:10:18 +0000
> @@ -43,8 +43,11 @@ drop table t1;
>   # note that when LOW_MEMORY is set the "test" below is meaningless
>   #
>
> -set @@max_allowed_packet=1048576*100;
> +set @@global.max_allowed_packet=1048576*100;
>   --replace_result "''" XXX "'1'" XXX
> +
> +# reconnect to make the new max packet size take effect
> +--connect (newconn, localhost, root,,)
>   eval select compress(repeat('aaaaaaaaaa', IF('$LOW_MEMORY', 10, 10000000))) is
> null;
>
>   #
>
> === modified file 'mysql-test/t/innodb_bug34300.test'
> --- a/mysql-test/t/innodb_bug34300.test	2008-08-20 22:18:33 +0000
> +++ b/mysql-test/t/innodb_bug34300.test	2008-10-31 10:10:18 +0000
> @@ -8,7 +8,9 @@
>   -- disable_query_log
>   -- disable_result_log
>
> -SET @@max_allowed_packet=16777216;
> +# set packet size and reconnect
> +SET @@global.max_allowed_packet=16777216;
> +--connect (newconn, localhost, root,,)
>
>   DROP TABLE IF EXISTS bug34300;
>   CREATE TABLE bug34300 (
>
> === modified file 'mysql-test/t/max_allowed_packet_basic.test'
> --- a/mysql-test/t/max_allowed_packet_basic.test	2008-04-10 13:14:28 +0000
> +++ b/mysql-test/t/max_allowed_packet_basic.test	2008-10-31 10:10:18 +0000
> @@ -36,8 +36,13 @@
>
>   SET @start_global_value = @@global.max_allowed_packet;
>   SELECT @start_global_value;
> -SET @start_session_value = @@session.max_allowed_packet;
> -SELECT @start_session_value;
> +
> +# give a known value to @@session.max_allowed_packet by assigning to
> +# @@global and setting up a new connection (for deterministic result
> +# file diffing)
> +SET @@global.max_allowed_packet = DEFAULT;
> +connect (conn1, localhost, root,,);
> +
>
>
>   --echo '#--------------------FN_DYNVARS_070_01-------------------------#'
> @@ -49,7 +54,9 @@ SET @@global.max_allowed_packet = 1000;
>   SET @@global.max_allowed_packet = DEFAULT;
>   SELECT @@global.max_allowed_packet;
>
> +--Error ER_VARIABLE_IS_READONLY
>   SET @@session.max_allowed_packet = 20000;
> +--Error ER_NO_DEFAULT
>   SET @@session.max_allowed_packet = DEFAULT;
>   SELECT @@session.max_allowed_packet;

I think we can just remove the parts that were intended to test the 
session scope of the variable.

> @@ -62,9 +69,6 @@ SELECT @@session.max_allowed_packet;
>   SET @@global.max_allowed_packet = DEFAULT;
>   SELECT @@global.max_allowed_packet = 1048576;
>
> -SET @@session.max_allowed_packet = DEFAULT;
> -SELECT @@session.max_allowed_packet = 1048576;
> -
>
>   --echo '#--------------------FN_DYNVARS_070_03-------------------------#'
>   ############################################################################
> @@ -86,14 +90,19 @@ SELECT @@global.max_allowed_packet;
>   # Change the value of max_allowed_packet to a valid value for SESSION Scope #
>   #############################################################################
>
> +--Error ER_VARIABLE_IS_READONLY
>   SET @@session.max_allowed_packet = 1024;
>   SELECT @@session.max_allowed_packet;
> +--Error ER_VARIABLE_IS_READONLY
>   SET @@session.max_allowed_packet = 1025;
>   SELECT @@session.max_allowed_packet;
> +--Error ER_VARIABLE_IS_READONLY
>   SET @@session.max_allowed_packet = 65535;
>   SELECT @@session.max_allowed_packet;
> +--Error ER_VARIABLE_IS_READONLY
>   SET @@session.max_allowed_packet = 1073741824;
>   SELECT @@session.max_allowed_packet;
> +--Error ER_VARIABLE_IS_READONLY
>   SET @@session.max_allowed_packet = 1073741823;
>   SELECT @@session.max_allowed_packet;

Just remove..

> @@ -118,14 +127,18 @@ SELECT @@global.max_allowed_packet;
>   SET @@global.max_allowed_packet = test;
>   SELECT @@global.max_allowed_packet;
>
> +--Error ER_VARIABLE_IS_READONLY
>   SET @@session.max_allowed_packet = 0;
>   SELECT @@session.max_allowed_packet;
> +--Error ER_VARIABLE_IS_READONLY
>   SET @@session.max_allowed_packet = 1023;
>   SELECT @@session.max_allowed_packet;
> +--Error ER_VARIABLE_IS_READONLY
>   SET @@session.max_allowed_packet = -2;
>   SELECT @@session.max_allowed_packet;
>   --Error ER_PARSE_ERROR
>   SET @@session.max_allowed_packet = 65530.34.;
> +--Error ER_VARIABLE_IS_READONLY
>   SET @@session.max_allowed_packet = 10737418241;
>   SELECT @@session.max_allowed_packet;
>   --echo 'Bug # 34837: Errors are not coming on assigning invalid values to
> variable';
> @@ -180,6 +193,7 @@ SELECT @@max_allowed_packet = @@global.m
>   #    Check if accessing variable with SESSION,LOCAL and without SCOPE points to
> same session variable  #
>  
> ########################################################################################################
>
> +--Error ER_VARIABLE_IS_READONLY
>   SET @@max_allowed_packet = 100000;
>   SELECT @@max_allowed_packet = @@local.max_allowed_packet;
>   SELECT @@local.max_allowed_packet = @@session.max_allowed_packet;
> @@ -190,6 +204,7 @@ SELECT @@local.max_allowed_packet = @@se
>   #   Check if max_allowed_packet can be accessed with and without @@ sign    #
>   #############################################################################
>
> +--Error ER_VARIABLE_IS_READONLY
>   SET max_allowed_packet = 1024;
>   SELECT @@max_allowed_packet;
>   --Error ER_UNKNOWN_TABLE
> @@ -204,9 +219,9 @@ SELECT max_allowed_packet = @@session.ma
>   #     Restore initial value        #
>   ####################################
>
> +connection default;
>   SET @@global.max_allowed_packet = @start_global_value;
>   SELECT @@global.max_allowed_packet;
> -SET @@session.max_allowed_packet = @start_session_value;
>   SELECT @@session.max_allowed_packet;
>
>
>
> === modified file 'mysql-test/t/max_allowed_packet_func.test'
> --- a/mysql-test/t/max_allowed_packet_func.test	2008-04-23 09:36:17 +0000
> +++ b/mysql-test/t/max_allowed_packet_func.test	2008-10-31 10:10:18 +0000
> @@ -43,26 +43,19 @@ name BLOB

Please fix the test description of the variable scope:

# Variable Name: max_allowed_packet
# Scope: GLOBAL | SESSION

>
>   --echo '#--------------------FN_DYNVARS_070_01-------------------------#'
>   ###############################################################################
> -#    Setting initial value of max_allowed_packet to 1024 at session level and
> -#    verifying its behavior after inserting data greater than 1024 bytes
> +#    Setting initial value of max_allowed_packet to 1024 at session level
> +#    should result in an error (session variable is readonly)
>   ###############################################################################
>
>   --echo ## Setting value of max_allowed packet and net_buffer_length to 1024 ##
> +--error ER_VARIABLE_IS_READONLY
>   SET @@session.max_allowed_packet = 1024;
> -SET @@session.net_buffer_length = 1024;
>   SELECT @@session.max_allowed_packet;
> -SELECT @@session.net_buffer_length;
> -
> ---echo ## Inserting and fetching data of length greater than 1024 ##
> -INSERT into t1(name) values("aaassssssssddddddddffffffgggggggg,
> askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
jj
>  
> jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk");
> -
> -SELECT length("aaaaaasssssssssssdddddddfffffgggg,
> askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
jj
>  
> jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk")
> as len;
>
> ---echo ## Verifying record in table t1 ##
> -SELECT * from t1;
> +--error ER_VARIABLE_IS_READONLY
> +SET @@session.net_buffer_length = 1024;
> +SELECT @@session.net_buffer_length;
>
> ---echo 'Bug#35381: Error is not coming on inserting and fetching data of length'
> ---echo 'greater than max_allowed_packet size at session level';
>
>   --echo '#--------------------FN_DYNVARS_070_02-------------------------#'
>   ###############################################################################
>
> === modified file 'mysql-test/t/net_buffer_length_basic.test'
> --- a/mysql-test/t/net_buffer_length_basic.test	2008-04-10 13:14:28 +0000
> +++ b/mysql-test/t/net_buffer_length_basic.test	2008-10-31 10:10:18 +0000
> @@ -38,9 +38,13 @@
>   SET @start_global_value = @@global.net_buffer_length;
>   # Due to differences in results of linux and windows
>   #SELECT @start_global_value;
> -SET @start_session_value = @@session.net_buffer_length;
> -#SELECT @start_session_value;
>
> +# give a known value to @@session.net_buffer_length by assigning to
> +# @@global and setting up a new connection (for deterministic result
> +# file diffing)
> +SET @@global.net_buffer_length = DEFAULT;
> +connect(con1,localhost,root,,);
> +connection con1;
>
>   --echo '#--------------------FN_DYNVARS_109_01-------------------------#'
>   #################################################################
> @@ -51,7 +55,9 @@ SET @@global.net_buffer_length = 10000;
>   SET @@global.net_buffer_length = DEFAULT;
>   SELECT @@global.net_buffer_length;
>
> +--Error ER_VARIABLE_IS_READONLY
>   SET @@session.net_buffer_length = 20000;
> +--Error ER_NO_DEFAULT
>   SET @@session.net_buffer_length = DEFAULT;
>   SELECT @@session.net_buffer_length;
>
> @@ -64,9 +70,6 @@ SELECT @@session.net_buffer_length;
>   SET @@global.net_buffer_length = DEFAULT;
>   SELECT @@global.net_buffer_length = 16384;
>
> -SET @@session.net_buffer_length = DEFAULT;
> -SELECT @@session.net_buffer_length = 16384;
> -
>
>   --echo '#--------------------FN_DYNVARS_109_03-------------------------#'
>   ###########################################################################
> @@ -91,17 +94,7 @@ SELECT @@global.net_buffer_length;
>   # Change the value of net_buffer_length to a valid value for SESSION Scope #
>   ############################################################################
>
> -SET @@session.net_buffer_length = 1024;
> -SELECT @@session.net_buffer_length;
> -SET @@session.net_buffer_length = 1025;
> -SELECT @@session.net_buffer_length;
> -SET @@session.net_buffer_length = 1048576;
> -SELECT @@session.net_buffer_length;
> -SET @@session.net_buffer_length = 1048575;
> -SELECT @@session.net_buffer_length;
> -SET @@session.net_buffer_length = 65535;
> -SELECT @@session.net_buffer_length;
> ---echo 'Bug# 34877: Invalid Values are coming in variable on assigning valid
> values';
> +# Bug#22891: SESSION net_buffer_length is now read-only; assignments skipped
>
>
>   --echo '#------------------FN_DYNVARS_109_05-----------------------#'
> @@ -126,18 +119,8 @@ SELECT @@global.net_buffer_length;
>   SET @@global.net_buffer_length = test;
>   SELECT @@global.net_buffer_length;
>
> -SET @@session.net_buffer_length = 0;
> -SELECT @@session.net_buffer_length;
> -SET @@session.net_buffer_length = -2;
> -SELECT @@session.net_buffer_length;
> -SET @@session.net_buffer_length = 1048577;
> -SELECT @@session.net_buffer_length;
> -SET @@session.net_buffer_length = 1048576002;
> -SELECT @@session.net_buffer_length;
> ---Error ER_PARSE_ERROR
> -SET @@session.net_buffer_length = 65530.34.;
> -SET @@session.net_buffer_length = 65550;
> -SELECT @@session.net_buffer_length;
> +# Bug#22891: SESSION net_buffer_length is now read-only; assignments skipped
> +
>   --echo 'Bug # 34837: Errors are not coming on assigning invalid values to
> variable';
>
>   --Error ER_WRONG_TYPE_FOR_VAR
> @@ -190,9 +173,7 @@ SELECT @@net_buffer_length = @@global.ne
>   #    Check if accessing variable with SESSION,LOCAL and without SCOPE points to
> same session variable  #
>  
> ########################################################################################################
>
> -SET @@net_buffer_length = 100000;
> -SELECT @@net_buffer_length = @@local.net_buffer_length;
> -SELECT @@local.net_buffer_length = @@session.net_buffer_length;
> +# Bug#22891: SESSION net_buffer_length is now read-only; assignments skipped
>
>
>   --echo '#---------------------FN_DYNVARS_109_11----------------------#'
> @@ -200,7 +181,7 @@ SELECT @@local.net_buffer_length = @@ses
>   #   Check if net_buffer_length can be accessed with and without @@ sign    #
>   ############################################################################
>
> -SET net_buffer_length = 1024;
> +# Bug#22891: SESSION net_buffer_length is now read-only; assignments skipped
>   SELECT @@net_buffer_length;
>   --Error ER_UNKNOWN_TABLE
>   SELECT local.net_buffer_length;
> @@ -214,11 +195,11 @@ SELECT net_buffer_length = @@session.net
>   #     Restore initial value        #
>   ####################################
>
> +connection default;
> +
>   SET @@global.net_buffer_length = @start_global_value;
>   # Due to differences in results of linux and windows
>   #SELECT @@global.net_buffer_length;
> -SET @@session.net_buffer_length = @start_session_value;
> -#SELECT @@session.net_buffer_length;
>
>
>   ######################################################
>
> === modified file 'mysql-test/t/packet.test'
> --- a/mysql-test/t/packet.test	2005-08-04 00:38:55 +0000
> +++ b/mysql-test/t/packet.test	2008-10-31 10:10:18 +0000
> @@ -8,30 +8,30 @@
>   # Check protocol handling
>   #
>
> -connect (con1,localhost,root,,);
> -
> -connection con1;
> +# setting values below minimum threshold of 1024 will cause truncating
>   set global max_allowed_packet=100;
> -set max_allowed_packet=100;
>   set global net_buffer_length=100;
> -set net_buffer_length=100;
> -# Have to be>  1024 as min value of net_buffer_length is 1024
> +
> +# is not yet in effect
>   SELECT
> length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaa
>   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
> -# Should return NULL as 2000 is bigger than max_allowed_packet
>   select repeat('a',2000);
>
>   #
> -# Connection 2 should get error for too big packets
> +# Connection 1 should get error for too big packets
>   #
> -connect (con2,localhost,root,,);
> -connection con2;
> +connect (con1,localhost,root,,);
> +connection con1;
>   select @@net_buffer_length, @@max_allowed_packet;
>   --error 1153
>   SELECT
> length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaa
>   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
> +
> +#
> +# Reset to default values and reconnect
> +#
>   set global max_allowed_packet=default;
> -set max_allowed_packet=default;
>   set global net_buffer_length=default;
> -set net_buffer_length=default;
> +connect (con2,localhost,root,,);
> +connection con2;
>   SELECT
> length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
> as len;
>   select length(repeat('a',2000));
>
>
> === modified file 'mysql-test/t/union.test'
> --- a/mysql-test/t/union.test	2008-05-13 15:10:46 +0000
> +++ b/mysql-test/t/union.test	2008-10-31 10:10:18 +0000
> @@ -861,8 +861,10 @@ drop tables t1,t2,t3;
>   # exceeds mediumtext maximum length
>   #
>
> -SELECT @tmp_max:= @@max_allowed_packet;
> -SET max_allowed_packet=25000000;
> +SELECT @tmp_max:= @@global.max_allowed_packet;
> +SET @@global.max_allowed_packet=25000000;
> +# switching connection to allow the new max_allowed_packet take effect
> +--connect (newconn, localhost, root,,)
>   CREATE TABLE t1 (a mediumtext);
>   CREATE TABLE t2 (b varchar(20));
>   INSERT INTO t1 VALUES ('a');
> @@ -884,7 +886,9 @@ INSERT INTO t1 VALUES ('a');
>   CREATE TABLE t3 SELECT REPEAT(a,2) AS a FROM t1 UNION SELECT b FROM t2;
>   SHOW CREATE TABLE t3;
>   DROP TABLES t1,t2,t3;
> -SET max_allowed_packet:= @tmp_max;
> +--connection default
> +SET @@global.max_allowed_packet:= @tmp_max;
> +--disconnect newconn
>
>   #
>   # Bug #10032 Bug in parsing UNION with ORDER BY when one node does not use FROM
>
> === modified file 'mysql-test/t/variables.test'
> --- a/mysql-test/t/variables.test	2008-03-28 15:10:04 +0000
> +++ b/mysql-test/t/variables.test	2008-10-31 10:10:18 +0000
> @@ -146,25 +146,23 @@ show global variables like 'myisam_max_s
>   --replace_result 9223372036853727232 FILE_SIZE 2146435072 FILE_SIZE
>   select * from information_schema.global_variables where variable_name like
> 'myisam_max_sort_file_size';
>
> +# bug#22891: modified to take read-only SESSION net_buffer_length into account
>   set global net_retry_count=10, session net_retry_count=10;
>   set global net_buffer_length=1024, net_write_timeout=200, net_read_timeout=300;
> -set session net_buffer_length=2048, net_write_timeout=500, net_read_timeout=600;
>   show global variables like 'net_%';
>   select * from information_schema.global_variables where variable_name like 'net_%'
> order by 1;
>   show session variables like 'net_%';
>   select * from information_schema.session_variables where variable_name like 'net_%'
> order by 1;
> -set session net_buffer_length=8000, global net_read_timeout=900,
> net_write_timeout=1000;
> +set global net_buffer_length=8000, global net_read_timeout=900,
> net_write_timeout=1000;
>   show global variables like 'net_%';
>   select * from information_schema.global_variables where variable_name like 'net_%'
> order by 1;
> -show session variables like 'net_%';
> -select * from information_schema.session_variables where variable_name like 'net_%'
> order by 1;
> -set net_buffer_length=1;
> -show variables like 'net_buffer_length';
> -select * from information_schema.session_variables where variable_name like
> 'net_buffer_length';
> +set global net_buffer_length=1;
> +show global variables like 'net_buffer_length';
> +select * from information_schema.global_variables where variable_name like
> 'net_buffer_length';
>   #warning 1292
> -set net_buffer_length=2000000000;
> -show variables like 'net_buffer_length';
> -select * from information_schema.session_variables where variable_name like
> 'net_buffer_length';
> +set global net_buffer_length=2000000000;
> +show global variables like 'net_buffer_length';
> +select * from information_schema.global_variables where variable_name like
> 'net_buffer_length';
>
>   set character set cp1251_koi8;
>   show variables like "character_set_client";
> @@ -274,7 +272,7 @@ select @@long_query_time;
>   set long_query_time=100.000001;
>   select @@long_query_time;
>   set low_priority_updates=1;
> -set max_allowed_packet=100;
> +set global max_allowed_packet=100;
>   set global max_binlog_cache_size=100;
>   set global max_binlog_size=100;
>   set global max_connect_errors=100;
> @@ -288,7 +286,7 @@ set global max_user_connections=100;
>   select @@max_user_connections;
>   set global max_write_lock_count=100;
>   set myisam_sort_buffer_size=100;
> -set net_buffer_length=100;
> +set global net_buffer_length=100;
>   set net_read_timeout=100;
>   set net_write_timeout=100;
>   set global query_cache_limit=100;
>
> === modified file 'sql/set_var.cc'
> --- a/sql/set_var.cc	2008-10-06 09:29:42 +0000
> +++ b/sql/set_var.cc	2008-10-31 10:10:18 +0000
> @@ -296,7 +296,7 @@ static sys_var_thd_bool	sys_sql_low_prio
>   						&SV::low_priority_updates,
>   						     fix_low_priority_updates);
>   #endif
> -static sys_var_thd_ulong	sys_max_allowed_packet(&vars, "max_allowed_packet",
> +static sys_var_thd_ulong_session_readonly sys_max_allowed_packet(&vars,
> "max_allowed_packet",
>   					&SV::max_allowed_packet);
>   static sys_var_long_ptr	sys_max_binlog_cache_size(&vars,
> "max_binlog_cache_size",
>   						&max_binlog_cache_size);
> @@ -369,7 +369,7 @@ static sys_var_thd_enum         sys_myis
>                                                   &myisam_stats_method_typelib,
>                                                   NULL);
>
> -static sys_var_thd_ulong	sys_net_buffer_length(&vars, "net_buffer_length",
> +static sys_var_thd_ulong_session_readonly sys_net_buffer_length(&vars,
> "net_buffer_length",
>   					&SV::net_buffer_length);
>   static sys_var_thd_ulong	sys_net_read_timeout(&vars, "net_read_timeout",
>   					&SV::net_read_timeout,
> @@ -2847,6 +2847,18 @@ uchar *sys_var_max_user_conn::value_ptr(
>   }
>
>
> +bool sys_var_thd_ulong_session_readonly::check(THD *thd, set_var *var)
> +{
> +  if (var->type != OPT_GLOBAL)
> +  {
> +    my_error(ER_VARIABLE_IS_READONLY, MYF(0), "SESSION", name, "GLOBAL");
> +    return TRUE;
> +  }
> +
> +  return sys_var_thd_ulong::check(thd, var);
> +}
> +
> +
>   bool sys_var_thd_lc_time_names::check(THD *thd, set_var *var)
>   {
>     MY_LOCALE *locale_match;
>
> === modified file 'sql/set_var.h'
> --- a/sql/set_var.h	2008-09-09 10:19:31 +0000
> +++ b/sql/set_var.h	2008-10-31 10:10:18 +0000
> @@ -1025,6 +1025,29 @@ public:
>   };
>
>
> +/**
> + * @brief This is a specialization of sys_var_thd_ulong that implements a
> +   read-only session variable. The class overrides check() and check_default()
> +   to achieve the read-only property for the session part of the variable.
> + */
> +class sys_var_thd_ulong_session_readonly : public sys_var_thd_ulong
> +{
> +public:
> +  sys_var_thd_ulong_session_readonly(sys_var_chain *chain_arg,
> +                                     const char *name_arg, ulong SV::*offset_arg,
> +				     sys_check_func c_func= NULL,
> +                                     sys_after_update_func au_func= NULL,
> +                                     Binlog_status_enum bl_status_arg=
> NOT_IN_BINLOG):
> +    sys_var_thd_ulong(chain_arg, name_arg, offset_arg, c_func, au_func,
> bl_status_arg)
> +  { }
> +  bool check(THD *thd, set_var *var);
> +  bool check_default(enum_var_type type)
> +  {
> +    return type != OPT_GLOBAL || !option_limits;
> +  }
> +};
> +
> +
>   class sys_var_microseconds :public sys_var_thd
>   {
>     ulonglong SV::*offset;
>
> === modified file 'sql/share/errmsg.txt'
> --- a/sql/share/errmsg.txt	2008-08-06 14:20:41 +0000
> +++ b/sql/share/errmsg.txt	2008-10-31 10:10:18 +0000
> @@ -6133,3 +6133,6 @@ ER_NEED_REPREPARE
>
>   ER_DELAYED_NOT_SUPPORTED
>     eng "DELAYED option not supported for table '%-.192s'"
> +
> +ER_VARIABLE_IS_READONLY
> +  eng "%s variable '%s' is read-only. Use SET %s to assign the value"
>
>

Thread
bzr commit into mysql-5.1 branch (staale.smedseng:2773) Bug#22891Staale Smedseng31 Oct
  • Re: bzr commit into mysql-5.1 branch (staale.smedseng:2773) Bug#22891Davi Arnaut7 Nov
  • Re: bzr commit into mysql-5.1 branch (staale.smedseng:2773) Bug#22891Andrei Elkin13 Nov