1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

Due to merges.

This commit is contained in:
Horst Hunger
2008-11-21 17:36:18 +01:00
33 changed files with 373 additions and 280 deletions

View File

@ -2407,4 +2407,13 @@ int i_am_a_dummy_function() {
return 0; 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 #endif

View File

@ -265,7 +265,7 @@ int CertManager::Validate()
TaoCrypt::CertDecoder cert(source, true, &signers_, verifyNone_); TaoCrypt::CertDecoder cert(source, true, &signers_, verifyNone_);
int err = cert.GetError().What(); int err = cert.GetError().What();
if ( err && err != TaoCrypt::SIG_OTHER_E) if ( err )
return err; return err;
uint sz = cert.GetPublicKey().size(); uint sz = cert.GetPublicKey().size();

View File

@ -108,6 +108,22 @@ extern FILE *_db_fp_(void);
#define DBUG_EXPLAIN(buf,len) #define DBUG_EXPLAIN(buf,len)
#define DBUG_EXPLAIN_INITIAL(buf,len) #define DBUG_EXPLAIN_INITIAL(buf,len)
#define IF_DBUG(A) #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 #endif
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -18,11 +18,6 @@
#ifndef _global_h #ifndef _global_h
#define _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 InnoDB depends on some MySQL internals which other plugins should not
need. This is because of InnoDB's foreign key support, "safe" binlog need. This is because of InnoDB's foreign key support, "safe" binlog
@ -101,6 +96,11 @@
#endif #endif
#endif /* !EMBEDDED_LIBRARY */ #endif /* !EMBEDDED_LIBRARY */
#ifndef EMBEDDED_LIBRARY
#define HAVE_REPLICATION
#define HAVE_EXTERNAL_CLIENT
#endif
/* Some defines to avoid ifdefs in the code */ /* Some defines to avoid ifdefs in the code */
#ifndef NETWARE_YIELD #ifndef NETWARE_YIELD
#define NETWARE_YIELD #define NETWARE_YIELD

View File

@ -29,13 +29,13 @@ ADD_DEFINITIONS(-DEMBEDDED_LIBRARY)
ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc
../../client/mysql.cc ../../client/readline.cc ../../client/mysql.cc ../../client/readline.cc
../../client/sql_string.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_DEPENDENCIES(mysql_embedded libmysqld)
ADD_EXECUTABLE(mysqltest_embedded ../../client/mysqltest.c) 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_DEPENDENCIES(mysqltest_embedded libmysqld)
ADD_EXECUTABLE(mysql_client_test_embedded ../../tests/mysql_client_test.c) 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) ADD_DEPENDENCIES(mysql_client_test_embedded libmysqld)

View File

@ -2,6 +2,66 @@ LIBRARY LIBMYSQLD
DESCRIPTION 'MySQL 5.1 Embedded Server Library' DESCRIPTION 'MySQL 5.1 Embedded Server Library'
VERSION 5.1 VERSION 5.1
EXPORTS 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_upper
_dig_vec_lower _dig_vec_lower
bmove_upp bmove_upp

View File

@ -1848,3 +1848,35 @@ select hex(_utf8 B'001111111111');
ERROR HY000: Invalid utf8 character string: 'FF' ERROR HY000: Invalid utf8 character string: 'FF'
select (_utf8 X'616263FF'); select (_utf8 X'616263FF');
ERROR HY000: Invalid utf8 character string: 'FF' 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

View File

@ -68,7 +68,7 @@ Warnings:
Error 1259 ZLIB: Input data corrupted 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) Error 1256 Uncompressed data size too large; the maximum size is 1048576 (probably, length of uncompressed data was corrupted)
drop table t1; 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; select compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null;
compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null compress(repeat('aaaaaaaaaa', IF(XXX, 10, 10000000))) is null
0 0

View File

