mirror of
				https://github.com/MariaDB/server.git
				synced 2025-11-04 04:46:15 +01:00 
			
		
		
		
	This commit updates default memory allocations size used with MEM_ROOT objects to minimize the number of calls to malloc(). Changes: - Updated MEM_ROOT block sizes in sql_const.h - Updated MALLOC_OVERHEAD to also take into account the extra memory allocated by my_malloc() - Updated init_alloc_root() to only take MALLOC_OVERHEAD into account as buffer size, not MALLOC_OVERHEAD + sizeof(USED_MEM). - Reset mem_root->first_block_usage if and only if first block was used. - Increase MEM_ROOT buffers sized used by my_load_defaults, plugin_init, Create_tmp_table, allocate_table_share, TABLE and TABLE_SHARE. This decreases number of malloc calls during queries. - Use a small buffer for THD->main_mem_root in THD::THD. This avoids multiple malloc() call for new connections. I tried the above changes on a complex select query with 12 tables. The following shows the number of extra allocations that where used to increase the size of the MEM_ROOT buffers. Original code: - Connection to MariaDB: 9 allocations - First query run: 146 allocations - Second query run: 24 allocations Max memory allocated for thd when using with heap table: 61,262,408 Max memory allocated for thd when using Aria tmp table: 419,464 After changes: Connection to MariaDB: 0 allocations - First run: 25 allocations - Second run: 7 allocations Max memory allocated for thd when using with heap table: 61,347,424 Max memory allocated for thd when using Aria table: 529,168 The new code uses slightly more memory, but avoids memory fragmentation and is slightly faster thanks to much fewer calls to malloc(). Reviewed-by: Sergei Golubchik <serg@mariadb.org>
		
			
				
	
	
		
			1803 lines
		
	
	
	
		
			61 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			1803 lines
		
	
	
	
		
			61 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
drop table if exists t1,t2;
 | 
						|
set @my_binlog_cache_size         =@@global.binlog_cache_size;
 | 
						|
set @my_connect_timeout           =@@global.connect_timeout;
 | 
						|
set @my_delayed_insert_timeout    =@@global.delayed_insert_timeout;
 | 
						|
set @my_delayed_queue_size        =@@global.delayed_queue_size;
 | 
						|
set @my_flush                     =@@global.flush;
 | 
						|
set @my_flush_time                =@@global.flush_time;
 | 
						|
set @my_key_buffer_size           =@@global.key_buffer_size;
 | 
						|
set @my_max_binlog_cache_size     =@@global.max_binlog_cache_size;
 | 
						|
set @my_max_binlog_size           =@@global.max_binlog_size;
 | 
						|
set @my_max_connect_errors        =@@global.max_connect_errors;
 | 
						|
set @my_max_connections           =@@global.max_connections;
 | 
						|
set @my_max_delayed_threads       =@@global.max_delayed_threads;
 | 
						|
set @my_max_heap_table_size       =@@global.max_heap_table_size;
 | 
						|
set @my_max_insert_delayed_threads=@@global.max_insert_delayed_threads;
 | 
						|
set @my_max_join_size             =@@global.max_join_size;
 | 
						|
set @my_max_user_connections      =@@global.max_user_connections;
 | 
						|
set @my_myisam_data_pointer_size  =@@global.myisam_data_pointer_size;
 | 
						|
set @my_myisam_max_sort_file_size =@@global.myisam_max_sort_file_size;
 | 
						|
set @my_net_buffer_length         =@@global.net_buffer_length;
 | 
						|
set @my_net_write_timeout         =@@global.net_write_timeout;
 | 
						|
set @my_net_read_timeout          =@@global.net_read_timeout;
 | 
						|
set @my_server_id                 =@@global.server_id;
 | 
						|
set @my_slow_launch_time          =@@global.slow_launch_time;
 | 
						|
set @my_storage_engine            =@@global.default_storage_engine;
 | 
						|
set @my_thread_cache_size         =@@global.thread_cache_size;
 | 
						|
set @my_max_allowed_packet        =@@global.max_allowed_packet;
 | 
						|
set @my_delay_key_write           =@@global.delay_key_write;
 | 
						|
set @my_join_buffer_size          =@@global.join_buffer_size;
 | 
						|
set @my_log_warnings              =@@global.log_warnings;
 | 
						|
set @my_local_infile              =@@global.local_infile;
 | 
						|
set @`test`=1;
 | 
						|
select @test, @`test`, @TEST, @`TEST`, @"teSt";
 | 
						|
@test	@`test`	@TEST	@`TEST`	@"teSt"
 | 
						|
1	1	1	1	1
 | 
						|
set @TEST=2;
 | 
						|
select @test, @`test`, @TEST, @`TEST`, @"teSt";
 | 
						|
@test	@`test`	@TEST	@`TEST`	@"teSt"
 | 
						|
2	2	2	2	2
 | 
						|
set @"tEST"=3;
 | 
						|
select @test, @`test`, @TEST, @`TEST`, @"teSt";
 | 
						|
@test	@`test`	@TEST	@`TEST`	@"teSt"
 | 
						|
3	3	3	3	3
 | 
						|
set @`TeST`=4;
 | 
						|
select @test, @`test`, @TEST, @`TEST`, @"teSt";
 | 
						|
@test	@`test`	@TEST	@`TEST`	@"teSt"
 | 
						|
4	4	4	4	4
 | 
						|
select @`teST`:=5;
 | 
						|
@`teST`:=5
 | 
						|
5
 | 
						|
select @test, @`test`, @TEST, @`TEST`, @"teSt";
 | 
						|
@test	@`test`	@TEST	@`TEST`	@"teSt"
 | 
						|
5	5	5	5	5
 | 
						|
set @select=2,@t5=1.23456;
 | 
						|
select @`select`,@not_used;
 | 
						|
@`select`	@not_used
 | 
						|
2	NULL
 | 
						|
set @test_int=10,@test_double=1e-10,@test_string="abcdeghi",@test_string2="abcdefghij",@select=NULL;
 | 
						|
select @test_int,@test_double,@test_string,@test_string2,@select;
 | 
						|
@test_int	@test_double	@test_string	@test_string2	@select
 | 
						|
10	0.0000000001	abcdeghi	abcdefghij	NULL
 | 
						|
set @test_int="hello",@test_double="hello",@test_string="hello",@test_string2="hello";
 | 
						|
select @test_int,@test_double,@test_string,@test_string2;
 | 
						|
@test_int	@test_double	@test_string	@test_string2
 | 
						|
hello	hello	hello	hello
 | 
						|
set @test_int="hellohello",@test_double="hellohello",@test_string="hellohello",@test_string2="hellohello";
 | 
						|
select @test_int,@test_double,@test_string,@test_string2;
 | 
						|
@test_int	@test_double	@test_string	@test_string2
 | 
						|
hellohello	hellohello	hellohello	hellohello
 | 
						|
set @test_int=null,@test_double=null,@test_string=null,@test_string2=null;
 | 
						|
select @test_int,@test_double,@test_string,@test_string2;
 | 
						|
@test_int	@test_double	@test_string	@test_string2
 | 
						|
NULL	NULL	NULL	NULL
 | 
						|
select @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
 | 
						|
@t1:=(@t2:=1)+@t3:=4	@t1	@t2	@t3
 | 
						|
5	5	1	4
 | 
						|
explain extended select @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
 | 
						|
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 | 
						|
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
 | 
						|
Warnings:
 | 
						|
Note	1003	select @t1:=(@t2:=1) + (@t3:=4) AS `@t1:=(@t2:=1)+@t3:=4`,@`t1` AS `@t1`,@`t2` AS `@t2`,@`t3` AS `@t3`
 | 
						|
select @t5;
 | 
						|
@t5
 | 
						|
1.23456
 | 
						|
CREATE TABLE t1 (c_id INT(4) NOT NULL, c_name CHAR(20), c_country CHAR(3), PRIMARY KEY(c_id));
 | 
						|
INSERT INTO t1 VALUES (1,'Bozo','USA'),(2,'Ronald','USA'),(3,'Kinko','IRE'),(4,'Mr. Floppy','GB');
 | 
						|
SELECT @min_cid:=min(c_id), @max_cid:=max(c_id) from t1;
 | 
						|
@min_cid:=min(c_id)	@max_cid:=max(c_id)
 | 
						|
1	4
 | 
						|
SELECT * FROM t1 WHERE c_id=@min_cid OR c_id=@max_cid;
 | 
						|
c_id	c_name	c_country
 | 
						|
1	Bozo	USA
 | 
						|
4	Mr. Floppy	GB
 | 
						|
SELECT * FROM t1 WHERE c_id=@min_cid OR c_id=@max_cid OR c_id=666;
 | 
						|
c_id	c_name	c_country
 | 
						|
1	Bozo	USA
 | 
						|
4	Mr. Floppy	GB
 | 
						|
ALTER TABLE t1 DROP PRIMARY KEY;
 | 
						|
select * from t1 where c_id=@min_cid OR c_id=@max_cid;
 | 
						|
c_id	c_name	c_country
 | 
						|
1	Bozo	USA
 | 
						|
4	Mr. Floppy	GB
 | 
						|
drop table t1;
 | 
						|
set GLOBAL max_join_size=10;
 | 
						|
set max_join_size=100;
 | 
						|
show variables like 'max_join_size';
 | 
						|
Variable_name	Value
 | 
						|
max_join_size	100
 | 
						|
select * from information_schema.session_variables where variable_name like 'max_join_size';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
MAX_JOIN_SIZE	100
 | 
						|
show global variables like 'max_join_size';
 | 
						|
Variable_name	Value
 | 
						|
max_join_size	10
 | 
						|
select * from information_schema.global_variables where variable_name like 'max_join_size';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
MAX_JOIN_SIZE	10
 | 
						|
set GLOBAL max_join_size=2000;
 | 
						|
show global variables like 'max_join_size';
 | 
						|
Variable_name	Value
 | 
						|
max_join_size	2000
 | 
						|
select * from information_schema.global_variables where variable_name like 'max_join_size';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
MAX_JOIN_SIZE	2000
 | 
						|
set max_join_size=DEFAULT;
 | 
						|
show variables like 'max_join_size';
 | 
						|
Variable_name	Value
 | 
						|
max_join_size	2000
 | 
						|
select * from information_schema.session_variables where variable_name like 'max_join_size';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
MAX_JOIN_SIZE	2000
 | 
						|
set GLOBAL max_join_size=DEFAULT;
 | 
						|
show global variables like 'max_join_size';
 | 
						|
Variable_name	Value
 | 
						|
max_join_size	HA_POS_ERROR
 | 
						|
select * from information_schema.global_variables where variable_name like 'max_join_size';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
MAX_JOIN_SIZE	HA_POS_ERROR
 | 
						|
set @@max_join_size=1000, @@global.max_join_size=2000;
 | 
						|
select @@local.max_join_size, @@global.max_join_size;
 | 
						|
@@local.max_join_size	@@global.max_join_size
 | 
						|
1000	2000
 | 
						|
select @@identity,  length(@@version)>0;
 | 
						|
@@identity	length(@@version)>0
 | 
						|
0	1
 | 
						|
select @@VERSION=version();
 | 
						|
@@VERSION=version()
 | 
						|
1
 | 
						|
select last_insert_id(345);
 | 
						|
last_insert_id(345)
 | 
						|
345
 | 
						|
explain extended select last_insert_id(345);
 | 
						|
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 | 
						|
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
 | 
						|
Warnings:
 | 
						|
Note	1003	select last_insert_id(345) AS `last_insert_id(345)`
 | 
						|
select @@IDENTITY,last_insert_id(), @@identity;
 | 
						|
@@IDENTITY	last_insert_id()	@@identity
 | 
						|
345	345	345
 | 
						|
explain extended select @@IDENTITY,last_insert_id(), @@identity;
 | 
						|
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 | 
						|
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
 | 
						|
Warnings:
 | 
						|
