mirror of
https://github.com/MariaDB/server.git
synced 2025-11-10 23:02:54 +03:00
This patch changes the main name of 3 byte character set from utf8 to utf8mb3. New old_mode UTF8_IS_UTF8MB3 is added and set TRUE by default, so that utf8 would mean utf8mb3. If not set, utf8 would mean utf8mb4.
433 lines
18 KiB
Plaintext
433 lines
18 KiB
Plaintext
SHOW TABLES FROM information_schema LIKE 'TABLES';
|
|
Tables_in_information_schema (TABLES)
|
|
TABLES
|
|
#######################################################################
|
|
# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
|
#######################################################################
|
|
DROP VIEW IF EXISTS test.v1;
|
|
DROP PROCEDURE IF EXISTS test.p1;
|
|
DROP FUNCTION IF EXISTS test.f1;
|
|
CREATE VIEW test.v1 AS SELECT * FROM information_schema.TABLES;
|
|
CREATE PROCEDURE test.p1() SELECT * FROM information_schema.TABLES;
|
|
CREATE FUNCTION test.f1() returns BIGINT
|
|
BEGIN
|
|
DECLARE counter BIGINT DEFAULT NULL;
|
|
SELECT COUNT(*) INTO counter FROM information_schema.TABLES;
|
|
RETURN counter;
|
|
END//
|
|
# Attention: The printing of the next result sets is disabled.
|
|
SELECT * FROM information_schema.TABLES;
|
|
SELECT * FROM test.v1;
|
|
CALL test.p1;
|
|
SELECT test.f1();
|
|
DROP VIEW test.v1;
|
|
DROP PROCEDURE test.p1;
|
|
DROP FUNCTION test.f1;
|
|
#########################################################################
|
|
# Testcase 3.2.12.1: INFORMATION_SCHEMA.TABLES layout
|
|
#########################################################################
|
|
DESCRIBE information_schema.TABLES;
|
|
Field Type Null Key Default Extra
|
|
TABLE_CATALOG varchar(512) NO
|
|
TABLE_SCHEMA varchar(64) NO
|
|
TABLE_NAME varchar(64) NO
|
|
TABLE_TYPE varchar(64) NO
|
|
ENGINE varchar(64) YES NULL
|
|
VERSION bigint(21) unsigned YES NULL
|
|
ROW_FORMAT varchar(10) YES NULL
|
|
TABLE_ROWS bigint(21) unsigned YES NULL
|
|
AVG_ROW_LENGTH bigint(21) unsigned YES NULL
|
|
DATA_LENGTH bigint(21) unsigned YES NULL
|
|
MAX_DATA_LENGTH bigint(21) unsigned YES NULL
|
|
INDEX_LENGTH bigint(21) unsigned YES NULL
|
|
DATA_FREE bigint(21) unsigned YES NULL
|
|
AUTO_INCREMENT bigint(21) unsigned YES NULL
|
|
CREATE_TIME datetime YES NULL
|
|
UPDATE_TIME datetime YES NULL
|
|
CHECK_TIME datetime YES NULL
|
|
TABLE_COLLATION varchar(32) YES NULL
|
|
CHECKSUM bigint(21) unsigned YES NULL
|
|
CREATE_OPTIONS varchar(2048) YES NULL
|
|
TABLE_COMMENT varchar(2048) NO
|
|
MAX_INDEX_LENGTH bigint(21) unsigned YES NULL
|
|
TEMPORARY varchar(1) YES NULL
|
|
SHOW CREATE TABLE information_schema.TABLES;
|
|
Table Create Table
|
|
TABLES CREATE TEMPORARY TABLE `TABLES` (
|
|
`TABLE_CATALOG` varchar(512) NOT NULL DEFAULT '',
|
|
`TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
|
|
`TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
|
|
`TABLE_TYPE` varchar(64) NOT NULL DEFAULT '',
|
|
`ENGINE` varchar(64) DEFAULT NULL,
|
|
`VERSION` bigint(21) unsigned DEFAULT NULL,
|
|
`ROW_FORMAT` varchar(10) DEFAULT NULL,
|
|
`TABLE_ROWS` bigint(21) unsigned DEFAULT NULL,
|
|
`AVG_ROW_LENGTH` bigint(21) unsigned DEFAULT NULL,
|
|
`DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
|
|
`MAX_DATA_LENGTH` bigint(21) unsigned DEFAULT NULL,
|
|
`INDEX_LENGTH` bigint(21) unsigned DEFAULT NULL,
|
|
`DATA_FREE` bigint(21) unsigned DEFAULT NULL,
|
|
`AUTO_INCREMENT` bigint(21) unsigned DEFAULT NULL,
|
|
`CREATE_TIME` datetime DEFAULT NULL,
|
|
`UPDATE_TIME` datetime DEFAULT NULL,
|
|
`CHECK_TIME` datetime DEFAULT NULL,
|
|
`TABLE_COLLATION` varchar(32) DEFAULT NULL,
|
|
`CHECKSUM` bigint(21) unsigned DEFAULT NULL,
|
|
`CREATE_OPTIONS` varchar(2048) DEFAULT NULL,
|
|
`TABLE_COMMENT` varchar(2048) NOT NULL DEFAULT '',
|
|
`MAX_INDEX_LENGTH` bigint(21) unsigned DEFAULT NULL,
|
|
`TEMPORARY` varchar(1) DEFAULT NULL
|
|
) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3
|
|
SHOW COLUMNS FROM information_schema.TABLES;
|
|
Field Type Null Key Default Extra
|
|
TABLE_CATALOG varchar(512) NO
|
|
TABLE_SCHEMA varchar(64) NO
|
|
TABLE_NAME varchar(64) NO
|
|
TABLE_TYPE varchar(64) NO
|
|
ENGINE varchar(64) YES NULL
|
|
VERSION bigint(21) unsigned YES NULL
|
|
ROW_FORMAT varchar(10) YES NULL
|
|
TABLE_ROWS bigint(21) unsigned YES NULL
|
|
AVG_ROW_LENGTH bigint(21) unsigned YES NULL
|
|
DATA_LENGTH bigint(21) unsigned YES NULL
|
|
MAX_DATA_LENGTH bigint(21) unsigned YES NULL
|
|
INDEX_LENGTH bigint(21) unsigned YES NULL
|
|
DATA_FREE bigint(21) unsigned YES NULL
|
|
AUTO_INCREMENT bigint(21) unsigned YES NULL
|
|
CREATE_TIME datetime YES NULL
|
|
UPDATE_TIME datetime YES NULL
|
|
CHECK_TIME datetime YES NULL
|
|
TABLE_COLLATION varchar(32) YES NULL
|
|
CHECKSUM bigint(21) unsigned YES NULL
|
|
CREATE_OPTIONS varchar(2048) YES NULL
|
|
TABLE_COMMENT varchar(2048) NO
|
|
MAX_INDEX_LENGTH bigint(21) unsigned YES NULL
|
|
TEMPORARY varchar(1) YES NULL
|
|
SELECT table_catalog, table_schema, table_name
|
|
FROM information_schema.tables WHERE table_catalog IS NULL OR table_catalog <> 'def';
|
|
table_catalog table_schema table_name
|
|
################################################################################
|
|
# Testcase 3.2.12.2 + 3.2.12.3: INFORMATION_SCHEMA.TABLES accessible information
|
|
################################################################################
|
|
DROP DATABASE IF EXISTS db_datadict;
|
|
CREATE DATABASE db_datadict;
|
|
DROP USER 'testuser1'@'localhost';
|
|
CREATE USER 'testuser1'@'localhost';
|
|
GRANT CREATE, CREATE VIEW, INSERT, SELECT ON db_datadict.*
|
|
TO 'testuser1'@'localhost' WITH GRANT OPTION;
|
|
DROP USER 'testuser2'@'localhost';
|
|
CREATE USER 'testuser2'@'localhost';
|
|
DROP USER 'testuser3'@'localhost';
|
|
CREATE USER 'testuser3'@'localhost';
|
|
CREATE TABLE db_datadict.tb1 (f1 INT, f2 INT, f3 INT)
|
|
ENGINE = <engine_type>;
|
|
GRANT SELECT ON db_datadict.tb1 TO 'testuser1'@'localhost';
|
|
GRANT ALL ON db_datadict.tb1 TO 'testuser2'@'localhost' WITH GRANT OPTION;
|
|
connect testuser1, localhost, testuser1, , db_datadict;
|
|
CREATE TABLE tb2 (f1 DECIMAL)
|
|
ENGINE = <engine_type>;
|
|
CREATE TABLE tb3 (f1 VARCHAR(200))
|
|
ENGINE = <engine_type>;
|
|
GRANT SELECT ON db_datadict.tb3 to 'testuser3'@'localhost';
|
|
GRANT INSERT ON db_datadict.tb3 to 'testuser2'@'localhost';
|
|
CREATE VIEW v3 AS SELECT * FROM tb3;
|
|
GRANT SELECT ON db_datadict.v3 to 'testuser3'@'localhost';
|
|
SELECT * FROM information_schema.tables
|
|
WHERE table_schema = 'db_datadict' ORDER BY table_name;
|
|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT MAX_INDEX_LENGTH TEMPORARY
|
|
def db_datadict tb1 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# 0 N
|
|
def db_datadict tb2 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# 0 N
|
|
def db_datadict tb3 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# 0 N
|
|
def db_datadict v3 VIEW #ENG# NULL #RF# NULL #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# NULL #CS# NULL VIEW NULL NULL
|
|
SHOW TABLES FROM db_datadict;
|
|
Tables_in_db_datadict
|
|
tb1
|
|
tb2
|
|
tb3
|
|
v3
|
|
connect testuser2, localhost, testuser2, , db_datadict;
|
|
SELECT * FROM information_schema.tables
|
|
WHERE table_schema = 'db_datadict' ORDER BY table_name;
|
|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT MAX_INDEX_LENGTH TEMPORARY
|
|
def db_datadict tb1 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# 0 N
|
|
def db_datadict tb3 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# 0 N
|
|
SHOW TABLES FROM db_datadict;
|
|
Tables_in_db_datadict
|
|
tb1
|
|
tb3
|
|
connect testuser3, localhost, testuser3, , db_datadict;
|
|
SELECT * FROM information_schema.tables
|
|
WHERE table_schema = 'db_datadict' ORDER BY table_name;
|
|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT MAX_INDEX_LENGTH TEMPORARY
|
|
def db_datadict tb3 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# 0 N
|
|
def db_datadict v3 VIEW #ENG# NULL #RF# NULL #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# NULL #CS# NULL VIEW NULL NULL
|
|
SHOW TABLES FROM db_datadict;
|
|
Tables_in_db_datadict
|
|
tb3
|
|
v3
|
|
connection default;
|
|
SELECT * FROM information_schema.tables
|
|
WHERE table_schema = 'db_datadict' ORDER BY table_name;
|
|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT MAX_INDEX_LENGTH TEMPORARY
|
|
def db_datadict tb1 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# 0 N
|
|
def db_datadict tb2 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# 0 N
|
|
def db_datadict tb3 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# 0 N
|
|
def db_datadict v3 VIEW #ENG# NULL #RF# NULL #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# NULL #CS# NULL VIEW NULL NULL
|
|
SHOW TABLES FROM db_datadict;
|
|
Tables_in_db_datadict
|
|
tb1
|
|
tb2
|
|
tb3
|
|
v3
|
|
disconnect testuser1;
|
|
disconnect testuser2;
|
|
disconnect testuser3;
|
|
DROP USER 'testuser1'@'localhost';
|
|
DROP USER 'testuser2'@'localhost';
|
|
DROP USER 'testuser3'@'localhost';
|
|
DROP DATABASE db_datadict;
|
|
#########################################################################
|
|
# 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.TABLES modifications
|
|
#########################################################################
|
|
DROP TABLE IF EXISTS test.t1_my_table;
|
|
DROP DATABASE IF EXISTS db_datadict;
|
|
CREATE DATABASE db_datadict;
|
|
SELECT table_name FROM information_schema.tables
|
|
WHERE table_name LIKE 't1_my_table%';
|
|
table_name
|
|
CREATE TABLE test.t1_my_table (f1 BIGINT)
|
|
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci
|
|
COMMENT = 'Initial Comment' ENGINE = <engine_type>;
|
|
SELECT * FROM information_schema.tables
|
|
WHERE table_name = 't1_my_table';
|
|
TABLE_CATALOG def
|
|
TABLE_SCHEMA test
|
|
TABLE_NAME t1_my_table
|
|
TABLE_TYPE BASE TABLE
|
|
ENGINE #ENG#
|
|
VERSION 10
|
|
ROW_FORMAT #RF#
|
|
TABLE_ROWS 0
|
|
AVG_ROW_LENGTH #ARL#
|
|
DATA_LENGTH #DL#
|
|
MAX_DATA_LENGTH #MDL#
|
|
INDEX_LENGTH #IL#
|
|
DATA_FREE #DF#
|
|
AUTO_INCREMENT NULL
|
|
CREATE_TIME #CRT
|
|
UPDATE_TIME #UT#
|
|
CHECK_TIME #CT#
|
|
TABLE_COLLATION latin1_swedish_ci
|
|
CHECKSUM #CS#
|
|
CREATE_OPTIONS
|
|
TABLE_COMMENT Initial Comment
|
|
MAX_INDEX_LENGTH 0
|
|
TEMPORARY N
|
|
SELECT table_name FROM information_schema.tables
|
|
WHERE table_name LIKE 't1_my_table%';
|
|
table_name
|
|
t1_my_table
|
|
RENAME TABLE test.t1_my_table TO test.t1_my_tablex;
|
|
SELECT table_name FROM information_schema.tables
|
|
WHERE table_name LIKE 't1_my_table%';
|
|
table_name
|
|
t1_my_tablex
|
|
SELECT table_schema,table_name FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_schema table_name
|
|
test t1_my_tablex
|
|
RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex;
|
|
SELECT table_schema,table_name FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_schema table_name
|
|
db_datadict t1_my_tablex
|
|
SELECT table_name, engine FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name engine
|
|
t1_my_tablex <engine_type>
|
|
ALTER TABLE db_datadict.t1_my_tablex
|
|
ENGINE = <other_engine_type>;
|
|
SELECT table_name, engine FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name engine
|
|
t1_my_tablex <other_engine_type>
|
|
SELECT table_name, table_rows FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name table_rows
|
|
t1_my_tablex 0
|
|
INSERT INTO db_datadict.t1_my_tablex VALUES(1),(2);
|
|
SELECT table_name, table_rows FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name table_rows
|
|
t1_my_tablex 2
|
|
SELECT table_name, table_collation FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name table_collation
|
|
t1_my_tablex latin1_swedish_ci
|
|
ALTER TABLE db_datadict.t1_my_tablex DEFAULT CHARACTER SET utf8;
|
|
SELECT table_name, table_collation FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name table_collation
|
|
t1_my_tablex utf8mb3_general_ci
|
|
SELECT table_name, table_collation FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name table_collation
|
|
t1_my_tablex utf8mb3_general_ci
|
|
ALTER TABLE db_datadict.t1_my_tablex
|
|
DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci;
|
|
SELECT table_name, table_collation FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name table_collation
|
|
t1_my_tablex latin1_german1_ci
|
|
SELECT table_name, TABLE_COMMENT FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name TABLE_COMMENT
|
|
t1_my_tablex Initial Comment
|
|
ALTER TABLE db_datadict.t1_my_tablex COMMENT 'Changed Comment';
|
|
SELECT table_name, TABLE_COMMENT FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name TABLE_COMMENT
|
|
t1_my_tablex Changed Comment
|
|
SELECT table_name, AUTO_INCREMENT FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name AUTO_INCREMENT
|
|
t1_my_tablex NULL
|
|
ALTER TABLE db_datadict.t1_my_tablex
|
|
ADD f2 BIGINT AUTO_INCREMENT, ADD PRIMARY KEY (f2);
|
|
SELECT table_name, AUTO_INCREMENT FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name AUTO_INCREMENT
|
|
t1_my_tablex 3
|
|
SELECT table_name, ROW_FORMAT FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name ROW_FORMAT
|
|
t1_my_tablex Fixed
|
|
ALTER TABLE db_datadict.t1_my_tablex ROW_FORMAT = dynamic;
|
|
SELECT table_name, ROW_FORMAT FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name ROW_FORMAT
|
|
t1_my_tablex Dynamic
|
|
SELECT table_name, checksum FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name checksum
|
|
t1_my_tablex NULL
|
|
ALTER TABLE db_datadict.t1_my_tablex CHECKSUM = 1;
|
|
SELECT table_name, checksum IS NOT NULL FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name checksum IS NOT NULL
|
|
t1_my_tablex 1
|
|
SELECT UPDATE_TIME, checksum INTO @UPDATE_TIME, @checksum
|
|
FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
INSERT INTO db_datadict.t1_my_tablex SET f1 = 3;
|
|
FLUSH TABLES;
|
|
SELECT UPDATE_TIME > @UPDATE_TIME
|
|
AS "Is current UPDATE_TIME bigger than before last INSERT?"
|
|
FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
Is current UPDATE_TIME bigger than before last INSERT?
|
|
1
|
|
SELECT checksum <> @checksum
|
|
AS "Is current CHECKSUM different than before last INSERT?"
|
|
FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
Is current CHECKSUM different than before last INSERT?
|
|
1
|
|
SELECT CREATE_TIME INTO @CREATE_TIME FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
SELECT table_name FROM information_schema.tables
|
|
WHERE table_name LIKE 't1_my_table%';
|
|
table_name
|
|
t1_my_tablex
|
|
DROP TABLE db_datadict.t1_my_tablex;
|
|
SELECT table_name FROM information_schema.tables
|
|
WHERE table_name LIKE 't1_my_table%';
|
|
table_name
|
|
CREATE TABLE test.t1_my_tablex (f1 BIGINT)
|
|
ENGINE = <other_engine_type>;
|
|
SELECT CREATE_TIME > @CREATE_TIME
|
|
AS "Is current CREATE_TIME bigger than for the old dropped table?"
|
|
FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
Is current CREATE_TIME bigger than for the old dropped table?
|
|
1
|
|
DROP TABLE test.t1_my_tablex;
|
|
CREATE VIEW test.t1_my_tablex AS SELECT 1;
|
|
SELECT * FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
TABLE_CATALOG def
|
|
TABLE_SCHEMA test
|
|
TABLE_NAME t1_my_tablex
|
|
TABLE_TYPE VIEW
|
|
ENGINE NULL
|
|
VERSION NULL
|
|
ROW_FORMAT NULL
|
|
TABLE_ROWS NULL
|
|
AVG_ROW_LENGTH NULL
|
|
DATA_LENGTH NULL
|
|
MAX_DATA_LENGTH NULL
|
|
INDEX_LENGTH NULL
|
|
DATA_FREE NULL
|
|
AUTO_INCREMENT NULL
|
|
CREATE_TIME NULL
|
|
UPDATE_TIME NULL
|
|
CHECK_TIME NULL
|
|
TABLE_COLLATION NULL
|
|
CHECKSUM NULL
|
|
CREATE_OPTIONS NULL
|
|
TABLE_COMMENT VIEW
|
|
MAX_INDEX_LENGTH NULL
|
|
TEMPORARY NULL
|
|
DROP VIEW test.t1_my_tablex;
|
|
SELECT table_name FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name
|
|
CREATE TEMPORARY TABLE test.t1_my_tablex
|
|
ENGINE = <other_engine_type>
|
|
AS SELECT 1;
|
|
SELECT table_name, table_type FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
DROP TEMPORARY TABLE test.t1_my_tablex;
|
|
CREATE TABLE db_datadict.t1_my_tablex
|
|
ENGINE = <engine_type> AS
|
|
SELECT 1;
|
|
SELECT table_name FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name
|
|
t1_my_tablex
|
|
DROP DATABASE db_datadict;
|
|
SELECT table_name FROM information_schema.tables
|
|
WHERE table_name = 't1_my_tablex';
|
|
table_name
|
|
########################################################################
|
|
# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
|
# DDL on INFORMATION_SCHEMA tables are not supported
|
|
########################################################################
|
|
DROP DATABASE IF EXISTS db_datadict;
|
|
CREATE DATABASE db_datadict;
|
|
CREATE TABLE db_datadict.t1 (f1 BIGINT)
|
|
ENGINE = <engine_type>;
|
|
INSERT INTO information_schema.tables
|
|
SELECT * FROM information_schema.tables;
|
|
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
|
UPDATE information_schema.tables SET table_schema = 'test'
|
|
WHERE table_name = 't1';
|
|
Got one of the listed errors
|
|
DELETE FROM information_schema.tables WHERE table_name = 't1';
|
|
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
|
TRUNCATE information_schema.tables;
|
|
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
|
CREATE INDEX my_idx_on_tables ON information_schema.tables(table_schema);
|
|
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
|
ALTER TABLE information_schema.tables DROP PRIMARY KEY;
|
|
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
|
ALTER TABLE information_schema.tables ADD f1 INT;
|
|
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
|
DROP TABLE information_schema.tables;
|
|
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
|
ALTER TABLE information_schema.tables RENAME db_datadict.tables;
|
|
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
|
ALTER TABLE information_schema.tables RENAME information_schema.xtables;
|
|
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
|
DROP DATABASE db_datadict;
|