@ -2,10 +2,7 @@ SET @start_global_value = @@global.max_allowed_packet;
SELECT @start_global_value; SELECT @start_global_value;
@start_global_value @start_global_value
1048576 1048576
SET @start_session_value = @@session.max_allowed_packet; SET @@global.max_allowed_packet = DEFAULT;
SELECT @start_session_value;
@start_session_value
1048576
'#--------------------FN_DYNVARS_070_01-------------------------#' '#--------------------FN_DYNVARS_070_01-------------------------#'
SET @@global.max_allowed_packet = 1000; SET @@global.max_allowed_packet = 1000;
Warnings: Warnings:
@ -15,7 +12,9 @@ SELECT @@global.max_allowed_packet;
@@global.max_allowed_packet @@global.max_allowed_packet
1048576 1048576
SET @@session.max_allowed_packet = 20000; 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; SET @@session.max_allowed_packet = DEFAULT;
ERROR 42000: Variable 'max_allowed_packet' doesn't have a default value
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet @@session.max_allowed_packet
1048576 1048576
@ -24,10 +23,6 @@ SET @@global.max_allowed_packet = DEFAULT;
SELECT @@global.max_allowed_packet = 1048576; SELECT @@global.max_allowed_packet = 1048576;
@@global.max_allowed_packet = 1048576 @@global.max_allowed_packet = 1048576
1 1
SET @@session.max_allowed_packet = DEFAULT;
SELECT @@session.max_allowed_packet = 1048576;
@@session.max_allowed_packet = 1048576
1
'#--------------------FN_DYNVARS_070_03-------------------------#' '#--------------------FN_DYNVARS_070_03-------------------------#'
SET @@global.max_allowed_packet = 1024; SET @@global.max_allowed_packet = 1024;
SELECT @@global.max_allowed_packet; SELECT @@global.max_allowed_packet;
@ -48,25 +43,30 @@ SELECT @@global.max_allowed_packet;
1073740800 1073740800
'#--------------------FN_DYNVARS_070_04-------------------------#' '#--------------------FN_DYNVARS_070_04-------------------------#'
SET @@session.max_allowed_packet = 1024; 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; SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet @@session.max_allowed_packet
1024 1048576
SET @@session.max_allowed_packet = 1025; 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; SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet @@session.max_allowed_packet
1024 1048576
SET @@session.max_allowed_packet = 65535; 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; SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet @@session.max_allowed_packet
64512 1048576
SET @@session.max_allowed_packet = 1073741824; 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; SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet @@session.max_allowed_packet
1073741824 1048576
SET @@session.max_allowed_packet = 1073741823; 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; SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet @@session.max_allowed_packet
1073740800 1048576
'#------------------FN_DYNVARS_070_05-----------------------#' '#------------------FN_DYNVARS_070_05-----------------------#'
SET @@global.max_allowed_packet = 0; SET @@global.max_allowed_packet = 0;
Warnings: Warnings:
@ -103,37 +103,33 @@ SELECT @@global.max_allowed_packet;
@@global.max_allowed_packet @@global.max_allowed_packet
1073741824 1073741824
SET @@session.max_allowed_packet = 0; SET @@session.max_allowed_packet = 0;
Warnings: ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
Warning 1292 Truncated incorrect max_allowed_packet value: '0'
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet @@session.max_allowed_packet
1024 1048576
SET @@session.max_allowed_packet = 1023; SET @@session.max_allowed_packet = 1023;
Warnings: ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
Warning 1292 Truncated incorrect max_allowed_packet value: '1023'
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet @@session.max_allowed_packet
1024 1048576
SET @@session.max_allowed_packet = -2; SET @@session.max_allowed_packet = -2;
Warnings: ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
Warning 1292 Truncated incorrect max_allowed_packet value: '0'
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet @@session.max_allowed_packet
1024 1048576
SET @@session.max_allowed_packet = 65530.34.; 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 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; SET @@session.max_allowed_packet = 10737418241;
Warnings: ERROR HY000: SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
Warning 1292 Truncated incorrect max_allowed_packet value: '10737418241'
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet @@session.max_allowed_packet
1073741824 1048576
'Bug # 34837: Errors are not coming on assigning invalid values to variable'; 'Bug # 34837: Errors are not coming on assigning invalid values to variable';
SET @@session.max_allowed_packet = test; SET @@session.max_allowed_packet = test;
ERROR 42000: Incorrect argument type to variable 'max_allowed_packet' ERROR 42000: Incorrect argument type to variable 'max_allowed_packet'
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet @@session.max_allowed_packet
1073741824 1048576
'#------------------FN_DYNVARS_070_06-----------------------#' '#------------------FN_DYNVARS_070_06-----------------------#'
SELECT @@global.max_allowed_packet = VARIABLE_VALUE SELECT @@global.max_allowed_packet = VARIABLE_VALUE
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
@ -166,6 +162,7 @@ SELECT @@max_allowed_packet = @@global.max_allowed_packet;
0 0
'#---------------------FN_DYNVARS_070_10----------------------#' '#---------------------FN_DYNVARS_070_10----------------------#'
SET @@max_allowed_packet = 100000; 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; SELECT @@max_allowed_packet = @@local.max_allowed_packet;
@@max_allowed_packet = @@local.max_allowed_packet @@max_allowed_packet = @@local.max_allowed_packet
1 1
@ -174,9 +171,10 @@ SELECT @@local.max_allowed_packet = @@session.max_allowed_packet;
1 1
'#---------------------FN_DYNVARS_070_11----------------------#' '#---------------------FN_DYNVARS_070_11----------------------#'
SET max_allowed_packet = 1024; 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; SELECT @@max_allowed_packet;
@@max_allowed_packet @@max_allowed_packet
1024 1048576
SELECT local.max_allowed_packet; SELECT local.max_allowed_packet;
ERROR 42S02: Unknown table 'local' in field list ERROR 42S02: Unknown table 'local' in field list
SELECT session.max_allowed_packet; SELECT session.max_allowed_packet;
@ -187,7 +185,6 @@ SET @@global.max_allowed_packet = @start_global_value;
SELECT @@global.max_allowed_packet; SELECT @@global.max_allowed_packet;
@@global.max_allowed_packet @@global.max_allowed_packet
1048576 1048576
SET @@session.max_allowed_packet = @start_session_value;
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
@@session.max_allowed_packet @@session.max_allowed_packet
1048576 1048576

View File

@ -10,24 +10,15 @@ name BLOB
'#--------------------FN_DYNVARS_070_01-------------------------#' '#--------------------FN_DYNVARS_070_01-------------------------#'
## Setting value of max_allowed packet and net_buffer_length to 1024 ## ## Setting value of max_allowed packet and net_buffer_length to 1024 ##
SET @@session.max_allowed_packet = 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; SELECT @@session.max_allowed_packet;
@@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; SELECT @@session.net_buffer_length;
@@session.net_buffer_length @@session.net_buffer_length
1024 16384
## Inserting and fetching data of length greater than 1024 ##
INSERT into t1(name) values("aaassssssssddddddddffffffgggggggg, askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk");
SELECT length("aaaaaasssssssssssdddddddfffffgggg, askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk") as len;
len
1470
## Verifying record in table t1 ##
SELECT * from t1;
id name
1 aaassssssssddddddddffffffgggggggg, askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
'Bug#35381: Error is not coming on inserting and fetching data of length'
'greater than max_allowed_packet size at session level';
'#--------------------FN_DYNVARS_070_02-------------------------#' '#--------------------FN_DYNVARS_070_02-------------------------#'
## Setting value of max_allowed packet and net_buffer_length to 1024 ## ## Setting value of max_allowed packet and net_buffer_length to 1024 ##
SET @@global.max_allowed_packet = 1024; SET @@global.max_allowed_packet = 1024;

View File

