polardbxengine/mysql-test/suite/query_rewrite_plugins/r/ddl_rewriter.result

297 lines
11 KiB
Plaintext

#
# Test for the DDL rewrite plugin.
#
#
# Create a table with a DATA DIRECTORY clause, to be dumped and
# restored when the plugin is installed.
#
CREATE TABLE t(i int) DATA DIRECTORY = 'MYSQLTEST_VARDIR/tmp';;
SHOW CREATE TABLE t;
Table Create Table
t CREATE TABLE `t` (
`i` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/'
INSERT INTO t VALUES (1);
#
# Install plugin.
#
INSTALL PLUGIN ddl_rewriter SONAME 'ddl_rewriter.xxx';
SELECT PLUGIN_NAME, PLUGIN_TYPE, PLUGIN_VERSION, PLUGIN_TYPE_VERSION
FROM information_schema.plugins
WHERE plugin_name LIKE 'ddl_rewriter';
PLUGIN_NAME PLUGIN_TYPE PLUGIN_VERSION PLUGIN_TYPE_VERSION
ddl_rewriter AUDIT 1.0 4.1
#
# Restore dump file.
#
DROP TABLE t;
SHOW CREATE TABLE t;
Table Create Table
t CREATE TABLE `t` (
`i` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
include/assert.inc [Expected table contents]
DROP TABLE t;
#
# False positives.
#
CREATE TABLE t(i int) /* data directory = 'x' */ ;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) /* data directory = 'x' */' rewritten to 'CREATE TABLE t(i int) /* */' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int, `j encryption='n'j` int);
Warnings:
Note 1105 Query 'CREATE TABLE t(i int, `j encryption='n'j` int)' rewritten to 'CREATE TABLE t(i int, `j j` int)' by a query rewrite plugin
DROP TABLE t;
#
# Prefix comments make the statement not be rewritten.
#
/* */ CREATE TABLE t(i int) /* data directory = 'x' */ ;
DROP TABLE t;
/* */
CREATE TABLE t(i int) /* data directory = 'x' */ ;
DROP TABLE t;
#
# Double quotes.
#
CREATE TABLE t(i int) DATA DIRECTORY = "/tmp";
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) DATA DIRECTORY = "/tmp"' rewritten to 'CREATE TABLE t(i int) ' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENCRYPTION = "n";
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION = "n"' rewritten to 'CREATE TABLE t(i int) ' by a query rewrite plugin
DROP TABLE t;
#
# Multi-statement queries are separated before pre-parse,
# so a second non-CREATE TABLE statement will be treated
# separately.
#
CREATE SCHEMA s;
CREATE TABLE s.t(i int) DATA DIRECTORY = '/tmp';
Warnings:
Note 1105 Query 'CREATE TABLE s.t(i int) DATA DIRECTORY = '/tmp'' rewritten to 'CREATE TABLE s.t(i int) ' by a query rewrite plugin
DROP SCHEMA s;
CREATE TABLE t(i int);
CREATE SCHEMA s /* DATA DIRECTORY = '/tmp' */;
DROP SCHEMA s;
DROP TABLE t;
#
# Statements with prefix != 'CREATE TABLE' are not rewritten.
#
CREATE SCHEMA s /* data directory = 'x' */ ;
DROP SCHEMA s;
CREATE SCHEMA `s encryption='n' s`;
DROP SCHEMA `s encryption='n' s`;
#
# Case sensitivity.
#
CREATE TABLE t(i int) DATA DIRECTORY = '/tmp', ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) DATA DIRECTORY = '/tmp', ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
create table t(i int) DATA DIRECTORY = '/tmp', ENGINE = MyISAM;
Warnings:
Note 1105 Query 'create table t(i int) DATA DIRECTORY = '/tmp', ENGINE = MyISAM' rewritten to 'create table t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) data directory = '/tmp', ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) data directory = '/tmp', ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) INDEX DIRECTORY = '/tmp', ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) INDEX DIRECTORY = '/tmp', ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) index directory = '/tmp', ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) index directory = '/tmp', ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENCRYPTION = 'N', ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION = 'N', ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) encryption = 'n', ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) encryption = 'n', ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENCRYPTION = 'Y', ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION = 'Y', ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENCRYPTION = 'y', ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION = 'y', ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
#
# Optional preceding comma with optional surrounding whitespace.
#
CREATE TABLE t(i int) ENGINE = MyISAM ENCRYPTION = 'N';
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENGINE = MyISAM ENCRYPTION = 'N'' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM ' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENGINE = MyISAM,ENCRYPTION = 'N';
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENGINE = MyISAM,ENCRYPTION = 'N'' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM ' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENGINE = MyISAM, ENCRYPTION = 'N';
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENGINE = MyISAM, ENCRYPTION = 'N'' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM ' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENGINE = MyISAM ,ENCRYPTION = 'N';
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENGINE = MyISAM ,ENCRYPTION = 'N'' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM ' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENGINE = MyISAM , ENCRYPTION = 'N';
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENGINE = MyISAM , ENCRYPTION = 'N'' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM ' by a query rewrite plugin
DROP TABLE t;
#
# Optional succeeding comma with optional surrounding whitespace.
#
CREATE TABLE t(i int) ENCRYPTION = 'N' ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION = 'N' ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENCRYPTION = 'N',ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION = 'N',ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENCRYPTION = 'N', ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION = 'N', ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENCRYPTION = 'N' ,ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION = 'N' ,ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENCRYPTION = 'N' , ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION = 'N' , ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
#
# Optional assignment operator with optional surrounding whitespace.
#
CREATE TABLE t(i int) ENCRYPTION 'N' ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION 'N' ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENCRYPTION='N' ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION='N' ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENCRYPTION= 'N' ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION= 'N' ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENCRYPTION ='N' ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION ='N' ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
CREATE TABLE t(i int) ENCRYPTION = 'N' ENGINE = MyISAM;
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION = 'N' ENGINE = MyISAM' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM' by a query rewrite plugin
DROP TABLE t;
#
# Multi line statements.
#
CREATE TABLE t(i int) ENCRYPTION ='N'
,ENGINE = MyISAM
DATA
DIRECTORY = '/tmp'
DEFAULT CHARSET latin1
INDEX
DIRECTORY '/t
mp';
Warnings:
Note 1105 Query 'CREATE TABLE t(i int) ENCRYPTION ='N'
,ENGINE = MyISAM
DATA
DIRECTORY = '/tmp'
DEFAULT CHARSET latin1
INDEX
DIRECTORY '/t
mp'' rewritten to 'CREATE TABLE t(i int) ENGINE = MyISAM DEFAULT CHARSET latin1 ' by a query rewrite plugin
DROP TABLE t;
#
# Partitioned tables.
#
CREATE TABLE t (
i int NOT NULL AUTO_INCREMENT,
mt mediumtext NOT NULL,
c varchar(10) NOT NULL,
ti tinyint(1) unsigned NOT NULL,
PRIMARY KEY (i, ti)
)
ENGINE = InnoDB AUTO_INCREMENT = 0
DEFAULT CHARSET = latin1, DATA DIRECTORY = '/tmp'
PARTITION BY LIST (ti) (
PARTITION p0 VALUES IN (0) ENGINE = InnoDB,
PARTITION p1 VALUES IN (1) DATA DIRECTORY = '/tmp' ,ENGINE = InnoDB
);
Warnings:
Note 1105 Query 'CREATE TABLE t (
i int NOT NULL AUTO_INCREMENT,
mt mediumtext NOT NULL,
c varchar(10) NOT NULL,
ti tinyint(1) unsigned NOT NULL,
PRIMARY KEY (i, ti)
)
ENGINE = InnoDB AUTO_INCREMENT = 0
DEFAULT CHARSET = latin1, DATA DIRECTORY = '/tmp'
PARTITION BY LIST (ti) (
PARTITION p0 VALUES IN (0) ENGINE = InnoDB,
PARTITION p1 VALUES IN (1) DATA DIRECTORY = '/tmp' ,ENGINE = InnoDB
)' rewritten to 'CREATE TABLE t (
i int NOT NULL AUTO_INCREMENT,
mt mediumtext NOT NULL,
c varchar(10) NOT NULL,
ti tinyint(1
Warning 1681 Integer display width is deprecated and will be removed in a future release.
SHOW CREATE TABLE t;
Table Create Table
t CREATE TABLE `t` (
`i` int(11) NOT NULL AUTO_INCREMENT,
`mt` mediumtext NOT NULL,
`c` varchar(10) NOT NULL,
`ti` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`i`,`ti`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50100 PARTITION BY LIST (`ti`)
(PARTITION p0 VALUES IN (0) ENGINE = InnoDB,
PARTITION p1 VALUES IN (1) ENGINE = InnoDB) */
DROP TABLE t;
#
# Stored programs.
#
CREATE PROCEDURE p() CREATE TABLE test.t(i int) ENCRYPTION = 'N';
CALL p();
SHOW CREATE TABLE test.t;
Table Create Table
t CREATE TABLE `t` (
`i` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
DROP TABLE test.t;
DROP PROCEDURE p;
#
# Prepared statements.
#
PREPARE stmt FROM 'CREATE TABLE test.t(i int) ENCRYPTION = "N"';
Warnings:
Note 1105 Query 'CREATE TABLE test.t(i int) ENCRYPTION = "N"' rewritten to 'CREATE TABLE test.t(i int) ' by a query rewrite plugin
EXECUTE stmt;
SHOW CREATE TABLE test.t;
Table Create Table
t CREATE TABLE `t` (
`i` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
DROP TABLE test.t;
DROP PREPARE stmt;
#
# Uninstall plugin and verify that queries are not rewritten anymore.
#
UNINSTALL PLUGIN ddl_rewriter;
Warnings:
Warning 1620 Plugin is busy and will be uninstalled on shutdown
CREATE TABLE t(i int) /* data directory = 'x' */ ;
DROP TABLE t;