Note	1003	select @@IDENTITY AS `@@IDENTITY`,last_insert_id() AS `last_insert_id()`,@@identity AS `@@identity`
 | 
						|
set global concurrent_insert=2;
 | 
						|
show variables like 'concurrent_insert';
 | 
						|
Variable_name	Value
 | 
						|
concurrent_insert	ALWAYS
 | 
						|
select * from information_schema.session_variables where variable_name like 'concurrent_insert';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
CONCURRENT_INSERT	ALWAYS
 | 
						|
set global concurrent_insert=1;
 | 
						|
show variables like 'concurrent_insert';
 | 
						|
Variable_name	Value
 | 
						|
concurrent_insert	AUTO
 | 
						|
select * from information_schema.session_variables where variable_name like 'concurrent_insert';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
CONCURRENT_INSERT	AUTO
 | 
						|
set global concurrent_insert=0;
 | 
						|
show variables like 'concurrent_insert';
 | 
						|
Variable_name	Value
 | 
						|
concurrent_insert	NEVER
 | 
						|
select * from information_schema.session_variables where variable_name like 'concurrent_insert';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
CONCURRENT_INSERT	NEVER
 | 
						|
set global concurrent_insert=DEFAULT;
 | 
						|
select @@concurrent_insert;
 | 
						|
@@concurrent_insert
 | 
						|
AUTO
 | 
						|
set default_storage_engine=MYISAM, default_storage_engine="HEAP", global default_storage_engine="MERGE";
 | 
						|
show local variables like 'default_storage_engine';
 | 
						|
Variable_name	Value
 | 
						|
default_storage_engine	MEMORY
 | 
						|
select * from information_schema.session_variables where variable_name like 'default_storage_engine';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
DEFAULT_STORAGE_ENGINE	MEMORY
 | 
						|
show global variables like 'default_storage_engine';
 | 
						|
Variable_name	Value
 | 
						|
default_storage_engine	MRG_MyISAM
 | 
						|
select * from information_schema.global_variables where variable_name like 'default_storage_engine';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
DEFAULT_STORAGE_ENGINE	MRG_MyISAM
 | 
						|
set GLOBAL myisam_max_sort_file_size=2000000;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect myisam_max_sort_file_size value: '2000000'
 | 
						|
show global variables like 'myisam_max_sort_file_size';
 | 
						|
Variable_name	Value
 | 
						|
myisam_max_sort_file_size	1048576
 | 
						|
select * from information_schema.global_variables where variable_name like 'myisam_max_sort_file_size';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
MYISAM_MAX_SORT_FILE_SIZE	1048576
 | 
						|
set GLOBAL myisam_max_sort_file_size=default;
 | 
						|
show global variables like 'myisam_max_sort_file_size';
 | 
						|
Variable_name	Value
 | 
						|
myisam_max_sort_file_size	FILE_SIZE
 | 
						|
select * from information_schema.global_variables where variable_name like 'myisam_max_sort_file_size';
 | 
						|
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;
 | 
						|
show global variables like 'net_%';
 | 
						|
Variable_name	Value
 | 
						|
net_buffer_length	1024
 | 
						|
net_read_timeout	300
 | 
						|
net_retry_count	10
 | 
						|
net_write_timeout	200
 | 
						|
select * from information_schema.global_variables where variable_name like 'net_%' order by 1;
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
NET_BUFFER_LENGTH	1024
 | 
						|
NET_READ_TIMEOUT	300
 | 
						|
NET_RETRY_COUNT	10
 | 
						|
NET_WRITE_TIMEOUT	200
 | 
						|
show session variables like 'net_%';
 | 
						|
Variable_name	Value
 | 
						|
net_buffer_length	16384
 | 
						|
net_read_timeout	30
 | 
						|
net_retry_count	10
 | 
						|
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	16384
 | 
						|
NET_READ_TIMEOUT	30
 | 
						|
NET_RETRY_COUNT	10
 | 
						|
NET_WRITE_TIMEOUT	60
 | 
						|
set global net_buffer_length=8000, global net_read_timeout=900, net_write_timeout=1000;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect net_buffer_length value: '8000'
 | 
						|
show global variables like 'net_%';
 | 
						|
Variable_name	Value
 | 
						|
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	7168
 | 
						|
NET_READ_TIMEOUT	900
 | 
						|
NET_RETRY_COUNT	10
 | 
						|
NET_WRITE_TIMEOUT	1000
 | 
						|
set global net_buffer_length=1;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect net_buffer_length value: '1'
 | 
						|
show global variables like 'net_buffer_length';
 | 
						|
Variable_name	Value
 | 
						|
net_buffer_length	1024
 | 
						|
select * from information_schema.global_variables where variable_name like 'net_buffer_length';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
NET_BUFFER_LENGTH	1024
 | 
						|
set global net_buffer_length=2000000000;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect net_buffer_length value: '2000000000'
 | 
						|
show global variables like 'net_buffer_length';
 | 
						|
Variable_name	Value
 | 
						|
net_buffer_length	1048576
 | 
						|
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;
 | 
						|
show variables like "character_set_client";
 | 
						|
Variable_name	Value
 | 
						|
character_set_client	cp1251
 | 
						|
select * from information_schema.session_variables where variable_name like 'character_set_client';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
CHARACTER_SET_CLIENT	cp1251
 | 
						|
select @@timestamp>0;
 | 
						|
@@timestamp>0
 | 
						|
1
 | 
						|
set @@rand_seed1=10000000,@@rand_seed2=1000000;
 | 
						|
select ROUND(RAND(),5);
 | 
						|
ROUND(RAND(),5)
 | 
						|
0.02887
 | 
						|
 | 
						|
==+ Testing %alloc% system variables +==
 | 
						|
==+ NOTE:  These values *must* be a multiple of 1024 +==
 | 
						|
==+ Other values will be rounded down to nearest multiple +==
 | 
						|
 | 
						|
==+ Show initial values +==
 | 
						|
SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size',
 | 
						|
'query_alloc_block_size', 'query_prealloc_size',
 | 
						|
'transaction_alloc_block_size', 'transaction_prealloc_size');
 | 
						|
Variable_name	Value
 | 
						|
query_alloc_block_size	32768
 | 
						|
query_prealloc_size	32768
 | 
						|
range_alloc_block_size	4096
 | 
						|
transaction_alloc_block_size	8192
 | 
						|
transaction_prealloc_size	4096
 | 
						|
==+ information_schema data +==
 | 
						|
SELECT * FROM information_schema.session_variables 
 | 
						|
WHERE variable_name IN ('range_alloc_block_size',
 | 
						|
'query_alloc_block_size', 'query_prealloc_size',
 | 
						|
'transaction_alloc_block_size', 'transaction_prealloc_size') ORDER BY 1;
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
QUERY_ALLOC_BLOCK_SIZE	32768
 | 
						|
QUERY_PREALLOC_SIZE	32768
 | 
						|
RANGE_ALLOC_BLOCK_SIZE	4096
 | 
						|
TRANSACTION_ALLOC_BLOCK_SIZE	8192
 | 
						|
TRANSACTION_PREALLOC_SIZE	4096
 | 
						|
Testing values that are multiples of 1024
 | 
						|
set @@range_alloc_block_size=1024*15+1024;
 | 
						|
set @@query_alloc_block_size=1024*15+1024*2;
 | 
						|
set @@query_prealloc_size=1024*18-1024;
 | 
						|
set @@transaction_alloc_block_size=1024*21-1024*1;
 | 
						|
set @@transaction_prealloc_size=1024*21-2048;
 | 
						|
==+ Check manipulated values ==+
 | 
						|
select @@query_alloc_block_size;
 | 
						|
@@query_alloc_block_size
 | 
						|
17408
 | 
						|
SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size',
 | 
						|
'query_alloc_block_size', 'query_prealloc_size',
 | 
						|
'transaction_alloc_block_size', 'transaction_prealloc_size');
 | 
						|
Variable_name	Value
 | 
						|
query_alloc_block_size	17408
 | 
						|
query_prealloc_size	17408
 | 
						|
range_alloc_block_size	16384
 | 
						|
transaction_alloc_block_size	20480
 | 
						|
transaction_prealloc_size	19456
 | 
						|
==+ information_schema data +==
 | 
						|
SELECT * FROM information_schema.session_variables
 | 
						|
WHERE variable_name IN ('range_alloc_block_size',
 | 
						|
'query_alloc_block_size', 'query_prealloc_size',
 | 
						|
'transaction_alloc_block_size', 'transaction_prealloc_size') ORDER BY 1;
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
QUERY_ALLOC_BLOCK_SIZE	17408
 | 
						|
QUERY_PREALLOC_SIZE	17408
 | 
						|
RANGE_ALLOC_BLOCK_SIZE	16384
 | 
						|
TRANSACTION_ALLOC_BLOCK_SIZE	20480
 | 
						|
TRANSACTION_PREALLOC_SIZE	19456
 | 
						|
==+ Manipulate variable values +==
 | 
						|
Testing values that are not 1024 multiples
 | 
						|
set @@range_alloc_block_size=1024*16+1023;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect range_alloc_block_size value: '17407'
 | 
						|
set @@query_alloc_block_size=1024*17+2;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect query_alloc_block_size value: '17410'
 | 
						|
set @@query_prealloc_size=1024*18-1023;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect query_prealloc_size value: '17409'
 | 
						|
set @@transaction_alloc_block_size=1024*20-1;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect transaction_alloc_block_size value: '20479'
 | 
						|
set @@transaction_prealloc_size=1024*21-1;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect transaction_prealloc_size value: '21503'
 | 
						|
==+ Check manipulated values ==+
 | 
						|
SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size',
 | 
						|
'query_alloc_block_size', 'query_prealloc_size',
 | 
						|
'transaction_alloc_block_size', 'transaction_prealloc_size');
 | 
						|
Variable_name	Value
 | 
						|
query_alloc_block_size	17408
 | 
						|
query_prealloc_size	17408
 | 
						|
range_alloc_block_size	16384
 | 
						|
transaction_alloc_block_size	19456
 | 
						|
transaction_prealloc_size	20480
 | 
						|
==+ information_schema data +==
 | 
						|
SELECT * FROM information_schema.session_variables 
 | 
						|
WHERE variable_name IN ('range_alloc_block_size',
 | 
						|
'query_alloc_block_size', 'query_prealloc_size',
 | 
						|
'transaction_alloc_block_size', 'transaction_prealloc_size') ORDER BY 1;
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
QUERY_ALLOC_BLOCK_SIZE	17408
 | 
						|
QUERY_PREALLOC_SIZE	17408
 | 
						|
RANGE_ALLOC_BLOCK_SIZE	16384
 | 
						|
TRANSACTION_ALLOC_BLOCK_SIZE	19456
 | 
						|
TRANSACTION_PREALLOC_SIZE	20480
 | 
						|
==+ Set values back to the default values +==
 | 
						|
set @@range_alloc_block_size=default;
 | 
						|
set @@query_alloc_block_size=default, @@query_prealloc_size=default;
 | 
						|
set transaction_alloc_block_size=default, @@transaction_prealloc_size=default;
 | 
						|
==+ Check the values now that they are reset +==
 | 
						|
SHOW VARIABLES WHERE variable_name IN ('range_alloc_block_size',
 | 
						|
'query_alloc_block_size', 'query_prealloc_size',
 | 
						|
'transaction_alloc_block_size', 'transaction_prealloc_size');
 | 
						|
Variable_name	Value
 | 
						|
query_alloc_block_size	32768
 | 
						|
query_prealloc_size	32768
 | 
						|
range_alloc_block_size	4096
 | 
						|
transaction_alloc_block_size	8192
 | 
						|
transaction_prealloc_size	4096
 | 
						|
SELECT @@version LIKE 'non-existent';
 | 
						|
@@version LIKE 'non-existent'
 | 
						|
0
 | 
						|
SELECT @@version_compile_os LIKE 'non-existent';
 | 
						|