@ -1,5 +1,5 @@
SET @start_global_value = @@global.net_buffer_length; 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-------------------------#' '#--------------------FN_DYNVARS_109_01-------------------------#'
SET @@global.net_buffer_length = 10000; SET @@global.net_buffer_length = 10000;
SET @@global.net_buffer_length = DEFAULT; SET @@global.net_buffer_length = DEFAULT;
@ -7,7 +7,9 @@ SELECT @@global.net_buffer_length;
@@global.net_buffer_length @@global.net_buffer_length
16384 16384
SET @@session.net_buffer_length = 20000; 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; SET @@session.net_buffer_length = DEFAULT;
ERROR 42000: Variable 'net_buffer_length' doesn't have a default value
SELECT @@session.net_buffer_length; SELECT @@session.net_buffer_length;
@@session.net_buffer_length @@session.net_buffer_length
16384 16384
@ -16,10 +18,6 @@ SET @@global.net_buffer_length = DEFAULT;
SELECT @@global.net_buffer_length = 16384; SELECT @@global.net_buffer_length = 16384;
@@global.net_buffer_length = 16384 @@global.net_buffer_length = 16384
1 1
SET @@session.net_buffer_length = DEFAULT;
SELECT @@session.net_buffer_length = 16384;
@@session.net_buffer_length = 16384
1
'#--------------------FN_DYNVARS_109_03-------------------------#' '#--------------------FN_DYNVARS_109_03-------------------------#'
SET @@global.net_buffer_length = 1024; SET @@global.net_buffer_length = 1024;
SELECT @@global.net_buffer_length; SELECT @@global.net_buffer_length;
@ -43,27 +41,6 @@ SELECT @@global.net_buffer_length;
64512 64512
'Bug# 34877: Invalid Values are coming in variable on assigning valid values'; 'Bug# 34877: Invalid Values are coming in variable on assigning valid values';
'#--------------------FN_DYNVARS_109_04-------------------------#' '#--------------------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-----------------------#' '#------------------FN_DYNVARS_109_05-----------------------#'
SET @@global.net_buffer_length = 0; SET @@global.net_buffer_length = 0;
Warnings: Warnings:
@ -105,42 +82,12 @@ ERROR 42000: Incorrect argument type to variable 'net_buffer_length'
SELECT @@global.net_buffer_length; SELECT @@global.net_buffer_length;
@@global.net_buffer_length @@global.net_buffer_length
1048576 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'; 'Bug # 34837: Errors are not coming on assigning invalid values to variable';
SET @@session.net_buffer_length = test; SET @@session.net_buffer_length = test;
ERROR 42000: Incorrect argument type to variable 'net_buffer_length' ERROR 42000: Incorrect argument type to variable 'net_buffer_length'
SELECT @@session.net_buffer_length; SELECT @@session.net_buffer_length;
@@session.net_buffer_length @@session.net_buffer_length
65536 16384
'#------------------FN_DYNVARS_109_06-----------------------#' '#------------------FN_DYNVARS_109_06-----------------------#'
SELECT @@global.net_buffer_length = VARIABLE_VALUE SELECT @@global.net_buffer_length = VARIABLE_VALUE
FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
@ -172,18 +119,10 @@ SELECT @@net_buffer_length = @@global.net_buffer_length;
@@net_buffer_length = @@global.net_buffer_length @@net_buffer_length = @@global.net_buffer_length
0 0
'#---------------------FN_DYNVARS_109_10----------------------#' '#---------------------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----------------------#' '#---------------------FN_DYNVARS_109_11----------------------#'
SET net_buffer_length = 1024;
SELECT @@net_buffer_length; SELECT @@net_buffer_length;
@@net_buffer_length @@net_buffer_length
1024 16384
SELECT local.net_buffer_length; SELECT local.net_buffer_length;
ERROR 42S02: Unknown table 'local' in field list ERROR 42S02: Unknown table 'local' in field list
SELECT session.net_buffer_length; SELECT session.net_buffer_length;
@ -191,4 +130,3 @@ ERROR 42S02: Unknown table 'session' in field list
SELECT net_buffer_length = @@session.net_buffer_length; SELECT net_buffer_length = @@session.net_buffer_length;
ERROR 42S22: Unknown column 'net_buffer_length' in 'field list' ERROR 42S22: Unknown column 'net_buffer_length' in 'field list'
SET @@global.net_buffer_length = @start_global_value; SET @@global.net_buffer_length = @start_global_value;
SET @@session.net_buffer_length = @start_session_value;

View File

