mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
36290c0923
This patch also fixes Bug#55452 "SET PASSWORD is replicated twice in RBR mode". The goal of this patch is to remove the release of metadata locks from close_thread_tables(). This is necessary to not mistakenly release the locks in the course of a multi-step operation that involves multiple close_thread_tables() or close_tables_for_reopen(). On the same token, move statement commit outside close_thread_tables(). Other cleanups: Cleanup COM_FIELD_LIST. Don't call close_thread_tables() in COM_SHUTDOWN -- there are no open tables there that can be closed (we leave the locked tables mode in THD destructor, and this close_thread_tables() won't leave it anyway). Make open_and_lock_tables() and open_and_lock_tables_derived() call close_thread_tables() upon failure. Remove the calls to close_thread_tables() that are now unnecessary. Simplify the back off condition in Open_table_context. Streamline metadata lock handling in LOCK TABLES implementation. Add asserts to ensure correct life cycle of statement transaction in a session. Remove a piece of dead code that has also become redundant after the fix for Bug 37521. mysql-test/r/variables.result: Update results: set @@autocommit and statement transaction/ prelocked mode. mysql-test/r/view.result: A harmless change in CHECK TABLE <view> status for a broken view. If previously a failure to prelock all functions used in a view would leave the connection in LTM_PRELOCKED mode, now we call close_thread_tables() from open_and_lock_tables() and leave prelocked mode, thus some check in mysql_admin_table() that works only in prelocked/locked tables mode is no longer activated. mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result: Fixed Bug#55452 "SET PASSWORD is replicated twice in RBR mode": extra binlog events are gone from the binary log. mysql-test/t/variables.test: Add a test case: set autocommit and statement transaction/prelocked mode. sql/event_data_objects.cc: Simplify code in Event_job_data::execute(). Move sp_head memory management to lex_end(). sql/event_db_repository.cc: Move the release of metadata locks outside close_thread_tables(). Make sure we call close_thread_tables() when open_and_lock_tables() fails and remove extra code from the events data dictionary. Use close_mysql_tables(), a new internal function to properly close mysql.* tables in the data dictionary. Contract Event_db_repository::drop_events_by_field, drop_schema_events into one function. When dropping all events in a schema, make sure we don't mistakenly release all locks acquired by DROP DATABASE. These include locks on the database name and the global intention exclusive metadata lock. sql/event_db_repository.h: Function open_event_table() does not require an instance of Event_db_repository. sql/events.cc: Use close_mysql_tables() instead of close_thread_tables() to bootstrap events, since the latter no longer releases metadata locks. sql/ha_ndbcluster.cc: - mysql_rm_table_part2 no longer releases acquired metadata locks. Do it in the caller. sql/ha_ndbcluster_binlog.cc: Deploy the new protocol for closing thread tables in run_query() and ndb_binlog_index code. sql/handler.cc: Assert that we never call ha_commit_trans/ ha_rollback_trans in sub-statement, which is now the case. sql/handler.h: Add an accessor to check whether THD_TRANS object is empty (has no transaction started). sql/log.cc: Update a comment. sql/log_event.cc: Since now we commit/rollback statement transaction in mysql_execute_command(), we need a mechanism to communicate from Query_log_event::do_apply_event() to mysql_execute_command() that the statement transaction should be rolled back, not committed. Ideally it would be a virtual method of THD. I hesitate to make THD a virtual base class in this already large patch. Use a thd->variables.option_bits for now. Remove a call to close_thread_tables() from the slave IO thread. It doesn't open any tables, and the protocol for closing thread tables is more complicated now. Make sure we properly close thread tables, however, in Load_data_log_event, which doesn't follow the standard server execution procedure with mysql_execute_command(). @todo: this piece should use Server_runnable framework instead. Remove an unnecessary call to mysql_unlock_tables(). sql/rpl_rli.cc: Update Relay_log_info::slave_close_thread_tables() to follow the new close protocol. sql/set_var.cc: Remove an unused header. sql/slave.cc: Remove an unnecessary call to close_thread_tables(). sql/sp.cc: Remove unnecessary calls to close_thread_tables() from SP DDL implementation. The tables will be closed by the caller, in mysql_execute_command(). When dropping all routines in a database, make sure to not mistakenly drop all metadata locks acquired so far, they include the scoped lock on the schema. sql/sp_head.cc: Correct the protocol that closes thread tables in an SP instruction. Clear lex->sphead before cleaning up lex with lex_end to make sure that we don't delete the sphead twice. It's considered to be "cleaner" and more in line with future changes than calling delete lex->sphead in other places that cleanup the lex. sql/sp_head.h: When destroying m_lex_keeper of an instruction, don't delete the sphead that all lex objects share. @todo: don't store a reference to routine's sp_head instance in instruction's lex. sql/sql_acl.cc: Don't call close_thread_tables() where the caller will do that for us. Fix Bug#55452 "SET PASSWORD is replicated twice in RBR mode" by disabling RBR replication in change_password() function. Use close_mysql_tables() in bootstrap and ACL reload code to make sure we release all metadata locks. sql/sql_base.cc: This is the main part of the patch: - remove manipulation with thd->transaction and thd->mdl_context from close_thread_tables(). Now this function is only responsible for closing tables, nothing else. This is necessary to be able to easily use close_thread_tables() in procedures, that involve multiple open/close tables, which all need to be protected continuously by metadata locks. Add asserts ensuring that TABLE object is only used when is protected by a metadata lock. Simplify the back off condition of Open_table_context, we no longer need to look at the autocommit mode. Make open_and_lock_tables() and open_normal_and_derived_tables() close thread tables and release metadata locks acquired so-far upon failure. This simplifies their usage. Implement close_mysql_tables(). sql/sql_base.h: Add declaration for close_mysql_tables(). sql/sql_class.cc: Remove a piece of dead code that has also become redundant after the fix for Bug 37521. The code became dead when my_eof() was made a non-protocol method, but a method that merely modifies the diagnostics area. The code became redundant with the fix for Bug#37521, when we started to cal close_thread_tables() before Protocol::end_statement(). sql/sql_do.cc: Do nothing in DO if inside a substatement (the assert moved out of trans_rollback_stmt). sql/sql_handler.cc: Add comments. sql/sql_insert.cc: Remove dead code. Release metadata locks explicitly at the end of the delayed insert thread. sql/sql_lex.cc: Add destruction of lex->sphead to lex_end(), lex "reset" method called at the end of each statement. sql/sql_parse.cc: Move close_thread_tables() and other related cleanups to mysql_execute_command() from dispatch_command(). This has become possible after the fix for Bug#37521. Mark federated SERVER statements as DDL. Next step: make sure that we don't store eof packet in the query cache, and move the query cache code outside mysql_parse. Brush up the code of COM_FIELD_LIST. Remove unnecessary calls to close_thread_tables(). When killing a query, don't report "OK" if it was a suicide. sql/sql_parse.h: Remove declaration of a function that is now static. sql/sql_partition.cc: Remove an unnecessary call to close_thread_tables(). sql/sql_plugin.cc: open_and_lock_tables() will clean up after itself after a failure. Move close_thread_tables() above end: label, and replace with close_mysql_tables(), which will also release the metadata lock on mysql.plugin. sql/sql_prepare.cc: Now that we no longer release locks in close_thread_tables() statement prepare code has become more straightforward. Remove the now redundant check for thd->killed() (used only by the backup project) from Execute_server_runnable. Reorder code to take into account that now mysql_execute_command() performs lex->unit.cleanup() and close_thread_tables(). sql/sql_priv.h: Add a new option to server options to interact between the slave SQL thread and execution framework (hack). @todo: use a virtual method of class THD instead. sql/sql_servers.cc: Due to Bug 25705 replication of DROP/CREATE/ALTER SERVER is broken. Make sure at least we do not attempt to replicate these statements using RBR, as this violates the assert in close_mysql_tables(). sql/sql_table.cc: Do not release metadata locks in mysql_rm_table_part2, this is done by the caller. Do not call close_thread_tables() in mysql_create_table(), this is done by the caller. Fix a bug in DROP TABLE under LOCK TABLES when, upon error in wait_while_table_is_used() we would mistakenly release the metadata lock on a non-dropped table. Explicitly release metadata locks when doing an implicit commit. sql/sql_trigger.cc: Now that we delete lex->sphead in lex_end(), zero the trigger's sphead in lex after loading the trigger, to avoid double deletion. sql/sql_udf.cc: Use close_mysql_tables() instead of close_thread_tables(). sql/sys_vars.cc: Remove code added in scope of WL#4284 which would break when we perform set @@session.autocommit along with setting other variables and using tables or functions. A test case added to variables.test. sql/transaction.cc: Add asserts. sql/tztime.cc: Use close_mysql_tables() rather than close_thread_tables().
1701 lines
56 KiB
Text
1701 lines
56 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_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_query_cache_limit =@@global.query_cache_limit;
|
|
set @my_query_cache_type =@@global.query_cache_type;
|
|
set @my_rpl_recovery_rank =@@global.rpl_recovery_rank;
|
|
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_join_buffer_size =@@global.join_buffer_size;
|
|
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 big_tables=OFF, big_tables=ON, big_tables=0, big_tables=1, big_tables="OFF", big_tables="ON";
|
|
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 global timed_mutexes=ON;
|
|
show variables like 'timed_mutexes';
|
|
Variable_name Value
|
|
timed_mutexes ON
|
|
select * from information_schema.session_variables where variable_name like 'timed_mutexes';
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
TIMED_MUTEXES ON
|
|
set global timed_mutexes=0;
|
|
show variables like 'timed_mutexes';
|
|
Variable_name Value
|
|
timed_mutexes OFF
|
|
select * from information_schema.session_variables where variable_name like 'timed_mutexes';
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
TIMED_MUTEXES OFF
|
|
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 query_cache_size=102400;
|
|
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 8192
|
|
query_prealloc_size 8192
|
|
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 8192
|
|
QUERY_PREALLOC_SIZE 8192
|
|
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 8192
|
|
query_prealloc_size 8192
|
|
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 big_tables=OFFF;
|
|
ERROR 42000: Variable 'big_tables' can't be set to the value of 'OFFF'
|
|
set big_tables="OFFF";
|
|
ERROR 42000: Variable 'big_tables' can't be set to the value of 'OFFF'
|
|
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, big_tables=2;
|
|
ERROR 42000: Variable 'big_tables' can't be set to the value of '2'
|
|
show local variables like 'default_storage_engine';
|
|
Variable_name Value
|
|
default_storage_engine MEMORY
|
|
set SESSION query_cache_size=10000;
|
|
ERROR HY000: Variable 'query_cache_size' is a GLOBAL variable and should be set with SET GLOBAL
|
|
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;
|
|
set big_tables=1;
|
|
select @@autocommit, @@big_tables;
|
|
@@autocommit @@big_tables
|
|
1 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'
|
|
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 max_tmp_tables=100;
|
|
set global max_user_connections=100;
|
|
select @@max_user_connections;
|
|
@@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 global query_cache_limit=100;
|
|
set global query_cache_size=100;
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect query_cache_size value: '100'
|
|
set global query_cache_type=demand;
|
|
set read_buffer_size=100;
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect read_buffer_size value: '100'
|
|
set read_rnd_buffer_size=100;
|
|
set global rpl_recovery_rank=100;
|
|
Warnings:
|
|
Warning 1287 The syntax '@@rpl_recovery_rank' is deprecated and will be removed in MySQL 7.0.
|
|
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_big_tables=1;
|
|
set sql_buffer_result=1;
|
|
set sql_log_bin=1;
|
|
set sql_log_off=1;
|
|
set sql_low_priority_updates=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 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=100;
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect tmp_table_size value: '100'
|
|
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;
|
|
select @@global.max_user_connections,@@local.max_join_size;
|
|
@@global.max_user_connections @@local.max_join_size
|
|
100 100
|
|
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
|
|
100 100
|
|
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
|
|
100 100
|
|
set @a=1, @b=2;
|
|
set @a=@b, @b=@a;
|
|
select @a, @b;
|
|
@a @b
|
|
2 1
|
|
set @@global.global.key_buffer_size= 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 'key_buffer_size= 1' at line 1
|
|
set GLOBAL global.key_buffer_size= 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 'key_buffer_size= 1' at line 1
|
|
SELECT @@global.global.key_buffer_size;
|
|
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 '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 MySQL 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 MySQL 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
|
|
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,30) DEFAULT NULL,
|
|
`c3` longtext,
|
|
`c4` double DEFAULT NULL
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
|
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 1
|
|
SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME LIKE 'table_open_cache';
|
|
VARIABLE_NAME VARIABLE_VALUE
|
|
TABLE_OPEN_CACHE 1
|
|
SET GLOBAL table_open_cache=DEFAULT;
|
|
set character_set_results=NULL;
|
|
select ifnull(@@character_set_results,"really null");
|
|
ifnull(@@character_set_results,"really null")
|
|
really null
|
|
set names latin1;
|
|
select @@have_innodb;
|
|
@@have_innodb
|
|
#
|
|
*** 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=109;
|
|
select @@lc_time_names;
|
|
@@lc_time_names
|
|
el_GR
|
|
LC_TIME_NAMES: testing a number beyond the valid ID range:
|
|
set lc_time_names=110;
|
|
ERROR HY000: Unknown locale: '110'
|
|
select @@lc_time_names;
|
|
@@lc_time_names
|
|
el_GR
|
|
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
|
|
New connection
|
|
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
|
|
Returnung to default connection
|
|
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
|
|
utf8
|
|
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 #
|
|
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_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_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 MySQL 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 MySQL 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 MySQL 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;
|
|
#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 =default;
|
|
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;
|
|
set global net_write_timeout =@my_net_write_timeout;
|
|
set global net_read_timeout =@my_net_read_timeout;
|
|
set global query_cache_limit =@my_query_cache_limit;
|
|
set global query_cache_type =@my_query_cache_type;
|
|
set global rpl_recovery_rank =@my_rpl_recovery_rank;
|
|
Warnings:
|
|
Warning 1287 The syntax '@@rpl_recovery_rank' is deprecated and will be removed in MySQL 7.0.
|
|
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 join_buffer_size =@my_join_buffer_size;
|
|
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 50
|
|
SELECT @@session.back_log;
|
|
ERROR HY000: Variable 'back_log' is a GLOBAL variable
|
|
SELECT @@global.back_log;
|
|
@@global.back_log
|
|
50
|
|
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 OFF
|
|
SELECT @@session.myisam_recover_options;
|
|
ERROR HY000: Variable 'myisam_recover_options' is a GLOBAL variable
|
|
SELECT @@global.myisam_recover_options;
|
|
@@global.myisam_recover_options
|
|
OFF
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 31 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;
|
|
SELECT @@GLOBAL.server_id;
|
|
@@GLOBAL.server_id
|
|
0
|
|
SET GLOBAL server_id = -1;
|
|
Warnings:
|
|
Warning 1292 Truncated incorrect server_id value: '-1'
|
|
SELECT @@GLOBAL.server_id;
|
|
@@GLOBAL.server_id
|
|
0
|
|
SET GLOBAL server_id = @old_server_id;
|
|
SELECT @@GLOBAL.INIT_FILE, @@GLOBAL.INIT_FILE IS NULL;
|
|
@@GLOBAL.INIT_FILE @@GLOBAL.INIT_FILE IS NULL
|
|
NULL 1
|
|
CREATE TABLE t1 (a INT);
|
|
INSERT INTO t1 VALUES ();
|
|
SET @bug42778= @@sql_safe_updates;
|
|
SET @@sql_safe_updates= 0;
|
|
DELETE FROM t1 ORDER BY (@@GLOBAL.INIT_FILE) ASC LIMIT 10;
|
|
SET @@sql_safe_updates= @bug42778;
|
|
DROP TABLE t1;
|
|
#
|
|
# 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
|
|
5368709120
|
|
SET GLOBAL max_binlog_cache_size = @old_max_binlog_cache_size;
|
|
#
|
|
# Bug #37168 : Missing variable - skip_name_resolve
|
|
#
|
|
SELECT @@skip_name_resolve;
|
|
@@skip_name_resolve
|
|
0
|
|
SHOW VARIABLES LIKE 'skip_name_resolve';
|
|
Variable_name Value
|
|
skip_name_resolve OFF
|
|
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;
|
|
create table t1 (a int) engine=innodb;
|
|
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;
|