@@version_compile_os LIKE 'non-existent'
 | 
						|
0
 | 
						|
set unknown_variable=1;
 | 
						|
ERROR HY000: Unknown system variable 'unknown_variable'
 | 
						|
set max_join_size="hello";
 | 
						|
ERROR 42000: Incorrect argument type to variable 'max_join_size'
 | 
						|
set default_storage_engine=UNKNOWN_TABLE_TYPE;
 | 
						|
ERROR 42000: Unknown storage engine 'UNKNOWN_TABLE_TYPE'
 | 
						|
set default_storage_engine=MERGE, sql_warnings=NULL;
 | 
						|
ERROR 42000: Variable 'sql_warnings' can't be set to the value of 'NULL'
 | 
						|
show local variables like 'default_storage_engine';
 | 
						|
Variable_name	Value
 | 
						|
default_storage_engine	MEMORY
 | 
						|
set character_set_client=UNKNOWN_CHARACTER_SET;
 | 
						|
ERROR 42000: Unknown character set: 'UNKNOWN_CHARACTER_SET'
 | 
						|
set collation_connection=UNKNOWN_COLLATION;
 | 
						|
ERROR HY000: Unknown collation: 'UNKNOWN_COLLATION'
 | 
						|
set character_set_client=NULL;
 | 
						|
ERROR 42000: Variable 'character_set_client' can't be set to the value of 'NULL'
 | 
						|
set collation_connection=NULL;
 | 
						|
ERROR 42000: Variable 'collation_connection' can't be set to the value of 'NULL'
 | 
						|
select @@global.timestamp;
 | 
						|
ERROR HY000: Variable 'timestamp' is a SESSION variable
 | 
						|
set @@version='';
 | 
						|
ERROR HY000: Variable 'version' is a read only variable
 | 
						|
set @@concurrent_insert=1;
 | 
						|
ERROR HY000: Variable 'concurrent_insert' is a GLOBAL variable and should be set with SET GLOBAL
 | 
						|
set myisam_max_sort_file_size=100;
 | 
						|
ERROR HY000: Variable 'myisam_max_sort_file_size' is a GLOBAL variable and should be set with SET GLOBAL
 | 
						|
set @@SQL_WARNINGS=NULL;
 | 
						|
ERROR 42000: Variable 'sql_warnings' can't be set to the value of 'NULL'
 | 
						|
set autocommit=1;
 | 
						|
select @@autocommit;
 | 
						|
@@autocommit
 | 
						|
1
 | 
						|
set global binlog_cache_size=100;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect binlog_cache_size value: '100'
 | 
						|
set bulk_insert_buffer_size=100;
 | 
						|
set character set cp1251_koi8;
 | 
						|
set character set default;
 | 
						|
set @@global.concurrent_insert=1;
 | 
						|
set global connect_timeout=100;
 | 
						|
select @@delay_key_write;
 | 
						|
@@delay_key_write
 | 
						|
ON
 | 
						|
set global delay_key_write="OFF";
 | 
						|
select @@delay_key_write;
 | 
						|
@@delay_key_write
 | 
						|
OFF
 | 
						|
set global delay_key_write=ALL;
 | 
						|
select @@delay_key_write;
 | 
						|
@@delay_key_write
 | 
						|
ALL
 | 
						|
set global delay_key_write=1;
 | 
						|
select @@delay_key_write;
 | 
						|
@@delay_key_write
 | 
						|
ON
 | 
						|
set global delayed_insert_limit=100;
 | 
						|
set global delayed_insert_timeout=100;
 | 
						|
set global delayed_queue_size=100;
 | 
						|
set global flush=1;
 | 
						|
set global flush_time=100;
 | 
						|
set insert_id=1;
 | 
						|
set interactive_timeout=100;
 | 
						|
set join_buffer_size=100;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect join_buffer_size value: '100'
 | 
						|
set last_insert_id=1;
 | 
						|
set global local_infile=1;
 | 
						|
set long_query_time=0.000001;
 | 
						|
select @@long_query_time;
 | 
						|
@@long_query_time
 | 
						|
0.000001
 | 
						|
set long_query_time=100.000001;
 | 
						|
select @@long_query_time;
 | 
						|
@@long_query_time
 | 
						|
100.000001
 | 
						|
set low_priority_updates=1;
 | 
						|
set global max_allowed_packet=100;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect max_allowed_packet value: '100'
 | 
						|
Warning	1708	The value of 'max_allowed_packet' should be no less than the value of 'net_buffer_length'
 | 
						|
set global max_binlog_cache_size=100;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect max_binlog_cache_size value: '100'
 | 
						|
set global max_binlog_size=100;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect max_binlog_size value: '100'
 | 
						|
set global max_connect_errors=100;
 | 
						|
set global max_connections=100;
 | 
						|
set global max_delayed_threads=100;
 | 
						|
set max_heap_table_size=100;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect max_heap_table_size value: '100'
 | 
						|
set max_join_size=100;
 | 
						|
set max_sort_length=100;
 | 
						|
set global max_user_connections=100;
 | 
						|
set global max_write_lock_count=100;
 | 
						|
set myisam_sort_buffer_size=100;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect myisam_sort_buffer_size value: '100'
 | 
						|
set global net_buffer_length=100;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect net_buffer_length value: '100'
 | 
						|
set net_read_timeout=100;
 | 
						|
set net_write_timeout=100;
 | 
						|
set read_buffer_size=100;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect read_buffer_size value: '100'
 | 
						|
set read_rnd_buffer_size=100;
 | 
						|
set global server_id=100;
 | 
						|
set global slow_launch_time=100;
 | 
						|
set sort_buffer_size=100;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect sort_buffer_size value: '100'
 | 
						|
set @@max_sp_recursion_depth=10;
 | 
						|
select @@max_sp_recursion_depth;
 | 
						|
@@max_sp_recursion_depth
 | 
						|
10
 | 
						|
set @@max_sp_recursion_depth=0;
 | 
						|
select @@max_sp_recursion_depth;
 | 
						|
@@max_sp_recursion_depth
 | 
						|
0
 | 
						|
set sql_auto_is_null=1;
 | 
						|
select @@sql_auto_is_null;
 | 
						|
@@sql_auto_is_null
 | 
						|
1
 | 
						|
set @@sql_auto_is_null=0;
 | 
						|
select @@sql_auto_is_null;
 | 
						|
@@sql_auto_is_null
 | 
						|
0
 | 
						|
set sql_big_selects=1;
 | 
						|
set sql_buffer_result=1;
 | 
						|
set sql_log_bin=1;
 | 
						|
set sql_log_off=1;
 | 
						|
set sql_quote_show_create=1;
 | 
						|
set sql_safe_updates=1;
 | 
						|
set sql_select_limit=1;
 | 
						|
set sql_select_limit=default;
 | 
						|
set sql_warnings=1;
 | 
						|
set @save_table_open_cache=@@table_open_cache;
 | 
						|
set global table_open_cache=100;
 | 
						|
set default_storage_engine=myisam;
 | 
						|
set global thread_cache_size=100;
 | 
						|
set timestamp=1, timestamp=default;
 | 
						|
set tmp_table_size=16384;
 | 
						|
set tx_isolation="READ-COMMITTED";
 | 
						|
set wait_timeout=100;
 | 
						|
set log_warnings=1;
 | 
						|
set global log_warnings=1;
 | 
						|
select @@session.insert_id;
 | 
						|
@@session.insert_id
 | 
						|
1
 | 
						|
set @save_insert_id=@@session.insert_id;
 | 
						|
set session insert_id=20;
 | 
						|
select @@session.insert_id;
 | 
						|
@@session.insert_id
 | 
						|
20
 | 
						|
set session last_insert_id=100;
 | 
						|
select @@session.insert_id;
 | 
						|
@@session.insert_id
 | 
						|
20
 | 
						|
select @@session.last_insert_id;
 | 
						|
@@session.last_insert_id
 | 
						|
100
 | 
						|
select @@session.insert_id;
 | 
						|
@@session.insert_id
 | 
						|
20
 | 
						|
set @@session.insert_id=@save_insert_id;
 | 
						|
select @@session.insert_id;
 | 
						|
@@session.insert_id
 | 
						|
1
 | 
						|
create table t1 (a int not null auto_increment, primary key(a));
 | 
						|
create table t2 (a int not null auto_increment, primary key(a));
 | 
						|
insert into t1 values(null),(null),(null);
 | 
						|
insert into t2 values(null),(null),(null);
 | 
						|
set global key_buffer_size=100000;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect key_buffer_size value: '100000'
 | 
						|
select @@key_buffer_size;
 | 
						|
@@key_buffer_size
 | 
						|
98304
 | 
						|
select * from t1 where a=2;
 | 
						|
a
 | 
						|
2
 | 
						|
select * from t2 where a=3;
 | 
						|
a
 | 
						|
3
 | 
						|
check table t1,t2;
 | 
						|
Table	Op	Msg_type	Msg_text
 | 
						|
test.t1	check	status	OK
 | 
						|
test.t2	check	status	OK
 | 
						|
select max(a) +1, max(a) +2 into @xx,@yy from t1;
 | 
						|
drop table t1,t2;
 | 
						|
select @@xxxxxxxxxx;
 | 
						|
ERROR HY000: Unknown system variable 'xxxxxxxxxx'
 | 
						|
select 1;
 | 
						|
1
 | 
						|
1
 | 
						|
select @@session.key_buffer_size;
 | 
						|
ERROR HY000: Variable 'key_buffer_size' is a GLOBAL variable
 | 
						|
set ft_boolean_syntax = @@init_connect;
 | 
						|
ERROR HY000: Variable 'ft_boolean_syntax' is a GLOBAL variable and should be set with SET GLOBAL
 | 
						|
set global ft_boolean_syntax = @@init_connect;
 | 
						|
ERROR 42000: Variable 'ft_boolean_syntax' can't be set to the value of ''
 | 
						|
set init_connect = NULL;
 | 
						|
ERROR HY000: Variable 'init_connect' is a GLOBAL variable and should be set with SET GLOBAL
 | 
						|
set global init_connect = NULL;
 | 
						|
set ft_boolean_syntax = @@init_connect;
 | 
						|
ERROR HY000: Variable 'ft_boolean_syntax' is a GLOBAL variable and should be set with SET GLOBAL
 | 
						|
set global ft_boolean_syntax = @@init_connect;
 | 
						|
ERROR 42000: Variable 'ft_boolean_syntax' can't be set to the value of ''
 | 
						|
set global myisam_max_sort_file_size=4294967296;
 | 
						|
show global variables like 'myisam_max_sort_file_size';
 | 
						|
Variable_name	Value
 | 
						|
myisam_max_sort_file_size	MAX_FILE_SIZE
 | 
						|
select * from information_schema.global_variables where variable_name like 'myisam_max_sort_file_size';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
MYISAM_MAX_SORT_FILE_SIZE	MAX_FILE_SIZE
 | 
						|
set global myisam_max_sort_file_size=default;
 | 
						|
set @@global.max_user_connections=10, @@local.max_join_size=1000;
 | 
						|
select @@global.max_user_connections,@@local.max_join_size;
 | 
						|
@@global.max_user_connections	@@local.max_join_size
 | 
						|
10	1000
 | 
						|
set @svc=@@global.max_user_connections, @svj=@@local.max_join_size;
 | 
						|
select @@global.max_user_connections,@@local.max_join_size;
 | 
						|
@@global.max_user_connections	@@local.max_join_size
 | 
						|
10	1000
 | 
						|
set @@global.max_user_connections=111,@@local.max_join_size=222;
 | 
						|
select @@global.max_user_connections,@@local.max_join_size;
 | 
						|
@@global.max_user_connections	@@local.max_join_size
 | 
						|
111	222
 | 
						|
set @@global.max_user_connections=@@local.max_join_size,@@local.max_join_size=@@global.max_user_connections;
 | 
						|