@ -1,32 +1,22 @@
set global max_allowed_packet=100; set global max_allowed_packet=100;
Warnings: Warnings:
Warning 1292 Truncated incorrect max_allowed_packet value: '100' 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; set global net_buffer_length=100;
Warnings: Warnings:
Warning 1292 Truncated incorrect net_buffer_length value: '100' 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("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len; SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
len len
1024 1024
select repeat('a',2000); select repeat('a',2000);
repeat('a',2000) repeat('a',2000)
NULL aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Warnings:
Warning 1301 Result of repeat() was larger than max_allowed_packet (1024) - truncated
select @@net_buffer_length, @@max_allowed_packet; select @@net_buffer_length, @@max_allowed_packet;
@@net_buffer_length @@max_allowed_packet @@net_buffer_length @@max_allowed_packet
1024 1024 1024 1024
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len; SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
ERROR 08S01: Got a packet bigger than 'max_allowed_packet' bytes ERROR 08S01: Got a packet bigger than 'max_allowed_packet' bytes
set global max_allowed_packet=default; set global max_allowed_packet=default;
set max_allowed_packet=default;
set global net_buffer_length=default; set global net_buffer_length=default;
set net_buffer_length=default;
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len; SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
len len
100 100

View File

@ -1343,10 +1343,10 @@ t3 CREATE TABLE `t3` (
`left(a,100000000)` longtext `left(a,100000000)` longtext
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
drop tables t1,t2,t3; drop tables t1,t2,t3;
SELECT @tmp_max:= @@max_allowed_packet; SELECT @tmp_max:= @@global.max_allowed_packet;
@tmp_max:= @@max_allowed_packet @tmp_max:= @@global.max_allowed_packet
1048576 1048576
SET max_allowed_packet=25000000; SET @@global.max_allowed_packet=25000000;
CREATE TABLE t1 (a mediumtext); CREATE TABLE t1 (a mediumtext);
CREATE TABLE t2 (b varchar(20)); CREATE TABLE t2 (b varchar(20));
INSERT INTO t1 VALUES ('a'); INSERT INTO t1 VALUES ('a');
@ -1384,7 +1384,7 @@ t3 CREATE TABLE `t3` (
`a` varbinary(510) DEFAULT NULL `a` varbinary(510) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ) ENGINE=MyISAM DEFAULT CHARSET=latin1
DROP TABLES t1,t2,t3; 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); create table t1 ( id int not null auto_increment, primary key (id), col1 int);
insert into t1 (col1) values (2),(3),(4),(5),(6); insert into t1 (col1) values (2),(3),(4),(5),(6);
select 99 union all select id from t1 order by 1; select 99 union all select id from t1 order by 1;

View File

@ -228,7 +228,6 @@ VARIABLE_NAME VARIABLE_VALUE
MYISAM_MAX_SORT_FILE_SIZE FILE_SIZE MYISAM_MAX_SORT_FILE_SIZE FILE_SIZE
set global net_retry_count=10, session net_retry_count=10; 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 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_%'; show global variables like 'net_%';
Variable_name Value Variable_name Value
net_buffer_length 1024 net_buffer_length 1024
@ -243,57 +242,45 @@ NET_RETRY_COUNT 10
NET_WRITE_TIMEOUT 200 NET_WRITE_TIMEOUT 200
show session variables like 'net_%'; show session variables like 'net_%';
Variable_name Value Variable_name Value
net_buffer_length 2048 net_buffer_length 16384
net_read_timeout 600 net_read_timeout 30
net_retry_count 10 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; select * from information_schema.session_variables where variable_name like 'net_%' order by 1;
VARIABLE_NAME VARIABLE_VALUE VARIABLE_NAME VARIABLE_VALUE
NET_BUFFER_LENGTH 2048 NET_BUFFER_LENGTH 16384
NET_READ_TIMEOUT 600 NET_READ_TIMEOUT 30
NET_RETRY_COUNT 10 NET_RETRY_COUNT 10
NET_WRITE_TIMEOUT 500 NET_WRITE_TIMEOUT 60
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_%'; show global variables like 'net_%';
Variable_name Value Variable_name Value
net_buffer_length 1024 net_buffer_length 7168
net_read_timeout 900 net_read_timeout 900
net_retry_count 10 net_retry_count 10
net_write_timeout 1000 net_write_timeout 1000
select * from information_schema.global_variables where variable_name like 'net_%' order by 1; select * from information_schema.global_variables where variable_name like 'net_%' order by 1;
VARIABLE_NAME VARIABLE_VALUE VARIABLE_NAME VARIABLE_VALUE
NET_BUFFER_LENGTH 1024 NET_BUFFER_LENGTH 7168
NET_READ_TIMEOUT 900 NET_READ_TIMEOUT 900
NET_RETRY_COUNT 10 NET_RETRY_COUNT 10
NET_WRITE_TIMEOUT 1000 NET_WRITE_TIMEOUT 1000
show session variables like 'net_%'; set global net_buffer_length=1;
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;
Warnings: Warnings:
Warning 1292 Truncated incorrect net_buffer_length value: '1' 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 Variable_name Value
net_buffer_length 1024 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 VARIABLE_NAME VARIABLE_VALUE
NET_BUFFER_LENGTH 1024 NET_BUFFER_LENGTH 1024
set net_buffer_length=2000000000; set global net_buffer_length=2000000000;
Warnings: Warnings:
Warning 1292 Truncated incorrect net_buffer_length value: '2000000000' 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 Variable_name Value
net_buffer_length 1048576 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 VARIABLE_NAME VARIABLE_VALUE
NET_BUFFER_LENGTH 1048576 NET_BUFFER_LENGTH 1048576
set character set cp1251_koi8; set character set cp1251_koi8;
@ -461,7 +448,7 @@ select @@long_query_time;
@@long_query_time @@long_query_time
100.000001 100.000001
set low_priority_updates=1; set low_priority_updates=1;
set max_allowed_packet=100; set global max_allowed_packet=100;
Warnings: Warnings:
Warning 1292 Truncated incorrect max_allowed_packet value: '100' Warning 1292 Truncated incorrect max_allowed_packet value: '100'
set global max_binlog_cache_size=100; set global max_binlog_cache_size=100;
@ -485,7 +472,7 @@ select @@max_user_connections;
100 100
set global max_write_lock_count=100; set global max_write_lock_count=100;
set myisam_sort_buffer_size=100; set myisam_sort_buffer_size=100;
set net_buffer_length=100; set global net_buffer_length=100;
Warnings: Warnings:
Warning 1292 Truncated incorrect net_buffer_length value: '100' Warning 1292 Truncated incorrect net_buffer_length value: '100'
set net_read_timeout=100; set net_read_timeout=100;

View File

@ -1439,3 +1439,20 @@ select hex(_utf8 X'616263FF');
select hex(_utf8 B'001111111111'); select hex(_utf8 B'001111111111');
--error ER_INVALID_CHARACTER_STRING --error ER_INVALID_CHARACTER_STRING
select (_utf8 X'616263FF'); 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

View File

@ -43,8 +43,11 @@ drop table t1;
# note that when LOW_MEMORY is set the "test" below is meaningless # 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 --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; eval select compress(repeat('aaaaaaaaaa', IF('$LOW_MEMORY', 10, 10000000))) is null;
# #

View File

@ -8,7 +8,9 @@
-- disable_query_log -- disable_query_log
-- disable_result_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; DROP TABLE IF EXISTS bug34300;
CREATE TABLE bug34300 ( CREATE TABLE bug34300 (

View File

@ -36,8 +36,13 @@
SET @start_global_value = @@global.max_allowed_packet; SET @start_global_value = @@global.max_allowed_packet;
SELECT @start_global_value; 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-------------------------#' --echo '#--------------------FN_DYNVARS_070_01-------------------------#'
@ -49,7 +54,9 @@ SET @@global.max_allowed_packet = 1000;
SET @@global.max_allowed_packet = DEFAULT; SET @@global.max_allowed_packet = DEFAULT;
SELECT @@global.max_allowed_packet; SELECT @@global.max_allowed_packet;
--Error ER_VARIABLE_IS_READONLY
SET @@session.max_allowed_packet = 20000; SET @@session.max_allowed_packet = 20000;
--Error ER_NO_DEFAULT
SET @@session.max_allowed_packet = DEFAULT; SET @@session.max_allowed_packet = DEFAULT;
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
@ -62,9 +69,6 @@ SELECT @@session.max_allowed_packet;
SET @@global.max_allowed_packet = DEFAULT; SET @@global.max_allowed_packet = DEFAULT;
SELECT @@global.max_allowed_packet = 1048576; SELECT @@global.max_allowed_packet = 1048576;
SET @@session.max_allowed_packet = DEFAULT;
SELECT @@session.max_allowed_packet = 1048576;
--echo '#--------------------FN_DYNVARS_070_03-------------------------#' --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 # # 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; SET @@session.max_allowed_packet = 1024;
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
--Error ER_VARIABLE_IS_READONLY
SET @@session.max_allowed_packet = 1025; SET @@session.max_allowed_packet = 1025;
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
--Error ER_VARIABLE_IS_READONLY
SET @@session.max_allowed_packet = 65535; SET @@session.max_allowed_packet = 65535;
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
--Error ER_VARIABLE_IS_READONLY
SET @@session.max_allowed_packet = 1073741824; SET @@session.max_allowed_packet = 1073741824;
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
--Error ER_VARIABLE_IS_READONLY
SET @@session.max_allowed_packet = 1073741823; SET @@session.max_allowed_packet = 1073741823;
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
@ -118,14 +127,18 @@ SELECT @@global.max_allowed_packet;
SET @@global.max_allowed_packet = test; SET @@global.max_allowed_packet = test;
SELECT @@global.max_allowed_packet; SELECT @@global.max_allowed_packet;
--Error ER_VARIABLE_IS_READONLY
SET @@session.max_allowed_packet = 0; SET @@session.max_allowed_packet = 0;
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
--Error ER_VARIABLE_IS_READONLY
SET @@session.max_allowed_packet = 1023; SET @@session.max_allowed_packet = 1023;
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
--Error ER_VARIABLE_IS_READONLY
SET @@session.max_allowed_packet = -2; SET @@session.max_allowed_packet = -2;
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
--Error ER_PARSE_ERROR --Error ER_PARSE_ERROR
SET @@session.max_allowed_packet = 65530.34.; SET @@session.max_allowed_packet = 65530.34.;
--Error ER_VARIABLE_IS_READONLY
SET @@session.max_allowed_packet = 10737418241; SET @@session.max_allowed_packet = 10737418241;
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
--echo 'Bug # 34837: Errors are not coming on assigning invalid values to variable'; --echo 'Bug # 34837: Errors are not coming on assigning invalid values to variable';
@ -180,6 +193,7 @@ SELECT @@max_allowed_packet = @@global.max_allowed_packet;
# Check if accessing variable with SESSION,LOCAL and without SCOPE points to same session variable # # 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; SET @@max_allowed_packet = 100000;
SELECT @@max_allowed_packet = @@local.max_allowed_packet; SELECT @@max_allowed_packet = @@local.max_allowed_packet;
SELECT @@local.max_allowed_packet = @@session.max_allowed_packet; SELECT @@local.max_allowed_packet = @@session.max_allowed_packet;
@ -190,6 +204,7 @@ SELECT @@local.max_allowed_packet = @@session.max_allowed_packet;
# Check if max_allowed_packet can be accessed with and without @@ sign # # Check if max_allowed_packet can be accessed with and without @@ sign #
############################################################################# #############################################################################
--Error ER_VARIABLE_IS_READONLY
SET max_allowed_packet = 1024; SET max_allowed_packet = 1024;
SELECT @@max_allowed_packet; SELECT @@max_allowed_packet;
--Error ER_UNKNOWN_TABLE --Error ER_UNKNOWN_TABLE
@ -204,9 +219,9 @@ SELECT max_allowed_packet = @@session.max_allowed_packet;
# Restore initial value # # Restore initial value #
#################################### ####################################
connection default;
SET @@global.max_allowed_packet = @start_global_value; SET @@global.max_allowed_packet = @start_global_value;
SELECT @@global.max_allowed_packet; SELECT @@global.max_allowed_packet;
SET @@session.max_allowed_packet = @start_session_value;
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;

View File

@ -43,26 +43,19 @@ name BLOB
--echo '#--------------------FN_DYNVARS_070_01-------------------------#' --echo '#--------------------FN_DYNVARS_070_01-------------------------#'
############################################################################### ###############################################################################
# Setting initial value of max_allowed_packet to 1024 at session level and # Setting initial value of max_allowed_packet to 1024 at session level
# verifying its behavior after inserting data greater than 1024 bytes # should result in an error (session variable is readonly)
############################################################################### ###############################################################################
--echo ## Setting value of max_allowed packet and net_buffer_length to 1024 ## --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.max_allowed_packet = 1024;
SET @@session.net_buffer_length = 1024;
SELECT @@session.max_allowed_packet; SELECT @@session.max_allowed_packet;
--error ER_VARIABLE_IS_READONLY
SET @@session.net_buffer_length = 1024;
SELECT @@session.net_buffer_length; 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;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk");
SELECT length("aaaaaasssssssssssdddddddfffffgggg, askdlfjalsdkjfalksdjflaksdjfalkjdflaksjdflakjdflajsflajflajdfalsjfdlajfladjslfajdflajdsflajsflakjsdfla;kjflsdjkf;aljfa;lkdsfjla;sjlkajffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllakjsdffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa;;;;;;;;;;;;;;;;;;;;;;;;;;;dsklfjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjkljffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdkskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk") as len;
--echo ## Verifying record in table t1 ##
SELECT * from t1;
--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-------------------------#' --echo '#--------------------FN_DYNVARS_070_02-------------------------#'
############################################################################### ###############################################################################

View File

@ -38,9 +38,13 @@
SET @start_global_value = @@global.net_buffer_length; SET @start_global_value = @@global.net_buffer_length;
# Due to differences in results of linux and windows # Due to differences in results of linux and windows
#SELECT @start_global_value; #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-------------------------#' --echo '#--------------------FN_DYNVARS_109_01-------------------------#'
################################################################# #################################################################
@ -51,7 +55,9 @@ SET @@global.net_buffer_length = 10000;
SET @@global.net_buffer_length = DEFAULT; SET @@global.net_buffer_length = DEFAULT;
SELECT @@global.net_buffer_length; SELECT @@global.net_buffer_length;
--Error ER_VARIABLE_IS_READONLY
SET @@session.net_buffer_length = 20000; SET @@session.net_buffer_length = 20000;
--Error ER_NO_DEFAULT
SET @@session.net_buffer_length = DEFAULT; SET @@session.net_buffer_length = DEFAULT;
SELECT @@session.net_buffer_length; SELECT @@session.net_buffer_length;
@ -64,9 +70,6 @@ SELECT @@session.net_buffer_length;
SET @@global.net_buffer_length = DEFAULT; SET @@global.net_buffer_length = DEFAULT;
SELECT @@global.net_buffer_length = 16384; SELECT @@global.net_buffer_length = 16384;
SET @@session.net_buffer_length = DEFAULT;
SELECT @@session.net_buffer_length = 16384;
--echo '#--------------------FN_DYNVARS_109_03-------------------------#' --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 # # Change the value of net_buffer_length to a valid value for SESSION Scope #
############################################################################ ############################################################################
SET @@session.net_buffer_length = 1024; # Bug#22891: SESSION net_buffer_length is now read-only; assignments skipped
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';
--echo '#------------------FN_DYNVARS_109_05-----------------------#' --echo '#------------------FN_DYNVARS_109_05-----------------------#'
@ -126,18 +119,8 @@ SELECT @@global.net_buffer_length;
SET @@global.net_buffer_length = test; SET @@global.net_buffer_length = test;
SELECT @@global.net_buffer_length; SELECT @@global.net_buffer_length;
SET @@session.net_buffer_length = 0; # Bug#22891: SESSION net_buffer_length is now read-only; assignments skipped
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;
--echo 'Bug # 34837: Errors are not coming on assigning invalid values to variable'; --echo 'Bug # 34837: Errors are not coming on assigning invalid values to variable';
--Error ER_WRONG_TYPE_FOR_VAR --Error ER_WRONG_TYPE_FOR_VAR
@ -190,9 +173,7 @@ SELECT @@net_buffer_length = @@global.net_buffer_length;
# Check if accessing variable with SESSION,LOCAL and without SCOPE points to same session variable # # Check if accessing variable with SESSION,LOCAL and without SCOPE points to same session variable #
######################################################################################################## ########################################################################################################
SET @@net_buffer_length = 100000; # Bug#22891: SESSION net_buffer_length is now read-only; assignments skipped
SELECT @@net_buffer_length = @@local.net_buffer_length;
SELECT @@local.net_buffer_length = @@session.net_buffer_length;
--echo '#---------------------FN_DYNVARS_109_11----------------------#' --echo '#---------------------FN_DYNVARS_109_11----------------------#'
@ -200,7 +181,7 @@ SELECT @@local.net_buffer_length = @@session.net_buffer_length;
# Check if net_buffer_length can be accessed with and without @@ sign # # 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; SELECT @@net_buffer_length;
--Error ER_UNKNOWN_TABLE --Error ER_UNKNOWN_TABLE
SELECT local.net_buffer_length; SELECT local.net_buffer_length;
@ -214,11 +195,11 @@ SELECT net_buffer_length = @@session.net_buffer_length;
# Restore initial value # # Restore initial value #
#################################### ####################################
connection default;
SET @@global.net_buffer_length = @start_global_value; SET @@global.net_buffer_length = @start_global_value;
# Due to differences in results of linux and windows # Due to differences in results of linux and windows
#SELECT @@global.net_buffer_length; #SELECT @@global.net_buffer_length;
SET @@session.net_buffer_length = @start_session_value;
#SELECT @@session.net_buffer_length;
###################################################### ######################################################

View File

@ -8,30 +8,30 @@
# Check protocol handling # Check protocol handling
# #
connect (con1,localhost,root,,); # setting values below minimum threshold of 1024 will cause truncating
connection con1;
set global max_allowed_packet=100; set global max_allowed_packet=100;
set max_allowed_packet=100;
set global net_buffer_length=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("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len; SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
# Should return NULL as 2000 is bigger than max_allowed_packet
select repeat('a',2000); 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,,); connect (con1,localhost,root,,);
connection con2; connection con1;
select @@net_buffer_length, @@max_allowed_packet; select @@net_buffer_length, @@max_allowed_packet;
--error 1153 --error 1153
SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len; SELECT length("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
#
# Reset to default values and reconnect
#
set global max_allowed_packet=default; set global max_allowed_packet=default;
set max_allowed_packet=default;
set global net_buffer_length=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("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa") as len;
select length(repeat('a',2000)); select length(repeat('a',2000));

View File

@ -861,8 +861,10 @@ drop tables t1,t2,t3;
# exceeds mediumtext maximum length # exceeds mediumtext maximum length
# #
SELECT @tmp_max:= @@max_allowed_packet; SELECT @tmp_max:= @@global.max_allowed_packet;
SET max_allowed_packet=25000000; 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 t1 (a mediumtext);
CREATE TABLE t2 (b varchar(20)); CREATE TABLE t2 (b varchar(20));
INSERT INTO t1 VALUES ('a'); 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; CREATE TABLE t3 SELECT REPEAT(a,2) AS a FROM t1 UNION SELECT b FROM t2;
SHOW CREATE TABLE t3; SHOW CREATE TABLE t3;
DROP TABLES t1,t2,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 # Bug #10032 Bug in parsing UNION with ORDER BY when one node does not use FROM

View File

@ -146,25 +146,23 @@ show global variables like 'myisam_max_sort_file_size';
--replace_result 9223372036853727232 FILE_SIZE 2146435072 FILE_SIZE --replace_result 9223372036853727232 FILE_SIZE 2146435072 FILE_SIZE
select * from information_schema.global_variables where variable_name like 'myisam_max_sort_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_retry_count=10, session net_retry_count=10;
set global net_buffer_length=1024, net_write_timeout=200, net_read_timeout=300; 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_%'; show global variables like 'net_%';
select * from information_schema.global_variables where variable_name like 'net_%' order by 1; select * from information_schema.global_variables where variable_name like 'net_%' order by 1;
show session variables like 'net_%'; show session variables like 'net_%';
select * from information_schema.session_variables where variable_name like 'net_%' order by 1; 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_%'; show global variables like 'net_%';
select * from information_schema.global_variables where variable_name like 'net_%' order by 1; select * from information_schema.global_variables where variable_name like 'net_%' order by 1;
show session variables like 'net_%'; set global net_buffer_length=1;
select * from information_schema.session_variables where variable_name like 'net_%' order by 1; show global variables like 'net_buffer_length';
set net_buffer_length=1; select * from information_schema.global_variables where variable_name like 'net_buffer_length';
show variables like 'net_buffer_length';
select * from information_schema.session_variables where variable_name like 'net_buffer_length';
#warning 1292 #warning 1292
set net_buffer_length=2000000000; set global net_buffer_length=2000000000;
show variables like 'net_buffer_length'; show global variables like 'net_buffer_length';
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';
set character set cp1251_koi8; set character set cp1251_koi8;
show variables like "character_set_client"; show variables like "character_set_client";
@ -274,7 +272,7 @@ select @@long_query_time;
set long_query_time=100.000001; set long_query_time=100.000001;
select @@long_query_time; select @@long_query_time;
set low_priority_updates=1; 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_cache_size=100;
set global max_binlog_size=100; set global max_binlog_size=100;
set global max_connect_errors=100; set global max_connect_errors=100;
@ -288,7 +286,7 @@ set global max_user_connections=100;
select @@max_user_connections; select @@max_user_connections;
set global max_write_lock_count=100; set global max_write_lock_count=100;
set myisam_sort_buffer_size=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_read_timeout=100;
set net_write_timeout=100; set net_write_timeout=100;
set global query_cache_limit=100; set global query_cache_limit=100;

View File

@ -85,6 +85,8 @@ char *my_tmpdir(MY_TMPDIR *tmpdir)
void free_tmpdir(MY_TMPDIR *tmpdir) void free_tmpdir(MY_TMPDIR *tmpdir)
{ {
uint i; uint i;
if (!tmpdir->full_list.elements)
return;
for (i=0; i<=tmpdir->max; i++) for (i=0; i<=tmpdir->max; i++)
my_free(tmpdir->list[i], MYF(0)); my_free(tmpdir->list[i], MYF(0));
delete_dynamic(&tmpdir->full_list); delete_dynamic(&tmpdir->full_list);

View File

@ -397,9 +397,10 @@ invalid value '%s'",
my_progname, optp->name, optend); my_progname, optp->name, optend);
continue; continue;
} }
get_one_option(optp->id, optp, if (get_one_option(optp->id, optp,
*((my_bool*) value) ? *((my_bool*) value) ?
(char*) "1" : disabled_my_option); (char*) "1" : disabled_my_option))
return EXIT_ARGUMENT_INVALID;
continue; continue;
} }
argument= optend; argument= optend;
@ -457,7 +458,8 @@ invalid value '%s'",
optp->arg_type == NO_ARG) optp->arg_type == NO_ARG)
{ {
*((my_bool*) optp->value)= (my_bool) 1; *((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; continue;
} }
else if (optp->arg_type == REQUIRED_ARG || else if (optp->arg_type == REQUIRED_ARG ||
@ -476,7 +478,8 @@ invalid value '%s'",
{ {
if (optp->var_type == GET_BOOL) if (optp->var_type == GET_BOOL)
*((my_bool*) optp->value)= (my_bool) 1; *((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; continue;
} }
/* Check if there are more arguments after this one */ /* Check if there are more arguments after this one */
@ -501,7 +504,8 @@ invalid value '%s'",
my_progname, argument, optp->name); my_progname, argument, optp->name);
return error; return error;
} }
get_one_option(optp->id, optp, argument); if (get_one_option(optp->id, optp, argument))
return EXIT_UNSPECIFIED_ERROR;
break; break;
} }
} }
@ -524,7 +528,8 @@ invalid value '%s'",
my_progname, argument, optp->name); my_progname, argument, optp->name);
return error; 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 */ (*argc)--; /* option handled (short or long), decrease argument count */
} }

