mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-31 15:50:51 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			487 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			487 lines
		
	
	
		
			20 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 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)	NO			
 | |
| 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) NOT NULL DEFAULT '',
 | |
|   `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)	NO			
 | |
| 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 NULL OR table_catalog <> 'def';
 | |
| 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
 | |
| def	db_datadict	t1	f1	1	NULL	YES	char	10	10	NULL	NULL	latin1	latin1_swedish_ci	char(10)	MUL		select,insert,update,references	
 | |
| def	db_datadict	t1	f2	2	NULL	YES	text	65535	65535	NULL	NULL	latin1	latin1_swedish_ci	text			select,insert,update,references	
 | |
| def	db_datadict	t1	f3	3	NULL	YES	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references	
 | |
| def	db_datadict	t1	f4	4	NULL	NO	int	NULL	NULL	10	0	NULL	NULL	int(11)	PRI	auto_increment	select,insert,update,references	
 | |
| def	db_datadict	t2	f1	1		NO	char	10	10	NULL	NULL	latin1	latin1_swedish_ci	char(10)	PRI		select,insert,update,references	
 | |
| def	db_datadict	t2	f2	2	NULL	YES	text	65535	65535	NULL	NULL	latin1	latin1_swedish_ci	text			select,insert,update,references	
 | |
| def	db_datadict	t2	f3	3	NULL	YES	date	NULL	NULL	NULL	NULL	NULL	NULL	date			select,insert,update,references	
 | |
| def	db_datadict	t2	f4	4	0	NO	int	NULL	NULL	10	0	NULL	NULL	int(11)	PRI		select,insert,update,references	
 | |
| def	db_datadict	v1	f1	1	0	NO	int	NULL	NULL	10	0	NULL	NULL	int(1)			select,insert,update,references	
 | |
| def	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
 | |
| def	db_datadict	t1	f1	1	NULL	YES	char	10	10	NULL	NULL	latin1	latin1_swedish_ci	char(10)	MUL		select	
 | |
| def	db_datadict	t1	f2	2	NULL	YES	text	65535	65535	NULL	NULL	latin1	latin1_swedish_ci	text			select	
 | |
| def	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
 | |
| def	db_datadict	t2	f1	1		NO	char	10	10	NULL	NULL	latin1	latin1_swedish_ci	char(10)	PRI		insert	
 | |
| def	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	def
 | |
| 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	def
 | |
| 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	def
 | |
| 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;
 |