select @@global.max_user_connections,@@local.max_join_size;
 | 
						|
@@global.max_user_connections	@@local.max_join_size
 | 
						|
222	111
 | 
						|
set @@global.max_user_connections=@svc, @@local.max_join_size=@svj;
 | 
						|
select @@global.max_user_connections,@@local.max_join_size;
 | 
						|
@@global.max_user_connections	@@local.max_join_size
 | 
						|
10	1000
 | 
						|
set @a=1, @b=2;
 | 
						|
set @a=@b, @b=@a;
 | 
						|
select @a, @b;
 | 
						|
@a	@b
 | 
						|
2	1
 | 
						|
set @@global.max_user_connections=@my_max_user_connections;
 | 
						|
set @@global.global.key_buffer_size= 1;
 | 
						|
ERROR HY000: Unknown structured system variable or ROW routine variable 'global'
 | 
						|
set GLOBAL global.key_buffer_size= 1;
 | 
						|
ERROR HY000: Unknown structured system variable or ROW routine variable 'global'
 | 
						|
SELECT @@global.global.key_buffer_size;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'key_buffer_size' at line 1
 | 
						|
SELECT @@global.session.key_buffer_size;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'key_buffer_size' at line 1
 | 
						|
SELECT @@global.local.key_buffer_size;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'key_buffer_size' at line 1
 | 
						|
set @tstlw = @@log_warnings;
 | 
						|
show global variables like 'log_warnings';
 | 
						|
Variable_name	Value
 | 
						|
log_warnings	1
 | 
						|
select * from information_schema.global_variables where variable_name like 'log_warnings';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
LOG_WARNINGS	1
 | 
						|
set global log_warnings = 0;
 | 
						|
show global variables like 'log_warnings';
 | 
						|
Variable_name	Value
 | 
						|
log_warnings	0
 | 
						|
select * from information_schema.global_variables where variable_name like 'log_warnings';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
LOG_WARNINGS	0
 | 
						|
set global log_warnings = 42;
 | 
						|
show global variables like 'log_warnings';
 | 
						|
Variable_name	Value
 | 
						|
log_warnings	42
 | 
						|
select * from information_schema.global_variables where variable_name like 'log_warnings';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
LOG_WARNINGS	42
 | 
						|
set global log_warnings = @tstlw;
 | 
						|
show global variables like 'log_warnings';
 | 
						|
Variable_name	Value
 | 
						|
log_warnings	1
 | 
						|
select * from information_schema.global_variables where variable_name like 'log_warnings';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
LOG_WARNINGS	1
 | 
						|
create table t1 (
 | 
						|
c1 tinyint,
 | 
						|
c2 smallint,
 | 
						|
c3 mediumint,
 | 
						|
c4 int,
 | 
						|
c5 bigint);
 | 
						|
show create table t1;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `c1` tinyint(4) DEFAULT NULL,
 | 
						|
  `c2` smallint(6) DEFAULT NULL,
 | 
						|
  `c3` mediumint(9) DEFAULT NULL,
 | 
						|
  `c4` int(11) DEFAULT NULL,
 | 
						|
  `c5` bigint(20) DEFAULT NULL
 | 
						|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
 | 
						|
drop table t1;
 | 
						|
set @arg00= 8, @arg01= 8.8, @arg02= 'a string', @arg03= 0.2e0;
 | 
						|
create table t1 as select @arg00 as c1, @arg01 as c2, @arg02 as c3, @arg03 as c4;
 | 
						|
show create table t1;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `c1` bigint(20) DEFAULT NULL,
 | 
						|
  `c2` decimal(65,38) DEFAULT NULL,
 | 
						|
  `c3` longtext DEFAULT NULL,
 | 
						|
  `c4` double DEFAULT NULL
 | 
						|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
 | 
						|
drop table t1;
 | 
						|
SET GLOBAL MYISAM_DATA_POINTER_SIZE= 7;
 | 
						|
SHOW VARIABLES LIKE 'MYISAM_DATA_POINTER_SIZE';
 | 
						|
Variable_name	Value
 | 
						|
myisam_data_pointer_size	7
 | 
						|
SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME LIKE 'MYISAM_DATA_POINTER_SIZE';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
MYISAM_DATA_POINTER_SIZE	7
 | 
						|
SET GLOBAL table_open_cache=-1;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect table_open_cache value: '-1'
 | 
						|
SHOW VARIABLES LIKE 'table_open_cache';
 | 
						|
Variable_name	Value
 | 
						|
table_open_cache	10
 | 
						|
SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME LIKE 'table_open_cache';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
TABLE_OPEN_CACHE	10
 | 
						|
SET GLOBAL table_open_cache=@save_table_open_cache;
 | 
						|
set character_set_results=NULL;
 | 
						|
select ifnull(@@character_set_results,"really null");
 | 
						|
ifnull(@@character_set_results,"really null")
 | 
						|
really null
 | 
						|
set names latin1;
 | 
						|
*** Various tests with LC_TIME_NAMES
 | 
						|
*** LC_TIME_NAMES: testing case insensitivity
 | 
						|
set @@lc_time_names='ru_ru';
 | 
						|
select @@lc_time_names;
 | 
						|
@@lc_time_names
 | 
						|
ru_RU
 | 
						|
*** LC_TIME_NAMES: testing with a user variable
 | 
						|
set @lc='JA_JP';
 | 
						|
set @@lc_time_names=@lc;
 | 
						|
select @@lc_time_names;
 | 
						|
@@lc_time_names
 | 
						|
ja_JP
 | 
						|
*** LC_TIME_NAMES: testing with string expressions
 | 
						|
set lc_time_names=concat('de','_','DE');
 | 
						|
select @@lc_time_names;
 | 
						|
@@lc_time_names
 | 
						|
de_DE
 | 
						|
set lc_time_names=concat('de','+','DE');
 | 
						|
ERROR HY000: Unknown locale: 'de+DE'
 | 
						|
select @@lc_time_names;
 | 
						|
@@lc_time_names
 | 
						|
de_DE
 | 
						|
LC_TIME_NAMES: testing with numeric expressions
 | 
						|
set @@lc_time_names=1+2;
 | 
						|
select @@lc_time_names;
 | 
						|
@@lc_time_names
 | 
						|
sv_SE
 | 
						|
set @@lc_time_names=1/0;
 | 
						|
ERROR 42000: Incorrect argument type to variable 'lc_time_names'
 | 
						|
select @@lc_time_names;
 | 
						|
@@lc_time_names
 | 
						|
sv_SE
 | 
						|
set lc_time_names=en_US;
 | 
						|
LC_TIME_NAMES: testing NULL and a negative number:
 | 
						|
set lc_time_names=NULL;
 | 
						|
ERROR 42000: Variable 'lc_time_names' can't be set to the value of 'NULL'
 | 
						|
set lc_time_names=-1;
 | 
						|
ERROR HY000: Unknown locale: '-1'
 | 
						|
select @@lc_time_names;
 | 
						|
@@lc_time_names
 | 
						|
en_US
 | 
						|
LC_TIME_NAMES: testing locale with the last ID:
 | 
						|
set lc_time_names=110;
 | 
						|
select @@lc_time_names;
 | 
						|
@@lc_time_names
 | 
						|
rm_CH
 | 
						|
LC_TIME_NAMES: testing a number beyond the valid ID range:
 | 
						|
set lc_time_names=111;
 | 
						|
ERROR HY000: Unknown locale: '111'
 | 
						|
select @@lc_time_names;
 | 
						|
@@lc_time_names
 | 
						|
rm_CH
 | 
						|
LC_TIME_NAMES: testing that 0 is en_US:
 | 
						|
set lc_time_names=0;
 | 
						|
select @@lc_time_names;
 | 
						|
@@lc_time_names
 | 
						|
en_US
 | 
						|
select @@global.lc_time_names, @@lc_time_names;
 | 
						|
@@global.lc_time_names	@@lc_time_names
 | 
						|
en_US	en_US
 | 
						|
set @@global.lc_time_names=fr_FR;
 | 
						|
select @@global.lc_time_names, @@lc_time_names;
 | 
						|
@@global.lc_time_names	@@lc_time_names
 | 
						|
fr_FR	en_US
 | 
						|
connect  con1,localhost,root,,;
 | 
						|
connection con1;
 | 
						|
select @@global.lc_time_names, @@lc_time_names;
 | 
						|
@@global.lc_time_names	@@lc_time_names
 | 
						|
fr_FR	fr_FR
 | 
						|
set @@lc_time_names=ru_RU;
 | 
						|
select @@global.lc_time_names, @@lc_time_names;
 | 
						|
@@global.lc_time_names	@@lc_time_names
 | 
						|
fr_FR	ru_RU
 | 
						|
disconnect con1;
 | 
						|
connection default;
 | 
						|
select @@global.lc_time_names, @@lc_time_names;
 | 
						|
@@global.lc_time_names	@@lc_time_names
 | 
						|
fr_FR	en_US
 | 
						|
set lc_time_names=default;
 | 
						|
select @@global.lc_time_names, @@lc_time_names;
 | 
						|
@@global.lc_time_names	@@lc_time_names
 | 
						|
fr_FR	fr_FR
 | 
						|
set @@global.lc_time_names=default;
 | 
						|
select @@global.lc_time_names, @@lc_time_names;
 | 
						|
@@global.lc_time_names	@@lc_time_names
 | 
						|
en_US	fr_FR
 | 
						|
set @@lc_time_names=default;
 | 
						|
select @@global.lc_time_names, @@lc_time_names;
 | 
						|
@@global.lc_time_names	@@lc_time_names
 | 
						|
en_US	en_US
 | 
						|
set @test = @@query_prealloc_size;
 | 
						|
set @@query_prealloc_size = @test;
 | 
						|
select @@query_prealloc_size = @test;
 | 
						|
@@query_prealloc_size = @test
 | 
						|
1
 | 
						|
set global sql_mode=repeat('a',80);
 | 
						|
ERROR 42000: Variable 'sql_mode' can't be set to the value of 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
 | 
						|
End of 4.1 tests
 | 
						|
create table t1 (a int);
 | 
						|
select a into @x from t1;
 | 
						|
Warnings:
 | 
						|
Warning	1329	No data - zero rows fetched, selected, or processed
 | 
						|
show warnings;
 | 
						|
Level	Code	Message
 | 
						|
Warning	1329	No data - zero rows fetched, selected, or processed
 | 
						|
drop table t1;
 | 
						|
set @@warning_count=1;
 | 
						|
ERROR HY000: Variable 'warning_count' is a read only variable
 | 
						|
set @@global.error_count=1;
 | 
						|
ERROR HY000: Variable 'error_count' is a read only variable
 | 
						|
set @@max_heap_table_size= 4294967296;
 | 
						|
select @@max_heap_table_size > 0;
 | 
						|
@@max_heap_table_size > 0
 | 
						|
1
 | 
						|
set global max_heap_table_size= 4294967296;
 | 
						|
select @@max_heap_table_size > 0;
 | 
						|
@@max_heap_table_size > 0
 | 
						|
1
 | 
						|
set @@max_heap_table_size= 4294967296;
 | 
						|
select @@max_heap_table_size > 0;
 | 
						|
@@max_heap_table_size > 0
 | 
						|
1
 | 
						|
select @@character_set_system;
 | 
						|
@@character_set_system
 | 
						|
utf8mb3
 | 
						|
set global character_set_system = latin1;
 | 
						|
ERROR HY000: Variable 'character_set_system' is a read only variable
 | 
						|
set @@global.version_compile_os='234';
 | 
						|
ERROR HY000: Variable 'version_compile_os' is a read only variable
 | 
						|
set character_set_filesystem=latin1;
 | 
						|
select @@character_set_filesystem;
 | 
						|
@@character_set_filesystem
 | 
						|
latin1
 | 
						|
set @@global.character_set_filesystem=latin2;
 | 
						|
set character_set_filesystem=latin1;
 | 
						|