View File

@ -3627,7 +3627,7 @@ int ha_init_key_cache(const char *name, KEY_CACHE *key_cache)
if (!key_cache->key_cache_inited) if (!key_cache->key_cache_inited)
{ {
pthread_mutex_lock(&LOCK_global_system_variables); 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 tmp_block_size= (uint) key_cache->param_block_size;
uint division_limit= key_cache->param_division_limit; uint division_limit= key_cache->param_division_limit;
uint age_threshold= key_cache->param_age_threshold; uint age_threshold= key_cache->param_age_threshold;
@ -3651,7 +3651,7 @@ int ha_resize_key_cache(KEY_CACHE *key_cache)
if (key_cache->key_cache_inited) if (key_cache->key_cache_inited)
{ {
pthread_mutex_lock(&LOCK_global_system_variables); 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; long tmp_block_size= (long) key_cache->param_block_size;
uint division_limit= key_cache->param_division_limit; uint division_limit= key_cache->param_division_limit;
uint age_threshold= key_cache->param_age_threshold; uint age_threshold= key_cache->param_age_threshold;

View File

@ -3810,11 +3810,14 @@ static user_var_entry *get_variable(HASH *hash, LEX_STRING &name,
bool Item_func_set_user_var::set_entry(THD *thd, bool create_if_not_exists) 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 goto end; // update entry->update_query_id for PS
entry_thd= thd;
if (!(entry= get_variable(&thd->user_vars, name, create_if_not_exists))) if (!(entry= get_variable(&thd->user_vars, name, create_if_not_exists)))
{
entry_thread_id= 0;
return TRUE; return TRUE;
}
entry_thread_id= thd->thread_id;
/* /*
Remember the last query which updated it, this way a query can later know 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 if this variable is a constant item in the query (it is if update_query_id

View File

@ -1295,16 +1295,16 @@ class Item_func_set_user_var :public Item_func
enum Item_result cached_result_type; enum Item_result cached_result_type;
user_var_entry *entry; 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); 1) to skip unnecessary updates of the entry field (see above);
2) to reset the entry field that was initialized in the other thread 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 (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 prevents updates of one connection user variables from a concurrent
connection calling the same trigger that initially updated some connection calling the same trigger that initially updated some
user variable it the first connection context). user variable it the first connection context).
*/ */
THD *entry_thd; my_thread_id entry_thread_id;
char buffer[MAX_FIELD_WIDTH]; char buffer[MAX_FIELD_WIDTH];
String value; String value;
my_decimal decimal_buff; my_decimal decimal_buff;
@ -1321,7 +1321,7 @@ public:
LEX_STRING name; // keep it public LEX_STRING name; // keep it public
Item_func_set_user_var(LEX_STRING a,Item *b) Item_func_set_user_var(LEX_STRING a,Item *b)
:Item_func(b), cached_result_type(INT_RESULT), :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; } enum Functype functype() const { return SUSERVAR_FUNC; }
double val_real(); double val_real();

View File

@ -2504,6 +2504,8 @@ void Item_char_typecast::fix_length_and_dec()
and thus avoid unnecessary character set conversion. and thus avoid unnecessary character set conversion.
- If the argument is not a number, then from_cs is set to - If the argument is not a number, then from_cs is set to
the argument's charset. the argument's charset.
Note (TODO): we could use repertoire technique here.
*/ */
from_cs= (args[0]->result_type() == INT_RESULT || from_cs= (args[0]->result_type() == INT_RESULT ||
args[0]->result_type() == DECIMAL_RESULT || args[0]->result_type() == DECIMAL_RESULT ||
@ -2511,12 +2513,13 @@ void Item_char_typecast::fix_length_and_dec()
(cast_cs->mbminlen == 1 ? cast_cs : &my_charset_latin1) : (cast_cs->mbminlen == 1 ? cast_cs : &my_charset_latin1) :
args[0]->collation.collation; args[0]->collation.collation;
charset_conversion= (cast_cs->mbmaxlen > 1) || charset_conversion= (cast_cs->mbmaxlen > 1) ||
!my_charset_same(from_cs, cast_cs) && (!my_charset_same(from_cs, cast_cs) &&
from_cs != &my_charset_bin && from_cs != &my_charset_bin &&
cast_cs != &my_charset_bin; cast_cs != &my_charset_bin);
collation.set(cast_cs, DERIVATION_IMPLICIT); collation.set(cast_cs, DERIVATION_IMPLICIT);
char_length= (cast_length >= 0) ? cast_length : char_length= (cast_length >= 0) ?
args[0]->max_length/from_cs->mbmaxlen; cast_length :
args[0]->max_length / args[0]->collation.collation->mbmaxlen;
max_length= char_length * cast_cs->mbmaxlen; max_length= char_length * cast_cs->mbmaxlen;
} }

View File

@ -733,7 +733,7 @@ uint connection_count= 0;
/* Function declarations */ /* Function declarations */
pthread_handler_t signal_hand(void *arg); 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); static void get_options(int *argc,char **argv);
extern "C" my_bool mysqld_get_one_option(int, const struct my_option *, char *); extern "C" my_bool mysqld_get_one_option(int, const struct my_option *, char *);
static void set_server_version(void); static void set_server_version(void);
@ -3141,12 +3141,12 @@ static int init_common_variables(const char *conf_file_name, int argc,
if (!rpl_filter || !binlog_filter) if (!rpl_filter || !binlog_filter)
{ {
sql_perror("Could not allocate replication and binlog filters"); 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; return 1;
mysql_init_variables();
#ifdef HAVE_TZNAME #ifdef HAVE_TZNAME
{ {
@ -3745,7 +3745,10 @@ version 5.0 and above. It is replaced by the binary log.");
{ {
/* as opt_bin_log==0, no need to free opt_bin_logname */ /* as opt_bin_log==0, no need to free opt_bin_logname */
if (!(opt_bin_logname= my_strdup(opt_update_logname, MYF(MY_WME)))) 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 \ 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 \ version 5.0 and above. It is replaced by the binary log. Now starting MySQL \
with --log-bin='%s' instead.",opt_bin_logname); with --log-bin='%s' instead.",opt_bin_logname);
@ -7348,6 +7351,7 @@ SHOW_VAR status_vars[]= {
{NullS, NullS, SHOW_LONG} {NullS, NullS, SHOW_LONG}
}; };
#ifndef EMBEDDED_LIBRARY
static void print_version(void) static void print_version(void)
{ {
set_server_version(); set_server_version();
@ -7359,7 +7363,6 @@ static void print_version(void)
server_version,SYSTEM_TYPE,MACHINE_TYPE, MYSQL_COMPILATION_COMMENT); server_version,SYSTEM_TYPE,MACHINE_TYPE, MYSQL_COMPILATION_COMMENT);
} }
#ifndef EMBEDDED_LIBRARY
static void usage(void) static void usage(void)
{ {
if (!(default_charset_info= get_charset_by_csname(default_character_set_name, if (!(default_charset_info= get_charset_by_csname(default_character_set_name,
@ -7424,7 +7427,7 @@ To see what values a running MySQL server is using, type\n\
as these are initialized by my_getopt. as these are initialized by my_getopt.
*/ */
static void mysql_init_variables(void) static int mysql_init_variables(void)
{ {
/* Things reset to zero */ /* Things reset to zero */
opt_skip_slave_start= opt_reckless_slave = 0; opt_skip_slave_start= opt_reckless_slave = 0;
@ -7505,7 +7508,10 @@ static void mysql_init_variables(void)
key_caches.empty(); key_caches.empty();
if (!(dflt_key_cache= get_or_create_key_cache(default_key_cache_base.str, if (!(dflt_key_cache= get_or_create_key_cache(default_key_cache_base.str,
default_key_cache_base.length))) 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 */ /* set key_cache_hash.default_value = dflt_key_cache */
multi_keycache_init(); multi_keycache_init();
@ -7648,6 +7654,7 @@ static void mysql_init_variables(void)
tmpenv = DEFAULT_MYSQL_HOME; tmpenv = DEFAULT_MYSQL_HOME;
(void) strmake(mysql_home, tmpenv, sizeof(mysql_home)-1); (void) strmake(mysql_home, tmpenv, sizeof(mysql_home)-1);
#endif #endif
return 0;
} }
@ -7708,9 +7715,11 @@ mysqld_get_one_option(int optid,
#endif #endif
break; break;
#include <sslopt-case.h> #include <sslopt-case.h>
#ifndef EMBEDDED_LIBRARY
case 'V': case 'V':
print_version(); print_version();
exit(0); exit(0);
#endif /*EMBEDDED_LIBRARY*/
case 'W': case 'W':
if (!argument) if (!argument)
global_system_variables.log_warnings++; global_system_variables.log_warnings++;
@ -7939,14 +7948,14 @@ mysqld_get_one_option(int optid,
if (gethostname(myhostname,sizeof(myhostname)) < 0) if (gethostname(myhostname,sizeof(myhostname)) < 0)
{ {
sql_perror("Can't start server: cannot get my own hostname!"); sql_perror("Can't start server: cannot get my own hostname!");
exit(1); return 1;
} }
ent=gethostbyname(myhostname); ent=gethostbyname(myhostname);
} }
if (!ent) if (!ent)
{ {
sql_perror("Can't start server: cannot resolve hostname!"); 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; 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: case OPT_FT_BOOLEAN_SYNTAX:
if (ft_boolean_check_syntax_string((uchar*) argument)) if (ft_boolean_check_syntax_string((uchar*) argument))
{ {
fprintf(stderr, "Invalid ft-boolean-syntax string: %s\n", argument); sql_print_error("Invalid ft-boolean-syntax string: %s\n", argument);
exit(1); return 1;
} }
strmake(ft_boolean_syntax, argument, sizeof(ft_boolean_syntax)-1); strmake(ft_boolean_syntax, argument, sizeof(ft_boolean_syntax)-1);
break; break;

View File

@ -296,7 +296,7 @@ static sys_var_thd_bool sys_sql_low_priority_updates(&vars, "sql_low_priority_up
&SV::low_priority_updates, &SV::low_priority_updates,
fix_low_priority_updates); fix_low_priority_updates);
#endif #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); &SV::max_allowed_packet);
static sys_var_long_ptr sys_max_binlog_cache_size(&vars, "max_binlog_cache_size", static sys_var_long_ptr sys_max_binlog_cache_size(&vars, "max_binlog_cache_size",
&max_binlog_cache_size); &max_binlog_cache_size);
@ -369,7 +369,7 @@ static sys_var_thd_enum sys_myisam_stats_method(&vars, "myisam_stats_met
&myisam_stats_method_typelib, &myisam_stats_method_typelib,
NULL); 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); &SV::net_buffer_length);
static sys_var_thd_ulong sys_net_read_timeout(&vars, "net_read_timeout", static sys_var_thd_ulong sys_net_read_timeout(&vars, "net_read_timeout",
&SV::net_read_timeout, &SV::net_read_timeout,
@ -2734,6 +2734,18 @@ uchar *sys_var_max_user_conn::value_ptr(THD *thd, enum_var_type type,
} }
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) bool sys_var_thd_lc_time_names::check(THD *thd, set_var *var)
{ {
MY_LOCALE *locale_match; MY_LOCALE *locale_match;

View File

@ -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 class sys_var_microseconds :public sys_var_thd
{ {
ulonglong SV::*offset; ulonglong SV::*offset;

View File

@ -6151,3 +6151,6 @@ WARN_PLUGIN_DELETE_BUILTIN
WARN_PLUGIN_BUSY WARN_PLUGIN_BUSY
eng "Plugin is busy and will be uninstalled on shutdown" 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"