#At file:///work/bzr/mysql-5.1-bug/
2717 Horst Hunger 2008-11-21 [merge]
Due to merges.
modified:
dbug/dbug.c
extra/yassl/src/cert_wrapper.cpp
include/my_dbug.h
include/my_global.h
libmysqld/examples/CMakeLists.txt
libmysqld/libmysqld.def
mysql-test/r/ctype_utf8.result
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/ctype_utf8.test
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
mysys/mf_tempdir.c
mysys/my_getopt.c
sql/handler.cc
sql/item_func.cc
sql/item_func.h
sql/item_timefunc.cc
sql/mysqld.cc
sql/set_var.cc
sql/set_var.h
sql/share/errmsg.txt
=== modified file 'dbug/dbug.c'
--- a/dbug/dbug.c 2008-05-02 17:42:34 +0000
+++ b/dbug/dbug.c 2008-11-19 09:57:23 +0000
@@ -2407,4 +2407,13 @@ int i_am_a_dummy_function() {
return 0;
}
+#ifdef __WIN__
+char _db_doprnt_;
+char _db_enter_;
+char _db_pargs_;
+char _db_process_;
+char _db_push_;
+char _db_return_;
+#endif /*__WIN__*/
+
#endif
=== modified file 'extra/yassl/src/cert_wrapper.cpp'
--- a/extra/yassl/src/cert_wrapper.cpp 2008-11-18 16:45:44 +0000
+++ b/extra/yassl/src/cert_wrapper.cpp 2008-11-20 14:51:01 +0000
@@ -265,7 +265,7 @@ int CertManager::Validate()
TaoCrypt::CertDecoder cert(source, true, &signers_, verifyNone_);
int err = cert.GetError().What();
- if ( err && err != TaoCrypt::SIG_OTHER_E)
+ if ( err )
return err;
uint sz = cert.GetPublicKey().size();
=== modified file 'include/my_dbug.h'
--- a/include/my_dbug.h 2008-03-31 07:40:39 +0000
+++ b/include/my_dbug.h 2008-11-19 09:57:23 +0000
@@ -108,6 +108,22 @@ extern FILE *_db_fp_(void);
#define DBUG_EXPLAIN(buf,len)
#define DBUG_EXPLAIN_INITIAL(buf,len)
#define IF_DBUG(A)
+
+#ifdef __WIN__
+/*
+ On windows all the dll export has to be declared in the *.def file
+ so as we export these symbols in DEBUG mode we have to export
+ these in the RELEASE mode also. So below are the dummy symbols
+ for the RELEASE export
+*/
+extern char _db_doprnt_;
+extern char _db_enter_;
+extern char _db_pargs_;
+extern char _db_process_;
+extern char _db_push_;
+extern char _db_return_;
+#endif /*__WIN__*/
+
#endif
#ifdef __cplusplus
}
=== modified file 'include/my_global.h'
--- a/include/my_global.h 2008-05-20 07:38:17 +0000
+++ b/include/my_global.h 2008-06-16 03:04:45 +0000
@@ -18,11 +18,6 @@
#ifndef _global_h
#define _global_h
-#ifndef EMBEDDED_LIBRARY
-#define HAVE_REPLICATION
-#define HAVE_EXTERNAL_CLIENT
-#endif
-
/*
InnoDB depends on some MySQL internals which other plugins should not
need. This is because of InnoDB's foreign key support, "safe" binlog
@@ -101,6 +96,11 @@
#endif
#endif /* !EMBEDDED_LIBRARY */
+#ifndef EMBEDDED_LIBRARY
+#define HAVE_REPLICATION
+#define HAVE_EXTERNAL_CLIENT
+#endif
+
/* Some defines to avoid ifdefs in the code */
#ifndef NETWARE_YIELD
#define NETWARE_YIELD
=== modified file 'libmysqld/examples/CMakeLists.txt'
--- a/libmysqld/examples/CMakeLists.txt 2007-11-02 08:27:38 +0000
+++ b/libmysqld/examples/CMakeLists.txt 2008-11-19 11:51:31 +0000
@@ -29,13 +29,13 @@ ADD_DEFINITIONS(-DEMBEDDED_LIBRARY)
ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc
../../client/mysql.cc ../../client/readline.cc
../../client/sql_string.cc)
-TARGET_LINK_LIBRARIES(mysql_embedded mysys yassl taocrypt zlib debug dbug regex strings wsock32)
+TARGET_LINK_LIBRARIES(mysql_embedded wsock32)
ADD_DEPENDENCIES(mysql_embedded libmysqld)
ADD_EXECUTABLE(mysqltest_embedded ../../client/mysqltest.c)
-TARGET_LINK_LIBRARIES(mysqltest_embedded mysys yassl taocrypt zlib debug dbug regex strings wsock32)
+TARGET_LINK_LIBRARIES(mysqltest_embedded wsock32)
ADD_DEPENDENCIES(mysqltest_embedded libmysqld)
ADD_EXECUTABLE(mysql_client_test_embedded ../../tests/mysql_client_test.c)
-TARGET_LINK_LIBRARIES(mysql_client_test_embedded debug dbug mysys yassl taocrypt zlib strings wsock32)
+TARGET_LINK_LIBRARIES(mysql_client_test_embedded wsock32)
ADD_DEPENDENCIES(mysql_client_test_embedded libmysqld)
=== modified file 'libmysqld/libmysqld.def'
--- a/libmysqld/libmysqld.def 2007-11-26 18:10:26 +0000
+++ b/libmysqld/libmysqld.def 2008-11-21 10:15:26 +0000
@@ -2,6 +2,66 @@ LIBRARY LIBMYSQLD
DESCRIPTION 'MySQL 5.1 Embedded Server Library'
VERSION 5.1
EXPORTS
+ _db_process_
+ _db_enter_
+ _db_return_
+ _db_push_
+ _db_doprnt_
+ _db_pargs_
+ strnmov
+ get_charset
+ my_memmem
+ my_snprintf
+ pthread_exit
+ pthread_cond_signal
+ dynstr_append_mem
+ init_dynamic_string
+ dynstr_free
+ my_hash_free
+ my_vsnprintf
+ dynstr_append
+ my_close
+ my_open
+ dynstr_set
+ dynstr_append_os_quoted
+ my_delete
+ my_seek
+ my_write
+ create_temp_file
+ fn_format
+ dirname_part
+ my_hash_insert
+ my_hash_search
+ test_if_hard_path
+ my_copy
+ my_mkdir
+ my_sleep
+ my_strtod
+ pthread_cond_wait
+ my_strnncoll_simple
+ get_dynamic
+ my_regerror
+ init_dynamic_array2
+ pthread_create
+ pthread_cond_init
+ my_regcomp
+ my_regexec
+ my_regex_end
+ my_regfree
+ longlong2str
+ my_set_exception_pointers
+ my_print_stacktrace
+ my_thread_stack_size
+ my_safe_print_str
+ my_stat
+ _my_hash_init
+ pthread_attr_setstacksize
+ pthread_attr_init
+ my_dirend
+ wild_compare
+ my_dir
+ my_micro_time
+ find_type_or_exit
_dig_vec_upper
_dig_vec_lower
bmove_upp
=== modified file 'mysql-test/r/ctype_utf8.result'
--- a/mysql-test/r/ctype_utf8.result 2008-02-11 12:28:33 +0000
+++ b/mysql-test/r/ctype_utf8.result 2008-11-21 13:32:45 +0000
@@ -1848,3 +1848,35 @@ select hex(_utf8 B'001111111111');
ERROR HY000: Invalid utf8 character string: 'FF'
select (_utf8 X'616263FF');
ERROR HY000: Invalid utf8 character string: 'FF'
+CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL);
+INSERT INTO t1 VALUES (70000, 1092), (70001, 1085), (70002, 1065);
+SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
+CONVERT(a, CHAR) CONVERT(b, CHAR)
+70002 1065
+70001 1085
+70000 1092
+SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1;
+CONVERT(a, CHAR) CONVERT(b, CHAR)
+70000 1092
+70001 1085
+70002 1065
+ALTER TABLE t1 ADD UNIQUE (b);
+SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
+CONVERT(a, CHAR) CONVERT(b, CHAR)
+70002 1065
+70001 1085
+70000 1092
+DROP INDEX b ON t1;
+SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
+CONVERT(a, CHAR) CONVERT(b, CHAR)
+70002 1065
+70001 1085
+70000 1092
+ALTER TABLE t1 ADD INDEX (b);
+SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) from t1 GROUP BY b;
+CONVERT(a, CHAR) CONVERT(b, CHAR)
+70002 1065
+70001 1085
+70000 1092
+DROP TABLE t1;
+End of 5.0 tests
=== 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-11-20 07:51:48 +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-11-20 07:51:48 +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
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
'#--------------------FN_DYNVARS_070_03-------------------------#'
SET @@global.max_allowed_packet = 1024;
SELECT @@global.max_allowed_packet;
@@ -48,25 +43,30 @@ SELECT @@global.max_allowed_packet;
1073740800
'#--------------------FN_DYNVARS_070_04-------------------------#'
SET @@session.max_allowed_packet = 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.max_allowed_packet = 1025;
+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.max_allowed_packet = 65535;
+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
-64512
+1048576
SET @@session.max_allowed_packet = 1073741824;
+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
-1073741824
+1048576
SET @@session.max_allowed_packet = 1073741823;
+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
-1073740800
+1048576
'#------------------FN_DYNVARS_070_05-----------------------#'
SET @@global.max_allowed_packet = 0;
Warnings:
@@ -103,37 +103,33 @@ SELECT @@global.max_allowed_packet;
@@global.max_allowed_packet
1073741824
SET @@session.max_allowed_packet = 0;
-Warnings:
-Warning 1292 Truncated incorrect max_allowed_packet value: '0'
+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.max_allowed_packet = 1023;
-Warnings:
-Warning 1292 Truncated incorrect max_allowed_packet value: '1023'
+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.max_allowed_packet = -2;
-Warnings:
-Warning 1292 Truncated incorrect max_allowed_packet value: '0'
+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.max_allowed_packet = 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.max_allowed_packet = 10737418241;
-Warnings:
-Warning 1292 Truncated incorrect max_allowed_packet value: '10737418241'
+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
-1073741824
+1048576
'Bug # 34837: Errors are not coming on assigning invalid values to variable';
SET @@session.max_allowed_packet = test;
ERROR 42000: Incorrect argument type to variable 'max_allowed_packet'
SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet
-1073741824
+1048576
'#------------------FN_DYNVARS_070_06-----------------------#'
SELECT @@global.max_allowed_packet = VARIABLE_VALUE
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
@@ -166,6 +162,7 @@ SELECT @@max_allowed_packet = @@global.m
0
'#---------------------FN_DYNVARS_070_10----------------------#'
SET @@max_allowed_packet = 100000;
+ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
SELECT @@max_allowed_packet = @@local.max_allowed_packet;
@@max_allowed_packet = @@local.max_allowed_packet
1
@@ -174,9 +171,10 @@ SELECT @@local.max_allowed_packet = @@se
1
'#---------------------FN_DYNVARS_070_11----------------------#'
SET max_allowed_packet = 1024;
+ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
SELECT @@max_allowed_packet;
@@max_allowed_packet
-1024
+1048576
SELECT local.max_allowed_packet;
ERROR 42S02: Unknown table 'local' in field list
SELECT session.max_allowed_packet;
@@ -187,7 +185,6 @@ SET @@global.max_allowed_packet = @start
SELECT @@global.max_allowed_packet;
@@global.max_allowed_packet
1048576
-SET @@session.max_allowed_packet = @start_session_value;
SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet
1048576
=== 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-11-20 07:51:48 +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;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj!
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk");
-SELECT length("aaaaaasssssssssssdddddddfffffgggg, askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj!
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk") as len;
-len
-1470
-## Verifying record in table t1 ##
-SELECT * from t1;
-id name
-1 aaassssssssddddddddffffffgggggggg, askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj!
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
-'Bug#35381: Error is not coming on inserting and fetching data of length'
-'greater than max_allowed_packet size at session level';
+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-11-20 07:51:48 +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/packet.result'
--- a/mysql-test/r/packet.result 2007-11-30 05:32:04 +0000
+++ b/mysql-test/r/packet.result 2008-11-20 07:51:48 +0000
@@ -1,32 +1,22 @@
set global max_allowed_packet=100;
Warnings:
Warning 1292 Truncated incorrect max_allowed_packet value: '100'
-set max_allowed_packet=100;
-Warnings:
-Warning 1292 Truncated incorrect max_allowed_packet value: '100'
set global net_buffer_length=100;
Warnings:
Warning 1292 Truncated incorrect net_buffer_length value: '100'
-set net_buffer_length=100;
-Warnings:
-Warning 1292 Truncated incorrect net_buffer_length value: '100'
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
len
1024
select repeat('a',2000);
repeat('a',2000)
-NULL
-Warnings:
-Warning 1301 Result of repeat() was larger than max_allowed_packet (1024) - truncated
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
aaaaaaaaaaaaaaaaaaaaaaaa
select @@net_buffer_length, @@max_allowed_packet;
@@net_buffer_length @@max_allowed_packet
1024 1024
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
ERROR 08S01: Got a packet bigger than 'max_allowed_packet' bytes
set global max_allowed_packet=default;
-set max_allowed_packet=default;
set global net_buffer_length=default;
-set net_buffer_length=default;
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
len
100
=== modified file 'mysql-test/r/union.result'
--- a/mysql-test/r/union.result 2008-05-13 15:10:46 +0000
+++ b/mysql-test/r/union.result 2008-11-20 07:51:48 +0000
@@ -1343,10 +1343,10 @@ t3 CREATE TABLE `t3` (
`left(a,100000000)` longtext
) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop tables t1,t2,t3;
-SELECT @tmp_max:= @@max_allowed_packet;
-@tmp_max:= @@max_allowed_packet
+SELECT @tmp_max:= @@global.max_allowed_packet;
+@tmp_max:= @@global.max_allowed_packet
1048576
-SET max_allowed_packet=25000000;
+SET @@global.max_allowed_packet=25000000;
CREATE TABLE t1 (a mediumtext);
CREATE TABLE t2 (b varchar(20));
INSERT INTO t1 VALUES ('a');
@@ -1384,7 +1384,7 @@ t3 CREATE TABLE `t3` (
`a` varbinary(510) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLES t1,t2,t3;
-SET max_allowed_packet:= @tmp_max;
+SET @@global.max_allowed_packet:= @tmp_max;
create table t1 ( id int not null auto_increment, primary key (id), col1 int);
insert into t1 (col1) values (2),(3),(4),(5),(6);
select 99 union all select id from t1 order by 1;
=== modified file 'mysql-test/r/variables.result'
--- a/mysql-test/r/variables.result 2008-10-08 11:23:53 +0000
+++ b/mysql-test/r/variables.result 2008-11-20 07:51:48 +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/ctype_utf8.test'
--- a/mysql-test/t/ctype_utf8.test 2008-02-11 12:28:33 +0000
+++ b/mysql-test/t/ctype_utf8.test 2008-11-21 13:32:45 +0000
@@ -1439,3 +1439,20 @@ select hex(_utf8 X'616263FF');
select hex(_utf8 B'001111111111');
--error ER_INVALID_CHARACTER_STRING
select (_utf8 X'616263FF');
+
+#
+# Bug #36772: When using UTF8, CONVERT with GROUP BY returns truncated results
+#
+CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL);
+INSERT INTO t1 VALUES (70000, 1092), (70001, 1085), (70002, 1065);
+SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
+SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1;
+ALTER TABLE t1 ADD UNIQUE (b);
+SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
+DROP INDEX b ON t1;
+SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) FROM t1 GROUP BY b;
+ALTER TABLE t1 ADD INDEX (b);
+SELECT CONVERT(a, CHAR), CONVERT(b, CHAR) from t1 GROUP BY b;
+DROP TABLE t1;
+
+--echo End of 5.0 tests
=== 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-11-20 07:51:48 +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-11-20 07:51:48 +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-11-20 07:51:48 +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;
@@ -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;
@@ -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-11-20 07:51:48 +0000
@@ -43,26 +43,19 @@ name BLOB
--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;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj!
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk");
-
-SELECT length("aaaaaasssssssssssdddddddfffffgggg, askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj!
jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk") 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-11-20 07:51:48 +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-11-20 07:51:48 +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("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") 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("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") 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-11-20 07:51:48 +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-11-20 07:51:48 +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 'mysys/mf_tempdir.c'
--- a/mysys/mf_tempdir.c 2007-05-10 09:59:39 +0000
+++ b/mysys/mf_tempdir.c 2008-11-19 09:57:23 +0000
@@ -85,6 +85,8 @@ char *my_tmpdir(MY_TMPDIR *tmpdir)
void free_tmpdir(MY_TMPDIR *tmpdir)
{
uint i;
+ if (!tmpdir->full_list.elements)
+ return;
for (i=0; i<=tmpdir->max; i++)
my_free(tmpdir->list[i], MYF(0));
delete_dynamic(&tmpdir->full_list);
=== modified file 'mysys/my_getopt.c'
--- a/mysys/my_getopt.c 2008-02-18 22:29:39 +0000
+++ b/mysys/my_getopt.c 2008-11-19 09:57:23 +0000
@@ -397,9 +397,10 @@ invalid value '%s'",
my_progname, optp->name, optend);
continue;
}
- get_one_option(optp->id, optp,
- *((my_bool*) value) ?
- (char*) "1" : disabled_my_option);
+ if (get_one_option(optp->id, optp,
+ *((my_bool*) value) ?
+ (char*) "1" : disabled_my_option))
+ return EXIT_ARGUMENT_INVALID;
continue;
}
argument= optend;
@@ -457,7 +458,8 @@ invalid value '%s'",
optp->arg_type == NO_ARG)
{
*((my_bool*) optp->value)= (my_bool) 1;
- get_one_option(optp->id, optp, argument);
+ if (get_one_option(optp->id, optp, argument))
+ return EXIT_UNSPECIFIED_ERROR;
continue;
}
else if (optp->arg_type == REQUIRED_ARG ||
@@ -476,7 +478,8 @@ invalid value '%s'",
{
if (optp->var_type == GET_BOOL)
*((my_bool*) optp->value)= (my_bool) 1;
- get_one_option(optp->id, optp, argument);
+ if (get_one_option(optp->id, optp, argument))
+ return EXIT_UNSPECIFIED_ERROR;
continue;
}
/* Check if there are more arguments after this one */
@@ -501,7 +504,8 @@ invalid value '%s'",
my_progname, argument, optp->name);
return error;
}
- get_one_option(optp->id, optp, argument);
+ if (get_one_option(optp->id, optp, argument))
+ return EXIT_UNSPECIFIED_ERROR;
break;
}
}
@@ -524,7 +528,8 @@ invalid value '%s'",
my_progname, argument, optp->name);
return error;
}
- get_one_option(optp->id, optp, argument);
+ if (get_one_option(optp->id, optp, argument))
+ return EXIT_UNSPECIFIED_ERROR;
(*argc)--; /* option handled (short or long), decrease argument count */
}
=== modified file 'sql/handler.cc'
--- a/sql/handler.cc 2008-11-06 14:18:25 +0000
+++ b/sql/handler.cc 2008-11-19 15:02:38 +0000
@@ -3627,7 +3627,7 @@ int ha_init_key_cache(const char *name,
if (!key_cache->key_cache_inited)
{
pthread_mutex_lock(&LOCK_global_system_variables);
- ulong tmp_buff_size= (ulong) key_cache->param_buff_size;
+ size_t tmp_buff_size= (size_t) key_cache->param_buff_size;
uint tmp_block_size= (uint) key_cache->param_block_size;
uint division_limit= key_cache->param_division_limit;
uint age_threshold= key_cache->param_age_threshold;
@@ -3651,7 +3651,7 @@ int ha_resize_key_cache(KEY_CACHE *key_c
if (key_cache->key_cache_inited)
{
pthread_mutex_lock(&LOCK_global_system_variables);
- long tmp_buff_size= (long) key_cache->param_buff_size;
+ size_t tmp_buff_size= (size_t) key_cache->param_buff_size;
long tmp_block_size= (long) key_cache->param_block_size;
uint division_limit= key_cache->param_division_limit;
uint age_threshold= key_cache->param_age_threshold;
=== modified file 'sql/item_func.cc'
--- a/sql/item_func.cc 2008-11-18 11:38:28 +0000
+++ b/sql/item_func.cc 2008-11-20 11:25:26 +0000
@@ -3810,11 +3810,14 @@ static user_var_entry *get_variable(HASH
bool Item_func_set_user_var::set_entry(THD *thd, bool create_if_not_exists)
{
- if (thd == entry_thd && entry)
+ if (entry && thd->thread_id == entry_thread_id)
goto end; // update entry->update_query_id for PS
- entry_thd= thd;
if (!(entry= get_variable(&thd->user_vars, name, create_if_not_exists)))
+ {
+ entry_thread_id= 0;
return TRUE;
+ }
+ entry_thread_id= thd->thread_id;
/*
Remember the last query which updated it, this way a query can later know
if this variable is a constant item in the query (it is if update_query_id
=== modified file 'sql/item_func.h'
--- a/sql/item_func.h 2008-10-09 15:03:23 +0000
+++ b/sql/item_func.h 2008-11-20 11:25:26 +0000
@@ -1295,16 +1295,16 @@ class Item_func_set_user_var :public Ite
enum Item_result cached_result_type;
user_var_entry *entry;
/*
- The entry_thd variable is used:
+ The entry_thread_id variable is used:
1) to skip unnecessary updates of the entry field (see above);
2) to reset the entry field that was initialized in the other thread
(for example, an item tree of a trigger that updates user variables
- may be shared between several connections, and the entry_thd field
+ may be shared between several connections, and the entry_thread_id field
prevents updates of one connection user variables from a concurrent
connection calling the same trigger that initially updated some
user variable it the first connection context).
*/
- THD *entry_thd;
+ my_thread_id entry_thread_id;
char buffer[MAX_FIELD_WIDTH];
String value;
my_decimal decimal_buff;
@@ -1321,7 +1321,7 @@ public:
LEX_STRING name; // keep it public
Item_func_set_user_var(LEX_STRING a,Item *b)
:Item_func(b), cached_result_type(INT_RESULT),
- entry(NULL), entry_thd(NULL), name(a)
+ entry(NULL), entry_thread_id(0), name(a)
{}
enum Functype functype() const { return SUSERVAR_FUNC; }
double val_real();
=== modified file 'sql/item_timefunc.cc'
--- a/sql/item_timefunc.cc 2008-02-22 10:30:33 +0000
+++ b/sql/item_timefunc.cc 2008-11-21 13:32:45 +0000
@@ -2504,6 +2504,8 @@ void Item_char_typecast::fix_length_and_
and thus avoid unnecessary character set conversion.
- If the argument is not a number, then from_cs is set to
the argument's charset.
+
+ Note (TODO): we could use repertoire technique here.
*/
from_cs= (args[0]->result_type() == INT_RESULT ||
args[0]->result_type() == DECIMAL_RESULT ||
@@ -2511,12 +2513,13 @@ void Item_char_typecast::fix_length_and_
(cast_cs->mbminlen == 1 ? cast_cs : &my_charset_latin1) :
args[0]->collation.collation;
charset_conversion= (cast_cs->mbmaxlen > 1) ||
- !my_charset_same(from_cs, cast_cs) &&
- from_cs != &my_charset_bin &&
- cast_cs != &my_charset_bin;
+ (!my_charset_same(from_cs, cast_cs) &&
+ from_cs != &my_charset_bin &&
+ cast_cs != &my_charset_bin);
collation.set(cast_cs, DERIVATION_IMPLICIT);
- char_length= (cast_length >= 0) ? cast_length :
- args[0]->max_length/from_cs->mbmaxlen;
+ char_length= (cast_length >= 0) ?
+ cast_length :
+ args[0]->max_length / args[0]->collation.collation->mbmaxlen;
max_length= char_length * cast_cs->mbmaxlen;
}
=== modified file 'sql/mysqld.cc'
--- a/sql/mysqld.cc 2008-11-04 10:00:26 +0000
+++ b/sql/mysqld.cc 2008-11-21 14:15:11 +0000
@@ -733,7 +733,7 @@ uint connection_count= 0;
/* Function declarations */
pthread_handler_t signal_hand(void *arg);
-static void mysql_init_variables(void);
+static int mysql_init_variables(void);
static void get_options(int *argc,char **argv);
extern "C" my_bool mysqld_get_one_option(int, const struct my_option *, char *);
static void set_server_version(void);
@@ -3141,12 +3141,12 @@ static int init_common_variables(const c
if (!rpl_filter || !binlog_filter)
{
sql_perror("Could not allocate replication and binlog filters");
- exit(1);
+ return 1;
}
- if (init_thread_environment())
+ if (init_thread_environment() ||
+ mysql_init_variables())
return 1;
- mysql_init_variables();
#ifdef HAVE_TZNAME
{
@@ -3745,7 +3745,10 @@ version 5.0 and above. It is replaced by
{
/* as opt_bin_log==0, no need to free opt_bin_logname */
if (!(opt_bin_logname= my_strdup(opt_update_logname, MYF(MY_WME))))
- exit(EXIT_OUT_OF_MEMORY);
+ {
+ sql_print_error("Out of memory");
+ return EXIT_OUT_OF_MEMORY;
+ }
sql_print_error("The update log is no longer supported by MySQL in \
version 5.0 and above. It is replaced by the binary log. Now starting MySQL \
with --log-bin='%s' instead.",opt_bin_logname);
@@ -7348,6 +7351,7 @@ SHOW_VAR status_vars[]= {
{NullS, NullS, SHOW_LONG}
};
+#ifndef EMBEDDED_LIBRARY
static void print_version(void)
{
set_server_version();
@@ -7359,7 +7363,6 @@ static void print_version(void)
server_version,SYSTEM_TYPE,MACHINE_TYPE, MYSQL_COMPILATION_COMMENT);
}
-#ifndef EMBEDDED_LIBRARY
static void usage(void)
{
if (!(default_charset_info= get_charset_by_csname(default_character_set_name,
@@ -7424,7 +7427,7 @@ To see what values a running MySQL serve
as these are initialized by my_getopt.
*/
-static void mysql_init_variables(void)
+static int mysql_init_variables(void)
{
/* Things reset to zero */
opt_skip_slave_start= opt_reckless_slave = 0;
@@ -7505,7 +7508,10 @@ static void mysql_init_variables(void)
key_caches.empty();
if (!(dflt_key_cache= get_or_create_key_cache(default_key_cache_base.str,
default_key_cache_base.length)))
- exit(1);
+ {
+ sql_print_error("Cannot allocate the keycache");
+ return 1;
+ }
/* set key_cache_hash.default_value = dflt_key_cache */
multi_keycache_init();
@@ -7648,6 +7654,7 @@ static void mysql_init_variables(void)
tmpenv = DEFAULT_MYSQL_HOME;
(void) strmake(mysql_home, tmpenv, sizeof(mysql_home)-1);
#endif
+ return 0;
}
@@ -7708,9 +7715,11 @@ mysqld_get_one_option(int optid,
#endif
break;
#include <sslopt-case.h>
+#ifndef EMBEDDED_LIBRARY
case 'V':
print_version();
exit(0);
+#endif /*EMBEDDED_LIBRARY*/
case 'W':
if (!argument)
global_system_variables.log_warnings++;
@@ -7939,14 +7948,14 @@ mysqld_get_one_option(int optid,
if (gethostname(myhostname,sizeof(myhostname)) < 0)
{
sql_perror("Can't start server: cannot get my own hostname!");
- exit(1);
+ return 1;
}
ent=gethostbyname(myhostname);
}
if (!ent)
{
sql_perror("Can't start server: cannot resolve hostname!");
- exit(1);
+ return 1;
}
my_bind_addr = (ulong) ((in_addr*)ent->h_addr_list[0])->s_addr;
}
@@ -8143,8 +8152,8 @@ mysqld_get_one_option(int optid,
case OPT_FT_BOOLEAN_SYNTAX:
if (ft_boolean_check_syntax_string((uchar*) argument))
{
- fprintf(stderr, "Invalid ft-boolean-syntax string: %s\n", argument);
- exit(1);
+ sql_print_error("Invalid ft-boolean-syntax string: %s\n", argument);
+ return 1;
}
strmake(ft_boolean_syntax, argument, sizeof(ft_boolean_syntax)-1);
break;
=== modified file 'sql/set_var.cc'
--- a/sql/set_var.cc 2008-10-08 12:19:55 +0000
+++ b/sql/set_var.cc 2008-11-20 07:51:48 +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,
@@ -2734,6 +2734,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-10-08 11:23:53 +0000
+++ b/sql/set_var.h 2008-11-20 07:51:48 +0000
@@ -1024,6 +1024,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-10-24 12:50:59 +0000
+++ b/sql/share/errmsg.txt 2008-11-20 07:51:48 +0000
@@ -6151,3 +6151,6 @@ WARN_PLUGIN_DELETE_BUILTIN
WARN_PLUGIN_BUSY
eng "Plugin is busy and will be uninstalled on shutdown"
+
+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 (horst:2717) | Horst Hunger | 21 Nov |