select @@character_set_filesystem;
 | 
						|
@@character_set_filesystem
 | 
						|
latin1
 | 
						|
set @@global.character_set_filesystem=latin2;
 | 
						|
set character_set_filesystem=default;
 | 
						|
select @@character_set_filesystem;
 | 
						|
@@character_set_filesystem
 | 
						|
latin2
 | 
						|
set @@global.character_set_filesystem=default;
 | 
						|
select @@global.character_set_filesystem;
 | 
						|
@@global.character_set_filesystem
 | 
						|
binary
 | 
						|
set @old_sql_big_selects = @@sql_big_selects;
 | 
						|
set @@sql_big_selects = 1;
 | 
						|
show variables like 'sql_big_selects';
 | 
						|
Variable_name	Value
 | 
						|
sql_big_selects	ON
 | 
						|
select * from information_schema.session_variables where variable_name like 'sql_big_selects';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
SQL_BIG_SELECTS	ON
 | 
						|
set @@sql_big_selects = @old_sql_big_selects;
 | 
						|
set @@sql_notes = 0, @@sql_warnings = 0;
 | 
						|
show variables like 'sql_notes';
 | 
						|
Variable_name	Value
 | 
						|
sql_notes	OFF
 | 
						|
select * from information_schema.session_variables where variable_name like 'sql_notes';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
SQL_NOTES	OFF
 | 
						|
show variables like 'sql_warnings';
 | 
						|
Variable_name	Value
 | 
						|
sql_warnings	OFF
 | 
						|
select * from information_schema.session_variables where variable_name like 'sql_warnings';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
SQL_WARNINGS	OFF
 | 
						|
set @@sql_notes = 1, @@sql_warnings = 1;
 | 
						|
show variables like 'sql_notes';
 | 
						|
Variable_name	Value
 | 
						|
sql_notes	ON
 | 
						|
select * from information_schema.session_variables where variable_name like 'sql_notes';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
SQL_NOTES	ON
 | 
						|
show variables like 'sql_warnings';
 | 
						|
Variable_name	Value
 | 
						|
sql_warnings	ON
 | 
						|
select * from information_schema.session_variables where variable_name like 'sql_warnings';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
SQL_WARNINGS	ON
 | 
						|
select @@system_time_zone;
 | 
						|
@@system_time_zone
 | 
						|
#
 | 
						|
select @@version, @@version_comment, @@version_compile_machine,
 | 
						|
@@version_compile_os;
 | 
						|
@@version	@@version_comment	@@version_compile_machine	@@version_compile_os
 | 
						|
#	#	#	#
 | 
						|
select @@basedir, @@datadir, @@tmpdir;
 | 
						|
@@basedir	@@datadir	@@tmpdir
 | 
						|
#	#	#
 | 
						|
show variables like 'basedir';
 | 
						|
Variable_name	Value
 | 
						|
basedir	#
 | 
						|
select * from information_schema.session_variables where variable_name like 'basedir';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
BASEDIR	#
 | 
						|
show variables like 'datadir';
 | 
						|
Variable_name	Value
 | 
						|
datadir	#
 | 
						|
select * from information_schema.session_variables where variable_name like 'datadir';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
DATADIR	#
 | 
						|
show variables like 'tmpdir';
 | 
						|
Variable_name	Value
 | 
						|
tmpdir	#
 | 
						|
select * from information_schema.session_variables where variable_name like 'tmpdir';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
TMPDIR	#
 | 
						|
set sort_buffer_size=1024*8;
 | 
						|
select @@ssl_ca, @@ssl_capath, @@ssl_cert, @@ssl_cipher, @@ssl_key;
 | 
						|
@@ssl_ca	@@ssl_capath	@@ssl_cert	@@ssl_cipher	@@ssl_key
 | 
						|
#	#	#	#	#
 | 
						|
show variables like 'ssl%';
 | 
						|
Variable_name	Value
 | 
						|
ssl_ca	#
 | 
						|
ssl_capath	#
 | 
						|
ssl_cert	#
 | 
						|
ssl_cipher	#
 | 
						|
ssl_crl	#
 | 
						|
ssl_crlpath	#
 | 
						|
ssl_key	#
 | 
						|
select * from information_schema.session_variables where variable_name like 'ssl%' order by 1;
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
SSL_CA	#
 | 
						|
SSL_CAPATH	#
 | 
						|
SSL_CERT	#
 | 
						|
SSL_CIPHER	#
 | 
						|
SSL_CRL	#
 | 
						|
SSL_CRLPATH	#
 | 
						|
SSL_KEY	#
 | 
						|
select @@log_queries_not_using_indexes;
 | 
						|
@@log_queries_not_using_indexes
 | 
						|
0
 | 
						|
show variables like 'log_queries_not_using_indexes';
 | 
						|
Variable_name	Value
 | 
						|
log_queries_not_using_indexes	OFF
 | 
						|
select * from information_schema.session_variables where variable_name like 'log_queries_not_using_indexes';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
LOG_QUERIES_NOT_USING_INDEXES	OFF
 | 
						|
select @@"";
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '""' at line 1
 | 
						|
select @@&;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '&' at line 1
 | 
						|
select @@@;
 | 
						|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@' at line 1
 | 
						|
select @@hostname;
 | 
						|
@@hostname
 | 
						|
#
 | 
						|
set @@hostname= "anothername";
 | 
						|
ERROR HY000: Variable 'hostname' is a read only variable
 | 
						|
show variables like 'hostname';
 | 
						|
Variable_name	Value
 | 
						|
hostname	#
 | 
						|
#
 | 
						|
# BUG#37408 - Compressed MyISAM files should not require/use mmap()
 | 
						|
#
 | 
						|
# Test 'myisam_mmap_size' option is not dynamic
 | 
						|
SET @@myisam_mmap_size= 500M;
 | 
						|
ERROR HY000: Variable 'myisam_mmap_size' is a read only variable
 | 
						|
#
 | 
						|
# Bug #52315: utc_date() crashes when system time > year 2037
 | 
						|
#
 | 
						|
SET TIMESTAMP=2*1024*1024*1024;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect timestamp value: '2147483648'
 | 
						|
#Should not crash
 | 
						|
SELECT UTC_DATE();
 | 
						|
SET TIMESTAMP=DEFAULT;
 | 
						|
End of 5.0 tests
 | 
						|
set join_buffer_size=1;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect join_buffer_size value: '1'
 | 
						|
set @save_join_buffer_size=@@join_buffer_size;
 | 
						|
set join_buffer_size=@save_join_buffer_size;
 | 
						|
set global binlog_cache_size         =@my_binlog_cache_size;
 | 
						|
set global connect_timeout           =@my_connect_timeout;
 | 
						|
set global delayed_insert_timeout    =@my_delayed_insert_timeout;
 | 
						|
set global delayed_queue_size        =@my_delayed_queue_size;
 | 
						|
set global flush                     =@my_flush;
 | 
						|
set global flush_time                =@my_flush_time;
 | 
						|
set global key_buffer_size           =@my_key_buffer_size;
 | 
						|
set global max_binlog_cache_size     =@my_max_binlog_cache_size;
 | 
						|
set global max_binlog_size           =@my_max_binlog_size;
 | 
						|
set global max_connect_errors        =@my_max_connect_errors;
 | 
						|
set global max_connections           =@my_max_connections;
 | 
						|
set global max_delayed_threads       =@my_max_delayed_threads;
 | 
						|
set global max_heap_table_size       =@my_max_heap_table_size;
 | 
						|
set global max_insert_delayed_threads=@my_max_insert_delayed_threads;
 | 
						|
set global max_join_size             =@my_max_join_size;
 | 
						|
set global max_user_connections      =@my_max_user_connections;
 | 
						|
set global max_write_lock_count      =default;
 | 
						|
set global myisam_data_pointer_size  =@my_myisam_data_pointer_size;
 | 
						|
set global myisam_max_sort_file_size =@my_myisam_max_sort_file_size;
 | 
						|
set global net_buffer_length         =@my_net_buffer_length;
 | 
						|
Warnings:
 | 
						|
Warning	1708	The value of 'max_allowed_packet' should be no less than the value of 'net_buffer_length'
 | 
						|
set global net_write_timeout         =@my_net_write_timeout;
 | 
						|
set global net_read_timeout          =@my_net_read_timeout;
 | 
						|
set global server_id                 =@my_server_id;
 | 
						|
set global slow_launch_time          =@my_slow_launch_time;
 | 
						|
set global default_storage_engine    =@my_storage_engine;
 | 
						|
set global thread_cache_size         =@my_thread_cache_size;
 | 
						|
set global max_allowed_packet        =@my_max_allowed_packet;
 | 
						|
set global delay_key_write           =@my_delay_key_write;
 | 
						|
set global join_buffer_size          =@my_join_buffer_size;
 | 
						|
set global log_warnings              =@my_log_warnings;
 | 
						|
set global local_infile              =@my_local_infile;
 | 
						|
show global variables where Variable_name='table_definition_cache';
 | 
						|
Variable_name	Value
 | 
						|
table_definition_cache	#
 | 
						|
 | 
						|
# --
 | 
						|
# -- Bug#34820: log_output can be set to illegal value.
 | 
						|
# --
 | 
						|
SET GLOBAL log_output = '';
 | 
						|
ERROR 42000: Variable 'log_output' can't be set to the value of ''
 | 
						|
SET GLOBAL log_output = 0;
 | 
						|
ERROR 42000: Variable 'log_output' can't be set to the value of '0'
 | 
						|
 | 
						|
# -- End of Bug#34820.
 | 
						|
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'ft_max_word_len';
 | 
						|
Variable_name	Value
 | 
						|
ft_max_word_len	84
 | 
						|
SELECT @@session.ft_max_word_len;
 | 
						|
ERROR HY000: Variable 'ft_max_word_len' is a GLOBAL variable
 | 
						|
SELECT @@global.ft_max_word_len;
 | 
						|
@@global.ft_max_word_len
 | 
						|
84
 | 
						|
SET @@session.ft_max_word_len= 7;
 | 
						|
ERROR HY000: Variable 'ft_max_word_len' is a read only variable
 | 
						|
SET @@global.ft_max_word_len= 7;
 | 
						|
ERROR HY000: Variable 'ft_max_word_len' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'ft_min_word_len';
 | 
						|
Variable_name	Value
 | 
						|
ft_min_word_len	4
 | 
						|
SELECT @@session.ft_min_word_len;
 | 
						|
ERROR HY000: Variable 'ft_min_word_len' is a GLOBAL variable
 | 
						|
SELECT @@global.ft_min_word_len;
 | 
						|
@@global.ft_min_word_len
 | 
						|
4
 | 
						|
SET @@session.ft_min_word_len= 7;
 | 
						|
ERROR HY000: Variable 'ft_min_word_len' is a read only variable
 | 
						|
SET @@global.ft_min_word_len= 7;
 | 
						|
ERROR HY000: Variable 'ft_min_word_len' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'ft_query_expansion_limit';
 | 
						|
Variable_name	Value
 | 
						|
ft_query_expansion_limit	20
 | 
						|
SELECT @@session.ft_query_expansion_limit;
 | 
						|
ERROR HY000: Variable 'ft_query_expansion_limit' is a GLOBAL variable
 | 
						|
SELECT @@global.ft_query_expansion_limit;
 | 
						|
@@global.ft_query_expansion_limit
 | 
						|
20
 | 
						|
SET @@session.ft_query_expansion_limit= 7;
 | 
						|
ERROR HY000: Variable 'ft_query_expansion_limit' is a read only variable
 | 
						|
SET @@global.ft_query_expansion_limit= 7;
 | 
						|
ERROR HY000: Variable 'ft_query_expansion_limit' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'ft_stopword_file';
 | 
						|
Variable_name	Value
 | 
						|
ft_stopword_file	(built-in)
 | 
						|
SELECT @@session.ft_stopword_file;
 | 
						|
ERROR HY000: Variable 'ft_stopword_file' is a GLOBAL variable
 | 
						|
