mirror of
https://github.com/MariaDB/server.git
synced 2025-09-08 06:27:57 +03:00
Merge from Percona Server enforced use of a specific storage engine authored by Stewart Smith. Modified to be session variable and modifiable only by SUPER. Use similar implementation as default_storage_engine.
103 lines
3.4 KiB
Plaintext
103 lines
3.4 KiB
Plaintext
drop table if exists t1;
|
|
SET SESSION enforce_storage_engine=MyISAM;
|
|
select @@session.enforce_storage_engine;
|
|
@@session.enforce_storage_engine
|
|
MyISAM
|
|
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=Memory;
|
|
Warnings:
|
|
Note 1266 Using storage engine MyISAM for table 't1'
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
|
`c2` varchar(10) DEFAULT NULL,
|
|
PRIMARY KEY (`c1`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=MyISAM;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
|
`c2` varchar(10) DEFAULT NULL,
|
|
PRIMARY KEY (`c1`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10));
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
|
`c2` varchar(10) DEFAULT NULL,
|
|
PRIMARY KEY (`c1`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
|
DROP TABLE t1;
|
|
SET SESSION sql_mode='NO_ENGINE_SUBSTITUTION';
|
|
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=MyISAM;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
|
`c2` varchar(10) DEFAULT NULL,
|
|
PRIMARY KEY (`c1`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
|
INSERT INTO t1 values (1,'abba');
|
|
CREATE TABLE t2 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=Memory;
|
|
ERROR 42000: Unknown storage engine 'MEMORY'
|
|
SET SESSION sql_mode='';
|
|
SET SESSION enforce_storage_engine=MyISAM;
|
|
select @@session.enforce_storage_engine;
|
|
@@session.enforce_storage_engine
|
|
MyISAM
|
|
select * from t1;
|
|
c1 c2
|
|
1 abba
|
|
drop table t1;
|
|
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10));
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
|
`c2` varchar(10) DEFAULT NULL,
|
|
PRIMARY KEY (`c1`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
|
DROP TABLE t1;
|
|
SET SESSION enforce_storage_engine=FooBar;
|
|
ERROR 42000: Unknown storage engine 'FooBar'
|
|
select @@session.enforce_storage_engine;
|
|
@@session.enforce_storage_engine
|
|
MyISAM
|
|
SET SESSION enforce_storage_engine=MyISAM;
|
|
ERROR 42000: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
|
|
SET SESSION enforce_storage_engine=NULL;
|
|
SET SESSION sql_mode='NO_ENGINE_SUBSTITUTION';
|
|
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=Memory;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
|
`c2` varchar(10) DEFAULT NULL,
|
|
PRIMARY KEY (`c1`)
|
|
) ENGINE=MEMORY DEFAULT CHARSET=latin1
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10)) ENGINE=MyISAM;
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
|
`c2` varchar(10) DEFAULT NULL,
|
|
PRIMARY KEY (`c1`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
|
DROP TABLE t1;
|
|
CREATE TABLE t1 (c1 INT PRIMARY KEY AUTO_INCREMENT, c2 VARCHAR(10));
|
|
SHOW CREATE TABLE t1;
|
|
Table Create Table
|
|
t1 CREATE TABLE `t1` (
|
|
`c1` int(11) NOT NULL AUTO_INCREMENT,
|
|
`c2` varchar(10) DEFAULT NULL,
|
|
PRIMARY KEY (`c1`)
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
|
DROP TABLE t1;
|
|
SET GLOBAL enforce_storage_engine=NULL;
|
|
ERROR HY000: Variable 'enforce_storage_engine' is a SESSION variable and can't be used with SET GLOBAL
|