diff --git a/mysql-test/collections/disabled_rocksdb.def b/mysql-test/collections/disabled_rocksdb.def index fc2ba9e26d2a..3cdb098ec38f 100644 --- a/mysql-test/collections/disabled_rocksdb.def +++ b/mysql-test/collections/disabled_rocksdb.def @@ -72,8 +72,6 @@ rocksdb.bypass_select_scenarios_bloom : BUG#0000 Rebase: not-yet-implemented rocksdb.verify_tbl_share_primary_idx : BUG#0000 Rebase: not-yet-implemented rocksdb.bypass_select_range_sk_bloom : BUG#0000 Rebase: not-yet-implemented rocksdb.bypass_select_basic_bloom : BUG#0000 Rebase: not-yet-implemented -rocksdb.rocksdb_deadlock_detect_rc : BUG#0000 Rebase: not-yet-implemented -rocksdb.rocksdb_deadlock_detect_rr : BUG#0000 Rebase: not-yet-implemented rocksdb.bloomfilter2 : BUG#0000 Rebase: not-yet-implemented rocksdb.bloomfilter3 : BUG#0000 Rebase: not-yet-implemented rocksdb.skip_scan : BUG#0000 Rebase: not-yet-implemented diff --git a/mysql-test/suite/sys_vars/r/per_user_session_var_default_val_validation.result b/mysql-test/suite/sys_vars/r/per_user_session_var_default_val_validation.result index ddb777c98a5a..68eaed8214b0 100644 --- a/mysql-test/suite/sys_vars/r/per_user_session_var_default_val_validation.result +++ b/mysql-test/suite/sys_vars/r/per_user_session_var_default_val_validation.result @@ -107,9 +107,6 @@ ERROR 42000: Variable 'per_user_session_var_default_val' can't be set to the val ## Unsupported type 'flagset' SET GLOBAL per_user_session_var_default_val = "u1:optimizer_switch=xyz"; ERROR 42000: Variable 'per_user_session_var_default_val' can't be set to the value of 'u1:optimizer_switch=xyz' -## Read-Only -SET GLOBAL per_user_session_var_default_val = "usr1:tx_isolation=READ-COMMITTED"; -ERROR 42000: Variable 'per_user_session_var_default_val' can't be set to the value of 'usr1:tx_isolation=READ-COMMITTED' ## ## root privilege is required to set session variable binglog_format ## root privilege will be granted to usr1 temporarily to get this done diff --git a/mysql-test/suite/sys_vars/r/query_cache_size_basic.result b/mysql-test/suite/sys_vars/r/query_cache_size_basic.result new file mode 100644 index 000000000000..10837ba0540a --- /dev/null +++ b/mysql-test/suite/sys_vars/r/query_cache_size_basic.result @@ -0,0 +1,5 @@ +SELECT @@global.query_cache_size; +@@global.query_cache_size +0 +SET @@global.query_cache_size=10*1024; +ERROR HY000: Variable 'query_cache_size' is a read only variable diff --git a/mysql-test/suite/sys_vars/r/query_cache_type_basic.result b/mysql-test/suite/sys_vars/r/query_cache_type_basic.result new file mode 100644 index 000000000000..5bb914687110 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/query_cache_type_basic.result @@ -0,0 +1,5 @@ +SELECT @@global.query_cache_type; +@@global.query_cache_type +OFF +SET @@global.query_cache_type='ON'; +ERROR HY000: Variable 'query_cache_type' is a read only variable diff --git a/mysql-test/suite/sys_vars/r/transaction_isolation_basic.result b/mysql-test/suite/sys_vars/r/transaction_isolation_basic.result index 033adc7d1404..82d4479a64cd 100644 --- a/mysql-test/suite/sys_vars/r/transaction_isolation_basic.result +++ b/mysql-test/suite/sys_vars/r/transaction_isolation_basic.result @@ -23,10 +23,16 @@ SET @@global.transaction_isolation = DEFAULT; SELECT @@global.transaction_isolation; @@global.transaction_isolation REPEATABLE-READ +SELECT @@global.tx_isolation; +@@global.tx_isolation +REPEATABLE-READ SET @@session.transaction_isolation = DEFAULT; SELECT @@session.transaction_isolation; @@session.transaction_isolation REPEATABLE-READ +SELECT @@session.tx_isolation; +@@session.tx_isolation +REPEATABLE-READ ######################################################### # Check if NULL or empty value is accepeted # ######################################################### @@ -45,34 +51,58 @@ SET @@global.transaction_isolation = 'READ-UNCOMMITTED'; SELECT @@global.transaction_isolation; @@global.transaction_isolation READ-UNCOMMITTED +SELECT @@global.tx_isolation; +@@global.tx_isolation +READ-UNCOMMITTED SET @@global.transaction_isolation = 'read-COMMITTED'; SELECT @@global.transaction_isolation; @@global.transaction_isolation READ-COMMITTED +SELECT @@global.tx_isolation; +@@global.tx_isolation +READ-COMMITTED SET @@global.transaction_isolation = 'REPEATABLE-READ'; SELECT @@global.transaction_isolation; @@global.transaction_isolation REPEATABLE-READ +SELECT @@global.tx_isolation; +@@global.tx_isolation +REPEATABLE-READ SET @@global.transaction_isolation = 'SERIALIZable'; SELECT @@global.transaction_isolation; @@global.transaction_isolation SERIALIZABLE +SELECT @@global.tx_isolation; +@@global.tx_isolation +SERIALIZABLE SET @@session.transaction_isolation = 'READ-UNCOMMITTED'; SELECT @@session.transaction_isolation; @@session.transaction_isolation READ-UNCOMMITTED +SELECT @@session.tx_isolation; +@@session.tx_isolation +READ-UNCOMMITTED SET @@session.transaction_isolation = 'READ-COMMITTED'; SELECT @@session.transaction_isolation; @@session.transaction_isolation READ-COMMITTED +SELECT @@session.tx_isolation; +@@session.tx_isolation +READ-COMMITTED SET @@session.transaction_isolation = 'REPEATABLE-READ'; SELECT @@session.transaction_isolation; @@session.transaction_isolation REPEATABLE-READ +SELECT @@session.tx_isolation; +@@session.tx_isolation +REPEATABLE-READ SET @@session.transaction_isolation = 'serializable'; SELECT @@session.transaction_isolation; @@session.transaction_isolation SERIALIZABLE +SELECT @@session.tx_isolation; +@@session.tx_isolation +SERIALIZABLE ####################################################################### # Change the value of transaction_isolation to invalid value # ####################################################################### @@ -107,6 +137,11 @@ FROM performance_schema.session_variables WHERE VARIABLE_NAME='transaction_isolation'; @@session.transaction_isolation = VARIABLE_VALUE 1 +SELECT @@session.tx_isolation = VARIABLE_VALUE +FROM performance_schema.session_variables +WHERE VARIABLE_NAME='tx_isolation'; +@@session.tx_isolation = VARIABLE_VALUE +1 ######################################################################### # Check if the value in GLOBAL Table matches value in variable # ######################################################################### @@ -115,6 +150,11 @@ FROM performance_schema.global_variables WHERE VARIABLE_NAME='transaction_isolation'; @@global.transaction_isolation = VARIABLE_VALUE 1 +SELECT @@global.tx_isolation = VARIABLE_VALUE +FROM performance_schema.global_variables +WHERE VARIABLE_NAME='tx_isolation'; +@@global.tx_isolation = VARIABLE_VALUE +1 ################################################################### # Check if numbers can be used on variable # ################################################################### @@ -122,18 +162,30 @@ SET @@global.transaction_isolation = 0; SELECT @@global.transaction_isolation; @@global.transaction_isolation READ-UNCOMMITTED +SELECT @@global.tx_isolation; +@@global.tx_isolation +READ-UNCOMMITTED SET @@global.transaction_isolation = 1; SELECT @@global.transaction_isolation; @@global.transaction_isolation READ-COMMITTED +SELECT @@global.tx_isolation; +@@global.tx_isolation +READ-COMMITTED SET @@global.transaction_isolation = 2; SELECT @@global.transaction_isolation; @@global.transaction_isolation REPEATABLE-READ +SELECT @@global.tx_isolation; +@@global.tx_isolation +REPEATABLE-READ SET @@global.transaction_isolation = 3; SELECT @@global.transaction_isolation; @@global.transaction_isolation SERIALIZABLE +SELECT @@global.tx_isolation; +@@global.tx_isolation +SERIALIZABLE SET @@global.transaction_isolation = 0.4; ERROR 42000: Incorrect argument type to variable 'transaction_isolation' ################################################################### @@ -143,10 +195,16 @@ SET @@global.transaction_isolation = TRUE; SELECT @@global.transaction_isolation; @@global.transaction_isolation READ-COMMITTED +SELECT @@global.tx_isolation; +@@global.tx_isolation +READ-COMMITTED SET @@global.transaction_isolation = FALSE; SELECT @@global.transaction_isolation; @@global.transaction_isolation READ-UNCOMMITTED +SELECT @@global.tx_isolation; +@@global.tx_isolation +READ-UNCOMMITTED ########################################################################### # Check if transaction_isolation can be accessed with and without @@ sign # ########################################################################### @@ -159,10 +217,16 @@ SET session transaction_isolation = 'REPEATABLE-READ'; SELECT @@transaction_isolation; @@transaction_isolation REPEATABLE-READ +SELECT @@tx_isolation; +@@tx_isolation +REPEATABLE-READ SET global transaction_isolation = 'REPEATABLE-READ'; SELECT @@global.transaction_isolation; @@global.transaction_isolation REPEATABLE-READ +SELECT @@global.tx_isolation; +@@global.tx_isolation +REPEATABLE-READ ############################## # Restore initial value # ############################## @@ -170,10 +234,16 @@ SET @@global.transaction_isolation = @global_start_value; SELECT @@global.transaction_isolation; @@global.transaction_isolation REPEATABLE-READ +SELECT @@global.tx_isolation; +@@global.tx_isolation +REPEATABLE-READ SET @@session.transaction_isolation = @session_start_value; SELECT @@session.transaction_isolation; @@session.transaction_isolation REPEATABLE-READ +SELECT @@session.tx_isolation; +@@session.tx_isolation +REPEATABLE-READ #################################################################### # END OF transaction_isolation TESTS # #################################################################### diff --git a/mysql-test/suite/sys_vars/r/transaction_read_only_basic.result b/mysql-test/suite/sys_vars/r/transaction_read_only_basic.result index 7125f143b209..ec2c76e421ce 100644 --- a/mysql-test/suite/sys_vars/r/transaction_read_only_basic.result +++ b/mysql-test/suite/sys_vars/r/transaction_read_only_basic.result @@ -12,6 +12,12 @@ SET @start_session_value = @@session.transaction_read_only; SELECT @start_session_value; @start_session_value 0 +SELECT @@global.tx_read_only; +@@global.tx_read_only +0 +SELECT @@session.tx_read_only; +@@session.tx_read_only +0 ######################################################################## # Display the DEFAULT value of transaction_read_only # ######################################################################## @@ -20,11 +26,17 @@ SET @@global.transaction_read_only = DEFAULT; SELECT @@global.transaction_read_only; @@global.transaction_read_only 0 +SELECT @@global.tx_read_only; +@@global.tx_read_only +0 SET @@session.transaction_read_only = ON; SET @@session.transaction_read_only = DEFAULT; SELECT @@session.transaction_read_only; @@session.transaction_read_only 0 +SELECT @@session.tx_read_only; +@@session.tx_read_only +0 ############################################################################## # Change the value of transaction_read_only to a valid value for GLOBAL Scope# ############################################################################## @@ -32,26 +44,44 @@ SET @@global.transaction_read_only = ON; SELECT @@global.transaction_read_only; @@global.transaction_read_only 1 +SELECT @@global.tx_read_only; +@@global.tx_read_only +1 SET @@global.transaction_read_only = OFF; SELECT @@global.transaction_read_only; @@global.transaction_read_only 0 +SELECT @@global.tx_read_only; +@@global.tx_read_only +0 SET @@global.transaction_read_only = 0; SELECT @@global.transaction_read_only; @@global.transaction_read_only 0 +SELECT @@global.tx_read_only; +@@global.tx_read_only +0 SET @@global.transaction_read_only = 1; SELECT @@global.transaction_read_only; @@global.transaction_read_only 1 +SELECT @@global.tx_read_only; +@@global.tx_read_only +1 SET @@global.transaction_read_only = TRUE; SELECT @@global.transaction_read_only; @@global.transaction_read_only 1 +SELECT @@global.tx_read_only; +@@global.tx_read_only +1 SET @@global.transaction_read_only = FALSE; SELECT @@global.transaction_read_only; @@global.transaction_read_only 0 +SELECT @@global.tx_read_only; +@@global.tx_read_only +0 ############################################################################### # Change the value of transaction_read_only to a valid value for SESSION Scope# ############################################################################### @@ -59,26 +89,44 @@ SET @@session.transaction_read_only = ON; SELECT @@session.transaction_read_only; @@session.transaction_read_only 1 +SELECT @@session.tx_read_only; +@@session.tx_read_only +1 SET @@session.transaction_read_only = OFF; SELECT @@session.transaction_read_only; @@session.transaction_read_only 0 +SELECT @@session.tx_read_only; +@@session.tx_read_only +0 SET @@session.transaction_read_only = 0; SELECT @@session.transaction_read_only; @@session.transaction_read_only 0 +SELECT @@session.tx_read_only; +@@session.tx_read_only +0 SET @@session.transaction_read_only = 1; SELECT @@session.transaction_read_only; @@session.transaction_read_only 1 +SELECT @@session.tx_read_only; +@@session.tx_read_only +1 SET @@session.transaction_read_only = TRUE; SELECT @@session.transaction_read_only; @@session.transaction_read_only 1 +SELECT @@session.tx_read_only; +@@session.tx_read_only +1 SET @@session.transaction_read_only = FALSE; SELECT @@session.transaction_read_only; @@session.transaction_read_only 0 +SELECT @@session.tx_read_only; +@@session.tx_read_only +0 ################################################################ # Change the value of transaction_read_only to an invalid value# ################################################################ @@ -141,6 +189,9 @@ SET @@global.transaction_read_only = ON; SELECT @@transaction_read_only = @@global.transaction_read_only; @@transaction_read_only = @@global.transaction_read_only 0 +SELECT @@tx_read_only = @@global.transaction_read_only; +@@tx_read_only = @@global.transaction_read_only +0 ############################################################################## # Check if accessing variable with SESSION,LOCAL and without SCOPE points # # to same session variable # @@ -152,6 +203,9 @@ SELECT @@transaction_read_only = @@local.transaction_read_only; SELECT @@local.transaction_read_only = @@session.transaction_read_only; @@local.transaction_read_only = @@session.transaction_read_only 1 +SELECT @@local.tx_read_only = @@session.transaction_read_only; +@@local.tx_read_only = @@session.transaction_read_only +1 ############################################################################### # Check if transaction_read_only can be accessed with and without @@ sign # ############################################################################### @@ -162,9 +216,14 @@ SET transaction_read_only = 1; SELECT @@transaction_read_only; @@transaction_read_only 1 +SELECT @@tx_read_only; +@@tx_read_only +1 # name1.name2 refers to database_name.table_name SELECT session.transaction_read_only; ERROR 42S02: Unknown table 'session' in field list +SELECT session.tx_read_only; +ERROR 42S02: Unknown table 'session' in field list #################################### # Restore initial value # #################################### diff --git a/mysql-test/suite/sys_vars/r/tx_isolation_basic.result b/mysql-test/suite/sys_vars/r/tx_isolation_basic.result new file mode 100644 index 000000000000..652d5c288235 --- /dev/null +++ b/mysql-test/suite/sys_vars/r/tx_isolation_basic.result @@ -0,0 +1,4 @@ +SET @@session.tx_isolation ='READ-COMMITTED'; +ERROR HY000: Variable 'tx_isolation' is a read only variable +SET @@global.tx_isolation ='READ-COMMITTED'; +ERROR HY000: Variable 'tx_isolation' is a read only variable diff --git a/mysql-test/suite/sys_vars/r/tx_read_only_basic.result b/mysql-test/suite/sys_vars/r/tx_read_only_basic.result new file mode 100644 index 000000000000..a5d4c3fe980d --- /dev/null +++ b/mysql-test/suite/sys_vars/r/tx_read_only_basic.result @@ -0,0 +1,4 @@ +SET @@session.tx_read_only = 0; +ERROR HY000: Variable 'tx_read_only' is a read only variable +SET @@global.tx_read_only = 0; +ERROR HY000: Variable 'tx_read_only' is a read only variable diff --git a/mysql-test/suite/sys_vars/t/per_user_session_var_default_val_validation.test b/mysql-test/suite/sys_vars/t/per_user_session_var_default_val_validation.test index c635cbd3327b..2dc1152ad832 100644 --- a/mysql-test/suite/sys_vars/t/per_user_session_var_default_val_validation.test +++ b/mysql-test/suite/sys_vars/t/per_user_session_var_default_val_validation.test @@ -154,10 +154,6 @@ SET GLOBAL per_user_session_var_default_val = "u1:optimizer_switch=index_merge=o --error ER_WRONG_VALUE_FOR_VAR SET GLOBAL per_user_session_var_default_val = "u1:optimizer_switch=xyz"; ---echo ## Read-Only ---error ER_WRONG_VALUE_FOR_VAR -SET GLOBAL per_user_session_var_default_val = "usr1:tx_isolation=READ-COMMITTED"; - --echo ## --echo ## root privilege is required to set session variable binglog_format --echo ## root privilege will be granted to usr1 temporarily to get this done diff --git a/mysql-test/suite/sys_vars/t/query_cache_size_basic.test b/mysql-test/suite/sys_vars/t/query_cache_size_basic.test new file mode 100644 index 000000000000..8bd94cb50b57 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/query_cache_size_basic.test @@ -0,0 +1,4 @@ +SELECT @@global.query_cache_size; + +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +SET @@global.query_cache_size=10*1024; diff --git a/mysql-test/suite/sys_vars/t/query_cache_type_basic.test b/mysql-test/suite/sys_vars/t/query_cache_type_basic.test new file mode 100644 index 000000000000..c8890f49ecbd --- /dev/null +++ b/mysql-test/suite/sys_vars/t/query_cache_type_basic.test @@ -0,0 +1,4 @@ +SELECT @@global.query_cache_type; + +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +SET @@global.query_cache_type='ON'; diff --git a/mysql-test/suite/sys_vars/t/transaction_isolation_basic.test b/mysql-test/suite/sys_vars/t/transaction_isolation_basic.test index 459cfed811f6..070d3bed498f 100644 --- a/mysql-test/suite/sys_vars/t/transaction_isolation_basic.test +++ b/mysql-test/suite/sys_vars/t/transaction_isolation_basic.test @@ -26,9 +26,11 @@ SELECT @session_start_value; SET @@global.transaction_isolation = 'READ-UNCOMMITTED'; SET @@global.transaction_isolation = DEFAULT; SELECT @@global.transaction_isolation; +SELECT @@global.tx_isolation; SET @@session.transaction_isolation = DEFAULT; SELECT @@session.transaction_isolation; +SELECT @@session.tx_isolation; --echo ######################################################### --echo # Check if NULL or empty value is accepeted # @@ -52,27 +54,35 @@ SET @@session.transaction_isolation = ''; SET @@global.transaction_isolation = 'READ-UNCOMMITTED'; SELECT @@global.transaction_isolation; +SELECT @@global.tx_isolation; SET @@global.transaction_isolation = 'read-COMMITTED'; SELECT @@global.transaction_isolation; +SELECT @@global.tx_isolation; SET @@global.transaction_isolation = 'REPEATABLE-READ'; SELECT @@global.transaction_isolation; +SELECT @@global.tx_isolation; SET @@global.transaction_isolation = 'SERIALIZable'; SELECT @@global.transaction_isolation; +SELECT @@global.tx_isolation; SET @@session.transaction_isolation = 'READ-UNCOMMITTED'; SELECT @@session.transaction_isolation; +SELECT @@session.tx_isolation; SET @@session.transaction_isolation = 'READ-COMMITTED'; SELECT @@session.transaction_isolation; +SELECT @@session.tx_isolation; SET @@session.transaction_isolation = 'REPEATABLE-READ'; SELECT @@session.transaction_isolation; +SELECT @@session.tx_isolation; SET @@session.transaction_isolation = 'serializable'; SELECT @@session.transaction_isolation; +SELECT @@session.tx_isolation; --echo ####################################################################### @@ -114,6 +124,10 @@ SET @@transaction_isolation = 'ALL'; SELECT @@session.transaction_isolation = VARIABLE_VALUE FROM performance_schema.session_variables WHERE VARIABLE_NAME='transaction_isolation'; +SELECT @@session.tx_isolation = VARIABLE_VALUE +FROM performance_schema.session_variables +WHERE VARIABLE_NAME='tx_isolation'; + --enable_warnings --echo ######################################################################### @@ -124,6 +138,9 @@ WHERE VARIABLE_NAME='transaction_isolation'; SELECT @@global.transaction_isolation = VARIABLE_VALUE FROM performance_schema.global_variables WHERE VARIABLE_NAME='transaction_isolation'; +SELECT @@global.tx_isolation = VARIABLE_VALUE +FROM performance_schema.global_variables +WHERE VARIABLE_NAME='tx_isolation'; --enable_warnings @@ -134,15 +151,18 @@ WHERE VARIABLE_NAME='transaction_isolation'; # test if variable accepts 0,1,2 SET @@global.transaction_isolation = 0; SELECT @@global.transaction_isolation; +SELECT @@global.tx_isolation; SET @@global.transaction_isolation = 1; -SELECT @@global.transaction_isolation; - +SELECT @@global.transaction_isolation; +SELECT @@global.tx_isolation; SET @@global.transaction_isolation = 2; SELECT @@global.transaction_isolation; +SELECT @@global.tx_isolation; SET @@global.transaction_isolation = 3; SELECT @@global.transaction_isolation; +SELECT @@global.tx_isolation; --Error ER_WRONG_TYPE_FOR_VAR SET @@global.transaction_isolation = 0.4; @@ -153,8 +173,10 @@ SET @@global.transaction_isolation = 0.4; SET @@global.transaction_isolation = TRUE; SELECT @@global.transaction_isolation; +SELECT @@global.tx_isolation; SET @@global.transaction_isolation = FALSE; SELECT @@global.transaction_isolation; +SELECT @@global.tx_isolation; --echo ########################################################################### --echo # Check if transaction_isolation can be accessed with and without @@ sign # @@ -169,9 +191,11 @@ SET global.transaction_isolation = 'REPEATABLE-READ'; #using SET SESSION|GLOBAL syntax SET session transaction_isolation = 'REPEATABLE-READ'; SELECT @@transaction_isolation; +SELECT @@tx_isolation; SET global transaction_isolation = 'REPEATABLE-READ'; SELECT @@global.transaction_isolation; +SELECT @@global.tx_isolation; --echo ############################## --echo # Restore initial value # @@ -179,9 +203,11 @@ SELECT @@global.transaction_isolation; SET @@global.transaction_isolation = @global_start_value; SELECT @@global.transaction_isolation; +SELECT @@global.tx_isolation; SET @@session.transaction_isolation = @session_start_value; SELECT @@session.transaction_isolation; +SELECT @@session.tx_isolation; --echo #################################################################### --echo # END OF transaction_isolation TESTS # diff --git a/mysql-test/suite/sys_vars/t/transaction_read_only_basic.test b/mysql-test/suite/sys_vars/t/transaction_read_only_basic.test index 1d8f709ba2f8..1553d1ed11c0 100644 --- a/mysql-test/suite/sys_vars/t/transaction_read_only_basic.test +++ b/mysql-test/suite/sys_vars/t/transaction_read_only_basic.test @@ -14,6 +14,9 @@ SELECT @start_global_value; SET @start_session_value = @@session.transaction_read_only; SELECT @start_session_value; +SELECT @@global.tx_read_only; +SELECT @@session.tx_read_only; + --echo ######################################################################## --echo # Display the DEFAULT value of transaction_read_only # @@ -22,10 +25,12 @@ SELECT @start_session_value; SET @@global.transaction_read_only = ON; SET @@global.transaction_read_only = DEFAULT; SELECT @@global.transaction_read_only; +SELECT @@global.tx_read_only; SET @@session.transaction_read_only = ON; SET @@session.transaction_read_only = DEFAULT; SELECT @@session.transaction_read_only; +SELECT @@session.tx_read_only; --echo ############################################################################## @@ -34,16 +39,22 @@ SELECT @@session.transaction_read_only; SET @@global.transaction_read_only = ON; SELECT @@global.transaction_read_only; +SELECT @@global.tx_read_only; SET @@global.transaction_read_only = OFF; SELECT @@global.transaction_read_only; +SELECT @@global.tx_read_only; SET @@global.transaction_read_only = 0; SELECT @@global.transaction_read_only; +SELECT @@global.tx_read_only; SET @@global.transaction_read_only = 1; SELECT @@global.transaction_read_only; +SELECT @@global.tx_read_only; SET @@global.transaction_read_only = TRUE; SELECT @@global.transaction_read_only; +SELECT @@global.tx_read_only; SET @@global.transaction_read_only = FALSE; SELECT @@global.transaction_read_only; +SELECT @@global.tx_read_only; @@ -53,16 +64,22 @@ SELECT @@global.transaction_read_only; SET @@session.transaction_read_only = ON; SELECT @@session.transaction_read_only; +SELECT @@session.tx_read_only; SET @@session.transaction_read_only = OFF; SELECT @@session.transaction_read_only; +SELECT @@session.tx_read_only; SET @@session.transaction_read_only = 0; SELECT @@session.transaction_read_only; +SELECT @@session.tx_read_only; SET @@session.transaction_read_only = 1; SELECT @@session.transaction_read_only; +SELECT @@session.tx_read_only; SET @@session.transaction_read_only = TRUE; SELECT @@session.transaction_read_only; +SELECT @@session.tx_read_only; SET @@session.transaction_read_only = FALSE; SELECT @@session.transaction_read_only; +SELECT @@session.tx_read_only; --echo ################################################################ @@ -135,6 +152,7 @@ WHERE VARIABLE_NAME='transaction_read_only'; SET @@transaction_read_only = OFF; SET @@global.transaction_read_only = ON; SELECT @@transaction_read_only = @@global.transaction_read_only; +SELECT @@tx_read_only = @@global.transaction_read_only; --echo ############################################################################## @@ -145,6 +163,7 @@ SELECT @@transaction_read_only = @@global.transaction_read_only; SET @@transaction_read_only = ON; SELECT @@transaction_read_only = @@local.transaction_read_only; SELECT @@local.transaction_read_only = @@session.transaction_read_only; +SELECT @@local.tx_read_only = @@session.transaction_read_only; --echo ############################################################################### @@ -157,10 +176,13 @@ SET @@session.transaction_read_only= 0; --echo # Without modifier, SET changes session variable SET transaction_read_only = 1; SELECT @@transaction_read_only; +SELECT @@tx_read_only; --echo # name1.name2 refers to database_name.table_name --Error ER_UNKNOWN_TABLE SELECT session.transaction_read_only; +--Error ER_UNKNOWN_TABLE +SELECT session.tx_read_only; --echo #################################### --echo # Restore initial value # diff --git a/mysql-test/suite/sys_vars/t/tx_isolation_basic.test b/mysql-test/suite/sys_vars/t/tx_isolation_basic.test new file mode 100644 index 000000000000..feb9f3314044 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/tx_isolation_basic.test @@ -0,0 +1,9 @@ +# tx_isolation is read-only and mapped to transaction_isolation +# Majority of tx_isolation testing is done in transaction_isolation_basic_test +# This test is mostly here to make all_vars test happy +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +SET @@session.tx_isolation ='READ-COMMITTED'; + +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +SET @@global.tx_isolation ='READ-COMMITTED'; + diff --git a/mysql-test/suite/sys_vars/t/tx_read_only_basic.test b/mysql-test/suite/sys_vars/t/tx_read_only_basic.test new file mode 100644 index 000000000000..ed749d702348 --- /dev/null +++ b/mysql-test/suite/sys_vars/t/tx_read_only_basic.test @@ -0,0 +1,8 @@ +# tx_read_only is read-only and mapped to transaction_read_only +# Majority of tx_isolation testing is done in transaction_read_only_basic_test +# This test is mostly here to make all_vars test happy +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +SET @@session.tx_read_only = 0; + +--error ER_INCORRECT_GLOBAL_LOCAL_VAR +SET @@global.tx_read_only = 0; diff --git a/mysql-test/t/all_persisted_variables.test b/mysql-test/t/all_persisted_variables.test index 2401957c02c4..f577f62d1ef3 100644 --- a/mysql-test/t/all_persisted_variables.test +++ b/mysql-test/t/all_persisted_variables.test @@ -69,6 +69,10 @@ let $total_excluded_vars=`SELECT COUNT(*) FROM performance_schema.global_variabl 'innodb_log_recent_written_size', 'innodb_log_write_events', 'per_user_session_var_user_name_delimiter', +'query_cache_size', +'query_cache_type', +'tx_isolation', +'tx_read_only', '_list_end_' )`; let $total_persistent_vars= `SELECT $total_persistent_vars - $total_excluded_vars`; diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc index 05feb0bb54b0..368913c8ab34 100644 --- a/sql/sys_vars.cc +++ b/sql/sys_vars.cc @@ -8542,3 +8542,34 @@ static Sys_var_bool Sys_enable_group_replication_plugin_hooks( "Enable interfaces and codepaths used by group replication plugin", READ_ONLY NON_PERSIST GLOBAL_VAR(opt_group_replication_plugin_hooks), CMD_LINE(OPT_ARG), DEFAULT(false)); + +static const char *query_cache_type_names[] = {"OFF", "ON", "DEMAND", 0}; + +/* Following variables are kept for compat of existing Java 5.6 clients */ +ulong query_cache_type = 0; +static Sys_var_enum Sys_query_cache_type( + "query_cache_type", + "OFF = Don't cache or retrieve results. ON = Cache all results " + "except SELECT SQL_NO_CACHE ... queries. DEMAND = Cache only " + "SELECT SQL_CACHE ... queries", + READ_ONLY GLOBAL_VAR(query_cache_type), NO_CMD_LINE, query_cache_type_names, + DEFAULT(0), NO_MUTEX_GUARD, NOT_IN_BINLOG); + +ulong query_cache_size = 0; +static Sys_var_ulong Sys_query_cache_size( + "query_cache_size", + "The memory allocated to store results from old queries", + READ_ONLY GLOBAL_VAR(query_cache_size), NO_CMD_LINE, + VALID_RANGE(0, ULONG_MAX), DEFAULT(0), BLOCK_SIZE(1024), NO_MUTEX_GUARD, + NOT_IN_BINLOG); + +static Sys_var_transaction_isolation Sys_tx_isolation( + "tx_isolation", "Default transaction isolation level", + READ_ONLY SESSION_VAR(transaction_isolation), NO_CMD_LINE, + tx_isolation_names, DEFAULT(ISO_REPEATABLE_READ), NO_MUTEX_GUARD, + NOT_IN_BINLOG, ON_CHECK(check_transaction_isolation)); + +static Sys_var_transaction_read_only Sys_tx_read_only( + "tx_read_only", "Set default transaction access mode to read only.", + READ_ONLY SESSION_VAR(transaction_read_only), NO_CMD_LINE, DEFAULT(0), + NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(check_transaction_read_only));