SELECT @@global.ft_stopword_file;
 | 
						|
@@global.ft_stopword_file
 | 
						|
(built-in)
 | 
						|
SET @@session.ft_stopword_file= 'x';
 | 
						|
ERROR HY000: Variable 'ft_stopword_file' is a read only variable
 | 
						|
SET @@global.ft_stopword_file= 'x';
 | 
						|
ERROR HY000: Variable 'ft_stopword_file' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'back_log';
 | 
						|
Variable_name	Value
 | 
						|
back_log	#
 | 
						|
SELECT @@session.back_log;
 | 
						|
ERROR HY000: Variable 'back_log' is a GLOBAL variable
 | 
						|
SELECT @@global.back_log > 0;
 | 
						|
@@global.back_log > 0
 | 
						|
1
 | 
						|
SET @@session.back_log= 7;
 | 
						|
ERROR HY000: Variable 'back_log' is a read only variable
 | 
						|
SET @@global.back_log= 7;
 | 
						|
ERROR HY000: Variable 'back_log' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'large_files_support';
 | 
						|
Variable_name	Value
 | 
						|
large_files_support	#
 | 
						|
SELECT @@session.large_files_support;
 | 
						|
ERROR HY000: Variable 'large_files_support' is a GLOBAL variable
 | 
						|
SELECT @@global.large_files_support;
 | 
						|
@@global.large_files_support
 | 
						|
#
 | 
						|
SET @@session.large_files_support= true;
 | 
						|
ERROR HY000: Variable 'large_files_support' is a read only variable
 | 
						|
SET @@global.large_files_support= true;
 | 
						|
ERROR HY000: Variable 'large_files_support' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'character_sets_dir';
 | 
						|
Variable_name	Value
 | 
						|
character_sets_dir	#
 | 
						|
SELECT @@session.character_sets_dir;
 | 
						|
ERROR HY000: Variable 'character_sets_dir' is a GLOBAL variable
 | 
						|
SELECT @@global.character_sets_dir;
 | 
						|
@@global.character_sets_dir
 | 
						|
#
 | 
						|
SET @@session.character_sets_dir= 'x';
 | 
						|
ERROR HY000: Variable 'character_sets_dir' is a read only variable
 | 
						|
SET @@global.character_sets_dir= 'x';
 | 
						|
ERROR HY000: Variable 'character_sets_dir' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'init_file';
 | 
						|
Variable_name	Value
 | 
						|
init_file	#
 | 
						|
SELECT @@session.init_file;
 | 
						|
ERROR HY000: Variable 'init_file' is a GLOBAL variable
 | 
						|
SELECT @@global.init_file;
 | 
						|
@@global.init_file
 | 
						|
#
 | 
						|
SET @@session.init_file= 'x';
 | 
						|
ERROR HY000: Variable 'init_file' is a read only variable
 | 
						|
SET @@global.init_file= 'x';
 | 
						|
ERROR HY000: Variable 'init_file' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'lc_messages_dir';
 | 
						|
Variable_name	Value
 | 
						|
lc_messages_dir	#
 | 
						|
SELECT @@session.lc_messages_dir;
 | 
						|
ERROR HY000: Variable 'lc_messages_dir' is a GLOBAL variable
 | 
						|
SELECT @@global.lc_messages_dir;
 | 
						|
@@global.lc_messages_dir
 | 
						|
#
 | 
						|
SET @@session.lc_messages_dir= 'x';
 | 
						|
ERROR HY000: Variable 'lc_messages_dir' is a read only variable
 | 
						|
SET @@global.lc_messages_dir= 'x';
 | 
						|
ERROR HY000: Variable 'lc_messages_dir' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'large_page_size';
 | 
						|
Variable_name	Value
 | 
						|
large_page_size	#
 | 
						|
SELECT @@session.large_page_size;
 | 
						|
ERROR HY000: Variable 'large_page_size' is a GLOBAL variable
 | 
						|
SELECT @@global.large_page_size;
 | 
						|
@@global.large_page_size
 | 
						|
#
 | 
						|
SET @@session.large_page_size= 7;
 | 
						|
ERROR HY000: Variable 'large_page_size' is a read only variable
 | 
						|
SET @@global.large_page_size= 7;
 | 
						|
ERROR HY000: Variable 'large_page_size' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'large_pages';
 | 
						|
Variable_name	Value
 | 
						|
large_pages	#
 | 
						|
SELECT @@session.large_pages;
 | 
						|
ERROR HY000: Variable 'large_pages' is a GLOBAL variable
 | 
						|
SELECT @@global.large_pages;
 | 
						|
@@global.large_pages
 | 
						|
#
 | 
						|
SET @@session.large_pages= true;
 | 
						|
ERROR HY000: Variable 'large_pages' is a read only variable
 | 
						|
SET @@global.large_pages= true;
 | 
						|
ERROR HY000: Variable 'large_pages' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'log_bin';
 | 
						|
Variable_name	Value
 | 
						|
log_bin	OFF
 | 
						|
SELECT @@session.log_bin;
 | 
						|
ERROR HY000: Variable 'log_bin' is a GLOBAL variable
 | 
						|
SELECT @@global.log_bin;
 | 
						|
@@global.log_bin
 | 
						|
0
 | 
						|
SET @@session.log_bin= true;
 | 
						|
ERROR HY000: Variable 'log_bin' is a read only variable
 | 
						|
SET @@global.log_bin= true;
 | 
						|
ERROR HY000: Variable 'log_bin' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'log_error';
 | 
						|
Variable_name	Value
 | 
						|
log_error	#
 | 
						|
SELECT @@session.log_error;
 | 
						|
ERROR HY000: Variable 'log_error' is a GLOBAL variable
 | 
						|
SELECT @@global.log_error;
 | 
						|
@@global.log_error
 | 
						|
#
 | 
						|
SET @@session.log_error= 'x';
 | 
						|
ERROR HY000: Variable 'log_error' is a read only variable
 | 
						|
SET @@global.log_error= 'x';
 | 
						|
ERROR HY000: Variable 'log_error' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'lower_case_file_system';
 | 
						|
Variable_name	Value
 | 
						|
lower_case_file_system	#
 | 
						|
SELECT @@session.lower_case_file_system;
 | 
						|
ERROR HY000: Variable 'lower_case_file_system' is a GLOBAL variable
 | 
						|
SELECT @@global.lower_case_file_system;
 | 
						|
@@global.lower_case_file_system
 | 
						|
#
 | 
						|
SET @@session.lower_case_file_system= true;
 | 
						|
ERROR HY000: Variable 'lower_case_file_system' is a read only variable
 | 
						|
SET @@global.lower_case_file_system= true;
 | 
						|
ERROR HY000: Variable 'lower_case_file_system' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'lower_case_table_names';
 | 
						|
Variable_name	Value
 | 
						|
lower_case_table_names	#
 | 
						|
SELECT @@session.lower_case_table_names;
 | 
						|
ERROR HY000: Variable 'lower_case_table_names' is a GLOBAL variable
 | 
						|
SELECT @@global.lower_case_table_names;
 | 
						|
@@global.lower_case_table_names
 | 
						|
#
 | 
						|
SET @@session.lower_case_table_names= 7;
 | 
						|
ERROR HY000: Variable 'lower_case_table_names' is a read only variable
 | 
						|
SET @@global.lower_case_table_names= 7;
 | 
						|
ERROR HY000: Variable 'lower_case_table_names' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'myisam_recover_options';
 | 
						|
Variable_name	Value
 | 
						|
myisam_recover_options	BACKUP,QUICK
 | 
						|
SELECT @@session.myisam_recover_options;
 | 
						|
ERROR HY000: Variable 'myisam_recover_options' is a GLOBAL variable
 | 
						|
SELECT @@global.myisam_recover_options;
 | 
						|
@@global.myisam_recover_options
 | 
						|
BACKUP,QUICK
 | 
						|
SET @@session.myisam_recover_options= 'x';
 | 
						|
ERROR HY000: Variable 'myisam_recover_options' is a read only variable
 | 
						|
SET @@global.myisam_recover_options= 'x';
 | 
						|
ERROR HY000: Variable 'myisam_recover_options' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'open_files_limit';
 | 
						|
Variable_name	Value
 | 
						|
open_files_limit	#
 | 
						|
SELECT @@session.open_files_limit;
 | 
						|
ERROR HY000: Variable 'open_files_limit' is a GLOBAL variable
 | 
						|
SELECT @@global.open_files_limit;
 | 
						|
@@global.open_files_limit
 | 
						|
#
 | 
						|
SET @@session.open_files_limit= 7;
 | 
						|
ERROR HY000: Variable 'open_files_limit' is a read only variable
 | 
						|
SET @@global.open_files_limit= 7;
 | 
						|
ERROR HY000: Variable 'open_files_limit' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'pid_file';
 | 
						|
Variable_name	Value
 | 
						|
pid_file	#
 | 
						|
SELECT @@session.pid_file;
 | 
						|
ERROR HY000: Variable 'pid_file' is a GLOBAL variable
 | 
						|
SELECT @@global.pid_file;
 | 
						|
@@global.pid_file
 | 
						|
#
 | 
						|
SET @@session.pid_file= 'x';
 | 
						|
ERROR HY000: Variable 'pid_file' is a read only variable
 | 
						|
SET @@global.pid_file= 'x';
 | 
						|
ERROR HY000: Variable 'pid_file' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'plugin_dir';
 | 
						|
Variable_name	Value
 | 
						|
plugin_dir	#
 | 
						|
SELECT @@session.plugin_dir;
 | 
						|
ERROR HY000: Variable 'plugin_dir' is a GLOBAL variable
 | 
						|
SELECT @@global.plugin_dir;
 | 
						|
@@global.plugin_dir
 | 
						|
#
 | 
						|
SET @@session.plugin_dir= 'x';
 | 
						|
ERROR HY000: Variable 'plugin_dir' is a read only variable
 | 
						|
SET @@global.plugin_dir= 'x';
 | 
						|
ERROR HY000: Variable 'plugin_dir' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'port';
 | 
						|
Variable_name	Value
 | 
						|
port	#
 | 
						|
SELECT @@session.port;
 | 
						|
ERROR HY000: Variable 'port' is a GLOBAL variable
 | 
						|
SELECT @@global.port;
 | 
						|
@@global.port
 | 
						|
#
 | 
						|
SET @@session.port= 7;
 | 
						|
ERROR HY000: Variable 'port' is a read only variable
 | 
						|
SET @@global.port= 7;
 | 
						|
ERROR HY000: Variable 'port' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'protocol_version';
 | 
						|
Variable_name	Value
 | 
						|
protocol_version	10
 | 
						|
SELECT @@session.protocol_version;
 | 
						|
ERROR HY000: Variable 'protocol_version' is a GLOBAL variable
 | 
						|
SELECT @@global.protocol_version;
 | 
						|
@@global.protocol_version
 | 
						|
10
 | 
						|
SET @@session.protocol_version= 7;
 | 
						|
ERROR HY000: Variable 'protocol_version' is a read only variable
 | 
						|
SET @@global.protocol_version= 7;
 | 
						|
ERROR HY000: Variable 'protocol_version' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'skip_external_locking';
 | 
						|
Variable_name	Value
 | 
						|
skip_external_locking	ON
 | 
						|
SELECT @@session.skip_external_locking;
 | 
						|
ERROR HY000: Variable 'skip_external_locking' is a GLOBAL variable
 | 
						|
SELECT @@global.skip_external_locking;
 | 
						|
@@global.skip_external_locking
 | 
						|
1
 | 
						|
SET @@session.skip_external_locking= true;
 | 
						|
ERROR HY000: Variable 'skip_external_locking' is a read only variable
 | 
						|
SET @@global.skip_external_locking= true;
 | 
						|
ERROR HY000: Variable 'skip_external_locking' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'skip_networking';
 | 
						|
Variable_name	Value
 | 
						|
