polardbxengine/mysql-test/suite/sys_vars/t/super_read_only_func.test

145 lines
4.4 KiB
Plaintext

############ mysql-test\t\super_read_only_func.test ############################
# #
#Variable Name: super_read_only #
#Scope: GLOBAL #
#Access Type: Dynamic #
#Data Type: BOOLEAN #
#Default Value: OFF #
#Values: ON, OFF #
# #
# #
#Creation Date: 2015-05-20 #
#Author: Todd Farmer #
# #
#Description: Test Cases of Dynamic System Variable "super_read_only" #
# that checks behavior of this variable in the following ways #
# * Functionality based on different values #
# #
#Reference: http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#
# option_mysqld_super_read_only #
# #
################################################################################
--echo ** Setup **
--echo
#
# Setup
#
SET @default_read_only = @@global.read_only;
SET @default_super_read_only = @@global.super_read_only;
SET @@global.read_only = OFF;
SET @@global.super_read_only = OFF;
CREATE TABLE t1
(
id INT NOT NULL auto_increment,
PRIMARY KEY (id),
name BLOB
);
INSERT INTO t1 VALUES (1, 'good');
########################################
# Checking super_read_only interaction #
# with read_only. #
########################################
SET @@global.super_read_only = OFF;
SET @@global.read_only = OFF;
SELECT IF(@@global.super_read_only, 'FAIL', 'OK') AS sro, IF(@@global.read_only, 'FAIL', 'OK') AS ro;
SET @@global.super_read_only = ON;
SELECT IF(@@global.super_read_only, 'OK', 'FAIL') AS sro, IF(@@global.read_only, 'OK', 'FAIL') AS ro;
SET @@global.super_read_only = OFF;
SELECT IF(@@global.super_read_only, 'FAIL', 'OK') AS sro, IF(@@global.read_only, 'OK', 'FAIL') AS ro;
SET @@global.super_read_only = ON;
SELECT IF(@@global.super_read_only, 'OK', 'FAIL') AS sro, IF(@@global.read_only, 'OK', 'FAIL') AS ro;
SET @@global.read_only = OFF;
SELECT IF(@@global.super_read_only, 'FAIL', 'OK') AS sro, IF(@@global.read_only, 'FAIL', 'OK') AS ro;
--echo ** Creating new user with explicit super privilege**
CREATE user sameea;
GRANT SUPER ON *.* TO sameea;
SET @@global.super_read_only = ON;
--echo ** Connecting connn using username 'sameea' **
CONNECT (connn,localhost,sameea,,);
--Error ER_OPTION_PREVENTS_STATEMENT
CREATE TABLE t2
(
id INT NOT NULL auto_increment,
PRIMARY KEY (id),
name BLOB
);
# With ps-protocol the error is ER_NO_SUCH_TABLE
--echo not updating values
--Error ER_OPTION_PREVENTS_STATEMENT,ER_NO_SUCH_TABLE
INSERT into t1(name) values("aaassssssssddddddddffffff");
--Error ER_OPTION_PREVENTS_STATEMENT,ER_NO_SUCH_TABLE
UPDATE t1 SET name="samia" where id=1;
SELECT * FROM t1;
--echo '#--------------------FN_DYNVARS_140_03-------------------------#'
###########################
# Testing temporary table #
###########################
CREATE TEMPORARY TABLE t3(a int);
--echo '#--------------------FN_DYNVARS_140_04-------------------------#'
###########################
# Turning super_read_only OFF #
###########################
--echo ** Connection default **
connection default;
SET Global super_read_only=OFF;
--echo ** Connection connn **
connection connn;
CREATE TABLE t2
(
id INT NOT NULL auto_increment,
PRIMARY KEY (id),
name BLOB
);
--echo updating values
INSERT into t2(name) values("aaassssssssdddddddd");
UPDATE t2 SET name="samia" where id=1;
#
# Cleanup
#
--echo ** Connection default **
connection default;
--echo ** Disconnecting connn **
DISCONNECT connn;
DROP USER sameea;
DROP TABLE t1;
DROP TABLE t2;
SET global super_read_only = @default_super_read_only;
SET global read_only = @default_read_only;
--disable_info