SHOW TABLES FROM information_schema LIKE 'COLUMNS';
Tables_in_information_schema (COLUMNS)
COLUMNS
#######################################################################
# 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.COLUMNS;
CREATE PROCEDURE test.p1() SELECT * FROM information_schema.COLUMNS;
CREATE FUNCTION test.f1() returns BIGINT
BEGIN
DECLARE counter BIGINT DEFAULT NULL;
SELECT COUNT(*) INTO counter FROM information_schema.COLUMNS;
RETURN counter;
END//
# Attention: The printing of the next result sets is disabled.
SELECT * FROM information_schema.COLUMNS;
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.6.1: INFORMATION_SCHEMA.COLUMNS layout
#########################################################################
DESCRIBE          information_schema.COLUMNS;
Field	Type	Null	Key	Default	Extra
TABLE_CATALOG	varchar(512)	YES		NULL	
TABLE_SCHEMA	varchar(64)	NO			
TABLE_NAME	varchar(64)	NO			
COLUMN_NAME	varchar(64)	NO			
ORDINAL_POSITION	bigint(21) unsigned	NO		0	
COLUMN_DEFAULT	longtext	YES		NULL	
IS_NULLABLE	varchar(3)	NO			
DATA_TYPE	varchar(64)	NO			
CHARACTER_MAXIMUM_LENGTH	bigint(21) unsigned	YES		NULL	
CHARACTER_OCTET_LENGTH	bigint(21) unsigned	YES		NULL	
NUMERIC_PRECISION	bigint(21) unsigned	YES		NULL	
NUMERIC_SCALE	bigint(21) unsigned	YES		NULL	
CHARACTER_SET_NAME	varchar(32)	YES		NULL	
COLLATION_NAME	varchar(32)	YES		NULL	
COLUMN_TYPE	longtext	NO		NULL	
COLUMN_KEY	varchar(3)	NO			
EXTRA	varchar(27)	NO			
PRIVILEGES	varchar(80)	NO			
COLUMN_COMMENT	varchar(255)	NO			
SHOW CREATE TABLE information_schema.COLUMNS;
Table	Create Table
COLUMNS	CREATE TEMPORARY TABLE `COLUMNS` (
  `TABLE_CATALOG` varchar(512) DEFAULT NULL,
  `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
  `TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
  `COLUMN_NAME` varchar(64) NOT NULL DEFAULT '',
  `ORDINAL_POSITION` bigint(21) unsigned NOT NULL DEFAULT '0',
  `COLUMN_DEFAULT` longtext,
  `IS_NULLABLE` varchar(3) NOT NULL DEFAULT '',
  `DATA_TYPE` varchar(64) NOT NULL DEFAULT '',
  `CHARACTER_MAXIMUM_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `CHARACTER_OCTET_LENGTH` bigint(21) unsigned DEFAULT NULL,
  `NUMERIC_PRECISION` bigint(21) unsigned DEFAULT NULL,
  `NUMERIC_SCALE` bigint(21) unsigned DEFAULT NULL,
  `CHARACTER_SET_NAME` varchar(32) DEFAULT NULL,
  `COLLATION_NAME` varchar(32) DEFAULT NULL,
  `COLUMN_TYPE` longtext NOT NULL,
  `COLUMN_KEY` varchar(3) NOT NULL DEFAULT '',
  `EXTRA` varchar(27) NOT NULL DEFAULT '',
  `PRIVILEGES` varchar(80) NOT NULL DEFAULT '',
  `COLUMN_COMMENT` varchar(255) NOT NULL DEFAULT ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8
SHOW COLUMNS FROM information_schema.COLUMNS;
Field	Type	Null	Key	Default	Extra
TABLE_CATALOG	varchar(512)	YES		NULL	
TABLE_SCHEMA	varchar(64)	NO			
TABLE_NAME	varchar(64)	NO			
COLUMN_NAME	varchar(64)	NO			
ORDINAL_POSITION	bigint(21) unsigned	NO		0	
COLUMN_DEFAULT	longtext	YES		NULL	
IS_NULLABLE	varchar(3)	NO			
DATA_TYPE	varchar(64)	NO			
CHARACTER_MAXIMUM_LENGTH	bigint(21) unsigned	YES		NULL	
CHARACTER_OCTET_LENGTH	bigint(21) unsigned	YES		NULL	
NUMERIC_PRECISION	bigint(21) unsigned	YES		NULL	
NUMERIC_SCALE	bigint(21) unsigned	YES		NULL	
CHARACTER_SET_NAME	varchar(32)	YES		NULL	
COLLATION_NAME	varchar(32)	YES		NULL	
COLUMN_TYPE	longtext	NO		NULL	
COLUMN_KEY	varchar(3)	NO			
EXTRA	varchar(27)	NO			
PRIVILEGES	varchar(80)	NO			
COLUMN_COMMENT	varchar(255)	NO			
SELECT table_catalog, table_schema, table_name, column_name
FROM information_schema.columns WHERE table_catalog IS NOT NULL;
table_catalog	table_schema	table_name	column_name
###############################################################################
# Testcase 3.2.6.2 + 3.2.6.3: INFORMATION_SCHEMA.COLUMNS accessible information
###############################################################################
DROP DATABASE IF EXISTS db_datadict;
CREATE DATABASE db_datadict;
DROP   USER 'testuser1'@'localhost';
CREATE USER 'testuser1'@'localhost';
DROP   USER 'testuser2'@'localhost';
CREATE USER 'testuser2'@'localhost';
CREATE TABLE db_datadict.t1
(f1 CHAR(10), f2 TEXT, f3 DATE, f4 INT AUTO_INCREMENT,
UNIQUE INDEX MUL_IDX(f1,f3), PRIMARY KEY (f4))
ENGINE = <other_engine_type>;
CREATE VIEW db_datadict.v1 AS SELECT 1 AS f1, 1 AS f2;
GRANT SELECT(f1, f2) ON db_datadict.t1 TO 'testuser1'@'localhost';
GRANT SELECT(f2)     ON db_datadict.v1 TO 'testuser1'@'localhost';
CREATE TABLE db_datadict.t2
(f1 CHAR(10), f2 TEXT, f3 DATE, f4 INT, PRIMARY KEY (f1,f4))
ENGINE = <other_engine_type>;
GRANT INSERT(f1, f2) ON db_datadict.t2 TO 'testuser2'@'localhost';
SELECT * FROM information_schema.columns
WHERE table_schema = 'db_datadict'
ORDER BY table_schema, table_name, ordinal_position;
TABLE_CATALOG	TABLE_SCHEMA	TABLE_NAME	COLUMN_NAME	ORDINAL_POSITION	COLUMN_DEFAULT	IS_NULLABLE	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	CHARACTER_SET_NAME	COLLATION_NAME	COLUMN_TYPE	COLUMN_KEY	EXTRA	PRIVILEGES	COLUMN_COMMENT
NULL	db_datadict	t1	f1	1	NULL	YES	char	10	10	NULL	NULL	latin1	latin1_swedish_ci	char(10)	MUL		select,insert,update,references	
NULL	db_datadict	t1	f2	2	NULL	YES	text	65535	65535	NULL	NULL	latin1	latin1_swedish_ci	text			select,insert,update,references	
NULL	db_datadict	t1	f3	3	NULL	YES	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references	
NULL	db_datadict	t1	f4	4	NULL	NO	int	NULL	NULL	10	0	NULL	NULL	int(11)	PRI	auto_increment	select,insert,update,references	
NULL	db_datadict	t2	f1	1		NO	char	10	10	NULL	NULL	latin1	latin1_swedish_ci	char(10)	PRI		select,insert,update,references	
NULL	db_datadict	t2	f2	2	NULL	YES	text	65535	65535	NULL	NULL	latin1	latin1_swedish_ci	text			select,insert,update,references	
NULL	db_datadict	t2	f3	3	NULL	YES	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references	
NULL	db_datadict	t2	f4	4	0	NO	int	NULL	NULL	10	0	NULL	NULL	int(11)	PRI		select,insert,update,references	
NULL	db_datadict	v1	f1	1	0	NO	int	NULL	NULL	10	0	NULL	NULL	int(1)			select,insert,update,references	
NULL	db_datadict	v1	f2	2	0	NO	int	NULL	NULL	10	0	NULL	NULL	int(1)			select,insert,update,references	
SHOW COLUMNS FROM db_datadict.t1;
Field	Type	Null	Key	Default	Extra
f1	char(10)	YES	MUL	NULL	
f2	text	YES		NULL	
f3	date	YES		NULL	
f4	int(11)	NO	PRI	NULL	auto_increment
SHOW COLUMNS FROM db_datadict.t2;
Field	Type	Null	Key	Default	Extra
f1	char(10)	NO	PRI		
f2	text	YES		NULL	
f3	date	YES		NULL	
f4	int(11)	NO	PRI	0	
SHOW COLUMNS FROM db_datadict.v1;
Field	Type	Null	Key	Default	Extra
f1	int(1)	NO		0	
f2	int(1)	NO		0	
# Establish connection testuser1 (user=testuser1)
SELECT * FROM information_schema.columns
WHERE table_schema = 'db_datadict'
ORDER BY table_schema, table_name, ordinal_position;
TABLE_CATALOG	TABLE_SCHEMA	TABLE_NAME	COLUMN_NAME	ORDINAL_POSITION	COLUMN_DEFAULT	IS_NULLABLE	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	CHARACTER_SET_NAME	COLLATION_NAME	COLUMN_TYPE	COLUMN_KEY	EXTRA	PRIVILEGES	COLUMN_COMMENT
NULL	db_datadict	t1	f1	1	NULL	YES	char	10	10	NULL	NULL	latin1	latin1_swedish_ci	char(10)	MUL		select	
NULL	db_datadict	t1	f2	2	NULL	YES	text	65535	65535	NULL	NULL	latin1	latin1_swedish_ci	text			select	
NULL	db_datadict	v1	f2	2	0	NO	int	NULL	NULL	10	0	NULL	NULL	int(1)			select	
SHOW COLUMNS FROM db_datadict.t1;
Field	Type	Null	Key	Default	Extra
f1	char(10)	YES	MUL	NULL	
f2	text	YES		NULL	
SHOW COLUMNS FROM db_datadict.t2;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 't2'
SHOW COLUMNS FROM db_datadict.v1;
Field	Type	Null	Key	Default	Extra
f2	int(1)	NO		0	
# Establish connection testuser2 (user=testuser2)
SELECT * FROM information_schema.columns
WHERE table_schema = 'db_datadict'
ORDER BY table_schema, table_name, ordinal_position;
TABLE_CATALOG	TABLE_SCHEMA	TABLE_NAME	COLUMN_NAME	ORDINAL_POSITION	COLUMN_DEFAULT	IS_NULLABLE	DATA_TYPE	CHARACTER_MAXIMUM_LENGTH	CHARACTER_OCTET_LENGTH	NUMERIC_PRECISION	NUMERIC_SCALE	CHARACTER_SET_NAME	COLLATION_NAME	COLUMN_TYPE	COLUMN_KEY	EXTRA	PRIVILEGES	COLUMN_COMMENT
NULL	db_datadict	t2	f1	1		NO	char	10	10	NULL	NULL	latin1	latin1_swedish_ci	char(10)	PRI		insert	
NULL	db_datadict	t2	f2	2	NULL	YES	text	65535	65535	NULL	NULL	latin1	latin1_swedish_ci	text			insert	
SHOW COLUMNS FROM db_datadict.t1;
ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 't1'
SHOW COLUMNS FROM db_datadict.t2;
Field	Type	Null	Key	Default	Extra
f1	char(10)	NO	PRI		
f2	text	YES		NULL	
SHOW COLUMNS FROM db_datadict.v1;
ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 'v1'
# Switch to connection default and close connections testuser1, testuser2
DROP USER 'testuser1'@'localhost';
DROP USER 'testuser2'@'localhost';
DROP DATABASE IF EXISTS db_datadict;
###############################################################################
# Testcase 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.COLUMNS 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.columns
WHERE table_name LIKE 't1_my_table%';
table_name
CREATE TABLE test.t1_my_table (f1 CHAR(12))
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci
ENGINE = <engine_type>;
SELECT * FROM information_schema.columns
WHERE table_name = 't1_my_table';
TABLE_CATALOG	NULL
TABLE_SCHEMA	test
TABLE_NAME	t1_my_table
COLUMN_NAME	f1
ORDINAL_POSITION	1
COLUMN_DEFAULT	NULL
IS_NULLABLE	YES
DATA_TYPE	char
CHARACTER_MAXIMUM_LENGTH	12
CHARACTER_OCTET_LENGTH	12
NUMERIC_PRECISION	NULL
NUMERIC_SCALE	NULL
CHARACTER_SET_NAME	latin1
COLLATION_NAME	latin1_swedish_ci
COLUMN_TYPE	char(12)
COLUMN_KEY	
EXTRA	
PRIVILEGES	select,insert,update,references
COLUMN_COMMENT	
SELECT table_name FROM information_schema.columns
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.columns
WHERE table_name LIKE 't1_my_table%';
table_name
t1_my_tablex
SELECT table_schema,table_name FROM information_schema.columns
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.columns
WHERE table_name = 't1_my_tablex';
table_schema	table_name
db_datadict	t1_my_tablex
SELECT table_name, column_name FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name
t1_my_tablex	f1
ALTER TABLE db_datadict.t1_my_tablex CHANGE COLUMN f1 first_col CHAR(12);
SELECT table_name, column_name FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name
t1_my_tablex	first_col
SELECT table_name, column_name, character_maximum_length,
character_octet_length, column_type
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	character_maximum_length	character_octet_length	column_type
t1_my_tablex	first_col	12	12	char(12)
ALTER TABLE db_datadict.t1_my_tablex
MODIFY COLUMN first_col CHAR(20);
SELECT table_name, column_name, character_maximum_length,
character_octet_length, column_type
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	character_maximum_length	character_octet_length	column_type
t1_my_tablex	first_col	20	20	char(20)
SELECT table_name, column_name, character_maximum_length,
character_octet_length, column_type
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	character_maximum_length	character_octet_length	column_type
t1_my_tablex	first_col	20	20	char(20)
ALTER TABLE db_datadict.t1_my_tablex
MODIFY COLUMN first_col VARCHAR(20);
SELECT table_name, column_name, character_maximum_length,
character_octet_length, column_type
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	character_maximum_length	character_octet_length	column_type
t1_my_tablex	first_col	20	20	varchar(20)
SELECT table_name, column_name, column_default
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	column_default
t1_my_tablex	first_col	NULL
ALTER TABLE db_datadict.t1_my_tablex
MODIFY COLUMN first_col CHAR(10) DEFAULT 'hello';
SELECT table_name, column_name, column_default
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	column_default
t1_my_tablex	first_col	hello
SELECT table_name, column_name, is_nullable
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	is_nullable
t1_my_tablex	first_col	YES
ALTER TABLE db_datadict.t1_my_tablex
MODIFY COLUMN first_col CHAR(10) NOT NULL;
SELECT table_name, column_name, is_nullable
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	is_nullable
t1_my_tablex	first_col	NO
SELECT table_name, column_name, collation_name
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	collation_name
t1_my_tablex	first_col	latin1_swedish_ci
ALTER TABLE db_datadict.t1_my_tablex
MODIFY COLUMN first_col CHAR(10) COLLATE 'latin1_general_cs';
SELECT table_name, column_name, collation_name
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	collation_name
t1_my_tablex	first_col	latin1_general_cs
SELECT table_name, column_name, character_maximum_length,
character_octet_length, character_set_name
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	character_maximum_length	character_octet_length	character_set_name
t1_my_tablex	first_col	10	10	latin1
ALTER TABLE db_datadict.t1_my_tablex
MODIFY COLUMN first_col CHAR(10) CHARACTER SET utf8;
SELECT table_name, column_name, character_maximum_length,
character_octet_length, character_set_name
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	character_maximum_length	character_octet_length	character_set_name
t1_my_tablex	first_col	10	30	utf8
SELECT table_name, column_name, column_comment
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	column_comment
t1_my_tablex	first_col	
ALTER TABLE db_datadict.t1_my_tablex
MODIFY COLUMN first_col CHAR(10) COMMENT 'Hello';
SELECT table_name, column_name, column_comment
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	column_comment
t1_my_tablex	first_col	Hello
SELECT table_name, column_name
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name
t1_my_tablex	first_col
ALTER TABLE db_datadict.t1_my_tablex
ADD COLUMN second_col CHAR(10);
SELECT table_name, column_name
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name
t1_my_tablex	first_col
t1_my_tablex	second_col
SELECT table_name, column_name, ordinal_position
FROM information_schema.columns
WHERE table_name = 't1_my_tablex'
ORDER BY table_name, column_name;
table_name	column_name	ordinal_position
t1_my_tablex	first_col	1
t1_my_tablex	second_col	2
ALTER TABLE db_datadict.t1_my_tablex
MODIFY COLUMN second_col CHAR(10) FIRST;
SELECT table_name, column_name, ordinal_position
FROM information_schema.columns
WHERE table_name = 't1_my_tablex'
ORDER BY table_name, column_name;
table_name	column_name	ordinal_position
t1_my_tablex	first_col	2
t1_my_tablex	second_col	1
SELECT table_name, column_name
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name
t1_my_tablex	second_col
t1_my_tablex	first_col
ALTER TABLE db_datadict.t1_my_tablex
DROP COLUMN first_col;
SELECT table_name, column_name
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name
t1_my_tablex	second_col
SELECT table_name, column_name, column_key
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	column_key
t1_my_tablex	second_col	
ALTER TABLE db_datadict.t1_my_tablex
ADD UNIQUE INDEX IDX(second_col);
SELECT table_name, column_name, column_key
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name	column_key
t1_my_tablex	second_col	UNI
SELECT table_name, column_name
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name
t1_my_tablex	second_col
DROP TABLE db_datadict.t1_my_tablex;
SELECT table_name, column_name
FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name	column_name
CREATE VIEW test.t1_my_tablex
AS SELECT 1 AS "col1", 'A' collate latin1_german1_ci AS "col2";
SELECT * FROM information_schema.columns
WHERE table_name = 't1_my_tablex'
ORDER BY table_name, column_name;
TABLE_CATALOG	NULL
TABLE_SCHEMA	test
TABLE_NAME	t1_my_tablex
COLUMN_NAME	col1
ORDINAL_POSITION	1
COLUMN_DEFAULT	0
IS_NULLABLE	NO
DATA_TYPE	int
CHARACTER_MAXIMUM_LENGTH	NULL
CHARACTER_OCTET_LENGTH	NULL
NUMERIC_PRECISION	10
NUMERIC_SCALE	0
CHARACTER_SET_NAME	NULL
COLLATION_NAME	NULL
COLUMN_TYPE	int(1)
COLUMN_KEY	
EXTRA	
PRIVILEGES	select,insert,update,references
COLUMN_COMMENT	
TABLE_CATALOG	NULL
TABLE_SCHEMA	test
TABLE_NAME	t1_my_tablex
COLUMN_NAME	col2
ORDINAL_POSITION	2
COLUMN_DEFAULT	
IS_NULLABLE	NO
DATA_TYPE	varchar
CHARACTER_MAXIMUM_LENGTH	1
CHARACTER_OCTET_LENGTH	1
NUMERIC_PRECISION	NULL
NUMERIC_SCALE	NULL
CHARACTER_SET_NAME	latin1
COLLATION_NAME	latin1_german1_ci
COLUMN_TYPE	varchar(1)
COLUMN_KEY	
EXTRA	
PRIVILEGES	select,insert,update,references
COLUMN_COMMENT	
DROP VIEW test.t1_my_tablex;
SELECT table_name FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name
CREATE TABLE db_datadict.t1_my_tablex
ENGINE = <engine_type> AS
SELECT 1;
SELECT table_name FROM information_schema.columns
WHERE table_name = 't1_my_tablex';
table_name
t1_my_tablex
DROP DATABASE db_datadict;
SELECT table_name FROM information_schema.columns
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 table are not supported
########################################################################
DROP DATABASE IF EXISTS db_datadict;
DROP TABLE IF EXISTS test.t1;
CREATE DATABASE db_datadict;
CREATE TABLE test.t1 (f1 BIGINT);
INSERT INTO information_schema.columns (table_schema,table_name,column_name)
VALUES('test','t1', 'f2');
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
INSERT INTO information_schema.columns (table_schema,table_name,column_name)
VALUES('test','t2', 'f1');
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
UPDATE information_schema.columns SET table_name = 't4' WHERE table_name = 't1';
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
DELETE FROM information_schema.columns WHERE table_name = 't1';
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
TRUNCATE information_schema.columns;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
CREATE INDEX i3 ON information_schema.columns(table_name);
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
ALTER TABLE information_schema.columns ADD f1 INT;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
DROP TABLE information_schema.columns;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
ALTER TABLE information_schema.columns RENAME db_datadict.columns;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
ALTER TABLE information_schema.columns RENAME information_schema.xcolumns;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
DROP TABLE test.t1;
DROP DATABASE db_datadict;