skip_networking	OFF
 | 
						|
SELECT @@session.skip_networking;
 | 
						|
ERROR HY000: Variable 'skip_networking' is a GLOBAL variable
 | 
						|
SELECT @@global.skip_networking;
 | 
						|
@@global.skip_networking
 | 
						|
0
 | 
						|
SET @@session.skip_networking= true;
 | 
						|
ERROR HY000: Variable 'skip_networking' is a read only variable
 | 
						|
SET @@global.skip_networking= true;
 | 
						|
ERROR HY000: Variable 'skip_networking' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'skip_show_database';
 | 
						|
Variable_name	Value
 | 
						|
skip_show_database	OFF
 | 
						|
SELECT @@session.skip_show_database;
 | 
						|
ERROR HY000: Variable 'skip_show_database' is a GLOBAL variable
 | 
						|
SELECT @@global.skip_show_database;
 | 
						|
@@global.skip_show_database
 | 
						|
0
 | 
						|
SET @@session.skip_show_database= true;
 | 
						|
ERROR HY000: Variable 'skip_show_database' is a read only variable
 | 
						|
SET @@global.skip_show_database= true;
 | 
						|
ERROR HY000: Variable 'skip_show_database' is a read only variable
 | 
						|
#
 | 
						|
SHOW VARIABLES like 'thread_stack';
 | 
						|
Variable_name	Value
 | 
						|
thread_stack	#
 | 
						|
SELECT @@session.thread_stack;
 | 
						|
ERROR HY000: Variable 'thread_stack' is a GLOBAL variable
 | 
						|
SELECT @@global.thread_stack;
 | 
						|
@@global.thread_stack
 | 
						|
#
 | 
						|
SET @@session.thread_stack= 7;
 | 
						|
ERROR HY000: Variable 'thread_stack' is a read only variable
 | 
						|
SET @@global.thread_stack= 7;
 | 
						|
ERROR HY000: Variable 'thread_stack' is a read only variable
 | 
						|
SELECT @@global.expire_logs_days INTO @old_eld;
 | 
						|
SET GLOBAL expire_logs_days = -1;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect expire_logs_days value: '-1'
 | 
						|
needs to've been adjusted (0)
 | 
						|
SELECT @@global.expire_logs_days;
 | 
						|
@@global.expire_logs_days
 | 
						|
0.000000
 | 
						|
SET GLOBAL expire_logs_days = 11;
 | 
						|
SET @old_mode=@@sql_mode;
 | 
						|
SET SESSION sql_mode = 'TRADITIONAL';
 | 
						|
SET GLOBAL expire_logs_days = 100;
 | 
						|
ERROR 42000: Variable 'expire_logs_days' can't be set to the value of '100'
 | 
						|
needs to be unchanged (11)
 | 
						|
SELECT @@global.expire_logs_days;
 | 
						|
@@global.expire_logs_days
 | 
						|
11.000000
 | 
						|
SET SESSION sql_mode = @old_mode;
 | 
						|
SET GLOBAL expire_logs_days = 100;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect expire_logs_days value: '100'
 | 
						|
needs to've been adjusted (99)
 | 
						|
SELECT @@global.expire_logs_days;
 | 
						|
@@global.expire_logs_days
 | 
						|
99.000000
 | 
						|
SET GLOBAL expire_logs_days = 11;
 | 
						|
SET GLOBAL expire_logs_days = 99;
 | 
						|
needs to pass with no warnings (99)
 | 
						|
SELECT @@global.expire_logs_days;
 | 
						|
@@global.expire_logs_days
 | 
						|
99.000000
 | 
						|
SET GLOBAL expire_logs_days = @old_eld;
 | 
						|
SET GLOBAL auto_increment_offset=-1;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect auto_increment_offset value: '-1'
 | 
						|
SET GLOBAL auto_increment_offset=0;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect auto_increment_offset value: '0'
 | 
						|
select @@default_storage_engine;
 | 
						|
Catalog	Database	Table	Table_alias	Column	Column_alias	Type	Length	Max length	Is_null	Flags	Decimals	Charsetnr
 | 
						|
def					@@default_storage_engine	253	6	6	Y	0	39	8
 | 
						|
@@default_storage_engine
 | 
						|
MyISAM
 | 
						|
SET @old_server_id = @@GLOBAL.server_id;
 | 
						|
SET GLOBAL server_id = (1 << 32) - 1;
 | 
						|
SELECT @@GLOBAL.server_id;
 | 
						|
@@GLOBAL.server_id
 | 
						|
4294967295
 | 
						|
SET GLOBAL server_id = (1 << 32);
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect server_id value: '4294967296'
 | 
						|
SELECT @@GLOBAL.server_id;
 | 
						|
@@GLOBAL.server_id
 | 
						|
4294967295
 | 
						|
SET GLOBAL server_id = (1 << 60);
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect server_id value: '1152921504606846976'
 | 
						|
SELECT @@GLOBAL.server_id;
 | 
						|
@@GLOBAL.server_id
 | 
						|
4294967295
 | 
						|
SET GLOBAL server_id = 0;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect server_id value: '0'
 | 
						|
SELECT @@GLOBAL.server_id;
 | 
						|
@@GLOBAL.server_id
 | 
						|
1
 | 
						|
SET GLOBAL server_id = -1;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect server_id value: '-1'
 | 
						|
SELECT @@GLOBAL.server_id;
 | 
						|
@@GLOBAL.server_id
 | 
						|
1
 | 
						|
SET GLOBAL server_id = @old_server_id;
 | 
						|
#
 | 
						|
# BUG#10206 - InnoDB: Transaction requiring Max_BinLog_Cache_size > 4GB always rollsback
 | 
						|
#
 | 
						|
SET @old_max_binlog_cache_size = @@GLOBAL.max_binlog_cache_size;
 | 
						|
# Set the max_binlog_cache_size to size more than 4GB. 
 | 
						|
SET GLOBAL max_binlog_cache_size = 5 * 1024 * 1024 * 1024;
 | 
						|
SELECT @@GLOBAL.max_binlog_cache_size;
 | 
						|
@@GLOBAL.max_binlog_cache_size
 | 
						|
max_size
 | 
						|
SET GLOBAL max_binlog_cache_size = @old_max_binlog_cache_size;
 | 
						|
#
 | 
						|
# Bug #37168 : Missing variable - skip_name_resolve
 | 
						|
#
 | 
						|
SELECT @@skip_name_resolve >= 0;
 | 
						|
@@skip_name_resolve >= 0
 | 
						|
1
 | 
						|
SHOW VARIABLES LIKE 'skip_name_resolve';
 | 
						|
Variable_name	Value
 | 
						|
skip_name_resolve	#
 | 
						|
#
 | 
						|
# Bug #43233 : Some server variables are clipped during "update,"
 | 
						|
#              not "check" stage
 | 
						|
#
 | 
						|
SET @kbs=@@global.key_buffer_size;
 | 
						|
SET @kcbs=@@global.key_cache_block_size;
 | 
						|
throw errors in STRICT mode
 | 
						|
SET SQL_MODE=STRICT_ALL_TABLES;
 | 
						|
SET @@global.max_binlog_cache_size=-1;
 | 
						|
ERROR 42000: Variable 'max_binlog_cache_size' can't be set to the value of '-1'
 | 
						|
SET @@global.max_join_size=0;
 | 
						|
ERROR 42000: Variable 'max_join_size' can't be set to the value of '0'
 | 
						|
SET @@global.key_buffer_size=0;
 | 
						|
ERROR HY000: Cannot drop default keycache
 | 
						|
SET @@global.key_cache_block_size=0;
 | 
						|
ERROR 42000: Variable 'key_cache_block_size' can't be set to the value of '0'
 | 
						|
throw warnings in default mode
 | 
						|
SET SQL_MODE=DEFAULT;
 | 
						|
SET @@global.max_binlog_cache_size=-1;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect max_binlog_cache_size value: '-1'
 | 
						|
SET @@global.max_join_size=0;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect max_join_size value: '0'
 | 
						|
SET @@global.key_buffer_size=0;
 | 
						|
ERROR HY000: Cannot drop default keycache
 | 
						|
SET @@global.key_cache_block_size=0;
 | 
						|
Warnings:
 | 
						|
Warning	1292	Truncated incorrect key_cache_block_size value: '0'
 | 
						|
SET @@global.max_binlog_cache_size=DEFAULT;
 | 
						|
SET @@global.max_join_size=DEFAULT;
 | 
						|
SET @@global.key_buffer_size=@kbs;
 | 
						|
SET @@global.key_cache_block_size=@kcbs;
 | 
						|
#
 | 
						|
# Bug#11766424  59527:
 | 
						|
# Assert in DECIMAL_BIN_SIZE: 
 | 
						|
# `SCALE >= 0 && PRECISION > 0 && SCALE <= PRE
 | 
						|
# This test also exposed a bug with sql_buffer_result
 | 
						|
#
 | 
						|
CREATE TABLE t1(f1 DECIMAL(1,1) UNSIGNED);
 | 
						|
INSERT INTO t1 VALUES (0.2),(0.1);
 | 
						|
set @a=NULL;
 | 
						|
set sql_buffer_result=0;
 | 
						|
SELECT 1 as 'one' FROM t1 GROUP BY @a:= ROUND(f1);
 | 
						|
one
 | 
						|
1
 | 
						|
explain SELECT 1 as 'one' FROM t1 GROUP BY @a:= (SELECT ROUND(f1) FROM t1 WHERE f1 = 0);
 | 
						|
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 | 
						|
1	PRIMARY	t1	ALL	NULL	NULL	NULL	NULL	2	
 | 
						|
2	SUBQUERY	t1	ALL	NULL	NULL	NULL	NULL	2	Using where
 | 
						|
SELECT 1 as 'one' FROM t1 GROUP BY @a:= (SELECT ROUND(f1) FROM t1 WHERE f1 = 0);
 | 
						|
one
 | 
						|
1
 | 
						|
SELECT 1 as 'one' FROM t1 GROUP BY @a:= (SELECT ROUND(f1) FROM t1 WHERE @a=f1);
 | 
						|
one
 | 
						|
1
 | 
						|
set sql_buffer_result=1;
 | 
						|
explain SELECT 1 as 'one' FROM t1 GROUP BY @a:= (SELECT ROUND(f1) FROM t1 WHERE f1 = 0);
 | 
						|
id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
 | 
						|
1	PRIMARY	t1	ALL	NULL	NULL	NULL	NULL	2	Using temporary
 | 
						|
2	SUBQUERY	t1	ALL	NULL	NULL	NULL	NULL	2	Using where
 | 
						|
SELECT 1 as 'one' FROM t1 GROUP BY @a:= (SELECT ROUND(f1) FROM t1 WHERE f1 = 0);
 | 
						|
one
 | 
						|
1
 | 
						|
SELECT 1 as 'one' FROM t1 GROUP BY @a:= (SELECT ROUND(f1) FROM t1 WHERE @a=f1);
 | 
						|
one
 | 
						|
1
 | 
						|
DROP TABLE t1;
 | 
						|
set sql_buffer_result=0;
 | 
						|
CREATE TABLE t1 AS SELECT @a:= CAST(1 AS UNSIGNED) AS a;
 | 
						|
SHOW CREATE TABLE t1;
 | 
						|
Table	Create Table
 | 
						|
t1	CREATE TABLE `t1` (
 | 
						|
  `a` int(1) unsigned NOT NULL
 | 
						|
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci
 | 
						|
DROP TABLE t1;
 | 
						|
End of 5.1 tests
 | 
						|
 | 
						|
#
 | 
						|
# Bug#34828: OF is taken as OFF and a value of 0 is set for variable SQL_notes.
 | 
						|
#
 | 
						|
 | 
						|
# Checking sql_notes...
 | 
						|
SET @sql_notes_saved = @@sql_notes;
 | 
						|
 | 
						|
SET @@sql_notes = ON;
 | 
						|
SELECT @@sql_notes;
 | 
						|
@@sql_notes
 | 
						|
1
 | 
						|
 | 
						|
SET @@sql_notes = OF;
 | 
						|
ERROR 42000: Variable 'sql_notes' can't be set to the value of 'OF'
 | 
						|
SELECT @@sql_notes;
 | 
						|
@@sql_notes
 | 
						|
1
 | 
						|
 | 
						|
SET @@sql_notes = OFF;
 | 
						|
SELECT @@sql_notes;
 | 
						|
@@sql_notes
 | 
						|
0
 | 
						|
 | 
						|
SET @@sql_notes = @sql_notes_saved;
 | 
						|
 | 
						|
# Checking delay_key_write...
 | 
						|
SET @delay_key_write_saved = @@delay_key_write;
 | 
						|
 | 
						|
SET GLOBAL delay_key_write = ON;
 | 
						|
SELECT @@delay_key_write;
 | 
						|
@@delay_key_write
 | 
						|
ON
 | 
						|
 | 
						|
SET GLOBAL delay_key_write = OF;
 | 
						|
ERROR 42000: Variable 'delay_key_write' can't be set to the value of 'OF'
 | 
						|
SELECT @@delay_key_write;
 | 
						|
@@delay_key_write
 | 
						|
ON
 | 
						|
 | 
						|
SET GLOBAL delay_key_write = AL;
 | 
						|
ERROR 42000: Variable 'delay_key_write' can't be set to the value of 'AL'
 | 
						|
SELECT @@delay_key_write;
 | 
						|
@@delay_key_write
 | 
						|
ON
 | 
						|
 | 
						|
SET GLOBAL delay_key_write = OFF;
 | 
						|
SELECT @@delay_key_write;
 | 
						|
@@delay_key_write
 | 
						|
OFF
 | 
						|
 | 
						|
SET GLOBAL delay_key_write = ALL;
 | 
						|
SELECT @@delay_key_write;
 | 
						|
@@delay_key_write
 | 
						|
ALL
 | 
						|
 | 
						|
SET GLOBAL delay_key_write = @delay_key_write_saved;
 | 
						|
 | 
						|
# Checking sql_safe_updates...
 | 
						|
SET @sql_safe_updates_saved = @@sql_safe_updates;
 | 
						|
 | 
						|
SET @@sql_safe_updates = ON;
 | 
						|
SELECT @@sql_safe_updates;
 | 
						|
@@sql_safe_updates
 | 
						|
1
 | 
						|
 | 
						|
SET @@sql_safe_updates = OF;
 | 
						|
ERROR 42000: Variable 'sql_safe_updates' can't be set to the value of 'OF'
 | 
						|
SELECT @@sql_safe_updates;
 | 
						|
@@sql_safe_updates
 | 
						|
1
 | 
						|
 | 
						|
SET @@sql_safe_updates = OFF;
 | 
						|
SELECT @@sql_safe_updates;
 | 
						|
@@sql_safe_updates
 | 
						|
0
 | 
						|
 | 
						|
SET @@sql_safe_updates = @sql_safe_updates_saved;
 | 
						|
 | 
						|
# Checking foreign_key_checks...
 | 
						|
SET @foreign_key_checks_saved = @@foreign_key_checks;
 | 
						|
 | 
						|
SET @@foreign_key_checks = ON;
 | 
						|
SELECT @@foreign_key_checks;
 | 
						|
@@foreign_key_checks
 | 
						|
1
 | 
						|
 | 
						|
SET @@foreign_key_checks = OF;
 | 
						|
ERROR 42000: Variable 'foreign_key_checks' can't be set to the value of 'OF'
 | 
						|
SELECT @@foreign_key_checks;
 | 
						|
@@foreign_key_checks
 | 
						|
1
 | 
						|
 | 
						|
SET @@foreign_key_checks = OFF;
 | 
						|
SELECT @@foreign_key_checks;
 | 
						|
@@foreign_key_checks
 | 
						|
0
 | 
						|
 | 
						|
SET @@foreign_key_checks = @foreign_key_checks_saved;
 | 
						|
 | 
						|
# Checking unique_checks...
 | 
						|
SET @unique_checks_saved = @@unique_checks;
 | 
						|
 | 
						|
SET @@unique_checks = ON;
 | 
						|
SELECT @@unique_checks;
 | 
						|
@@unique_checks
 | 
						|
1
 | 
						|
 | 
						|
SET @@unique_checks = OF;
 | 
						|
ERROR 42000: Variable 'unique_checks' can't be set to the value of 'OF'
 | 
						|
SELECT @@unique_checks;
 | 
						|
@@unique_checks
 | 
						|
1
 | 
						|
 | 
						|
SET @@unique_checks = OFF;
 | 
						|
SELECT @@unique_checks;
 | 
						|
@@unique_checks
 | 
						|
0
 | 
						|
 | 
						|
SET @@unique_checks = @unique_checks_saved;
 | 
						|
 | 
						|
# Checking sql_buffer_result...
 | 
						|
SET @sql_buffer_result_saved = @@sql_buffer_result;
 | 
						|
 | 
						|
SET @@sql_buffer_result = ON;
 | 
						|
SELECT @@sql_buffer_result;
 | 
						|
@@sql_buffer_result
 | 
						|
1
 | 
						|
 | 
						|
SET @@sql_buffer_result = OF;
 | 
						|
ERROR 42000: Variable 'sql_buffer_result' can't be set to the value of 'OF'
 | 
						|
SELECT @@sql_buffer_result;
 | 
						|
@@sql_buffer_result
 | 
						|
1
 | 
						|
 | 
						|
SET @@sql_buffer_result = OFF;
 | 
						|
SELECT @@sql_buffer_result;
 | 
						|
@@sql_buffer_result
 | 
						|
0
 | 
						|
 | 
						|
SET @@sql_buffer_result = @sql_buffer_result_saved;
 | 
						|
 | 
						|
# Checking sql_quote_show_create...
 | 
						|
SET @sql_quote_show_create_saved = @@sql_quote_show_create;
 | 
						|
 | 
						|
SET @@sql_quote_show_create = ON;
 | 
						|
SELECT @@sql_quote_show_create;
 | 
						|
@@sql_quote_show_create
 | 
						|
1
 | 
						|
 | 
						|
SET @@sql_quote_show_create = OF;
 | 
						|
ERROR 42000: Variable 'sql_quote_show_create' can't be set to the value of 'OF'
 | 
						|
SELECT @@sql_quote_show_create;
 | 
						|
@@sql_quote_show_create
 | 
						|
1
 | 
						|
 | 
						|
SET @@sql_quote_show_create = OFF;
 | 
						|
SELECT @@sql_quote_show_create;
 | 
						|
@@sql_quote_show_create
 | 
						|
0
 | 
						|
 | 
						|
SET @@sql_quote_show_create = @sql_quote_show_create_saved;
 | 
						|
 | 
						|
# End of Bug#34828.
 | 
						|
 | 
						|
# Make sure we can manipulate with autocommit in the
 | 
						|
# along with other variables.
 | 
						|
drop table if exists t1;
 | 
						|
drop function if exists t1_max;
 | 
						|
drop function if exists t1_min;
 | 
						|
set sql_mode="";
 | 
						|
create table t1 (a int) engine=innodb;
 | 
						|
set sql_mode=default;
 | 
						|
insert into t1(a) values (0), (1);
 | 
						|
create function t1_max() returns int return (select max(a) from t1);
 | 
						|
create function t1_min() returns int return (select min(a) from t1);
 | 
						|
select t1_min();
 | 
						|
t1_min()
 | 
						|
0
 | 
						|
select t1_max();
 | 
						|
t1_max()
 | 
						|
1
 | 
						|
set @@session.autocommit=t1_min(), @@session.autocommit=t1_max(),
 | 
						|
@@session.autocommit=t1_min(), @@session.autocommit=t1_max(),
 | 
						|
@@session.autocommit=t1_min(), @@session.autocommit=t1_max();
 | 
						|
# Cleanup.
 | 
						|
drop table t1;
 | 
						|
drop function t1_min;
 | 
						|
drop function t1_max;
 | 
						|
#
 | 
						|
# Bug #59884: setting charset to 2048 crashes
 | 
						|
#
 | 
						|
set session character_set_results = 2048;
 | 
						|
ERROR 42000: Unknown character set: '2048'
 | 
						|
set session character_set_client=2048;
 | 
						|
ERROR 42000: Unknown character set: '2048'
 | 
						|
set session character_set_connection=2048;
 | 
						|
ERROR 42000: Unknown character set: '2048'
 | 
						|
set session character_set_server=2048;
 | 
						|
ERROR 42000: Unknown character set: '2048'
 | 
						|
set session collation_server=2048;
 | 
						|
ERROR HY000: Unknown collation: '2048'
 | 
						|
set session character_set_filesystem=2048;
 | 
						|
ERROR 42000: Unknown character set: '2048'
 | 
						|
set session character_set_database=2048;
 | 
						|
ERROR 42000: Unknown character set: '2048'
 | 
						|
set session collation_connection=2048;
 | 
						|
ERROR HY000: Unknown collation: '2048'
 | 
						|
set session collation_database=2048;
 | 
						|
ERROR HY000: Unknown collation: '2048'
 | 
						|
set session rand_seed1=DEFAULT;
 | 
						|
ERROR 42000: Variable 'rand_seed1' doesn't have a default value
 | 
						|
set autocommit = value(v);
 | 
						|
ERROR 42S22: Unknown column 'v' in 'SET'
 | 
						|
set session sql_mode=ansi_quotes;
 | 
						|
select * from information_schema.session_variables where variable_name='sql_mode';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
SQL_MODE	ANSI_QUOTES
 | 
						|
show global status like 'foobar';
 | 
						|
Variable_name	Value
 | 
						|
select * from information_schema.session_variables where variable_name='sql_mode';
 | 
						|
VARIABLE_NAME	VARIABLE_VALUE
 | 
						|
SQL_MODE	ANSI_QUOTES
 | 
						|
End of 5.5 tests
 | 
						|
explain extended select @@VERsion from dual where rand() > @@verSION;
 | 
						|
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 | 
						|
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
 | 
						|
Warnings:
 | 
						|
Note	1003	select @@VERsion AS "@@VERsion" from DUAL  where rand() > @@version
 | 
						|
explain extended select @@SESsion.SQL_mode from dual where rand() > @@sesSION.sql_MODE;
 | 
						|
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 | 
						|
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
 | 
						|
Warnings:
 | 
						|
Note	1003	select @@SESsion.SQL_mode AS "@@SESsion.SQL_mode" from DUAL  where rand() > @@sql_mode
 | 
						|
explain extended select @@GLObal.COLLATION_connection from dual where rand() > @@gloBAL.collation_CONNECTION;
 | 
						|
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 | 
						|
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
 | 
						|
Warnings:
 | 
						|
Note	1003	select @@GLObal.COLLATION_connection AS "@@GLObal.COLLATION_connection" from DUAL  where rand() > @@global.collation_connection
 | 
						|
explain extended select @@FOObar.KEY_BUFfer_size from dual where rand() > @@fooBAR.key_bufFER_SIZE;
 | 
						|
id	select_type	table	type	possible_keys	key	key_len	ref	rows	filtered	Extra
 | 
						|
1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	NULL	No tables used
 | 
						|
Warnings:
 | 
						|
Note	1003	select @@FOObar.KEY_BUFfer_size AS "@@FOObar.KEY_BUFfer_size" from DUAL  where rand() > @@fooBAR.key_buffer_size
 | 
						|
#
 | 
						|
# MDEV-15316 Assertion `(thd->lex)->var_list.is_empty()' failed in MYSQLparse
 | 
						|
#
 | 
						|
SET GLOBAL mc.key_cache_age_threshold=100, mc.key_cache_block_size=1024;
 | 
						|
SET GLOBAL mc.key_buffer_size= 0 /*cleanup*/;
 |