SHOW TABLES FROM information_schema LIKE 'STATISTICS'; Tables_in_information_schema (STATISTICS) STATISTICS ####################################################################### # 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.STATISTICS; CREATE PROCEDURE test.p1() SELECT * FROM information_schema.STATISTICS; CREATE FUNCTION test.f1() returns BIGINT BEGIN DECLARE counter BIGINT DEFAULT NULL; SELECT COUNT(*) INTO counter FROM information_schema.STATISTICS; RETURN counter; END// # Attention: The printing of the next result sets is disabled. SELECT * FROM information_schema.STATISTICS; 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.14.1: INFORMATION_SCHEMA.STATISTICS layout ######################################################################### DESCRIBE information_schema.STATISTICS; Field Type Null Key Default Extra TABLE_CATALOG varchar(64) YES NULL TABLE_SCHEMA varchar(64) YES NULL TABLE_NAME varchar(64) YES NULL NON_UNIQUE int(1) NO 0 INDEX_SCHEMA varchar(64) YES NULL INDEX_NAME varchar(64) YES NULL SEQ_IN_INDEX int(10) unsigned NO NULL COLUMN_NAME varchar(64) YES NULL COLLATION varchar(1) YES NULL CARDINALITY bigint(21) YES NULL SUB_PART bigint(21) YES NULL PACKED binary(0) YES NULL NULLABLE varchar(3) NO INDEX_TYPE varchar(11) NO COMMENT varchar(8) NO INDEX_COMMENT varchar(2048) NO NULL IS_VISIBLE varchar(3) NO EXPRESSION longtext YES NULL SHOW CREATE TABLE information_schema.STATISTICS; View Create View character_set_client collation_connection STATISTICS CREATE ALGORITHM=UNDEFINED DEFINER=`mysql.infoschema`@`localhost` SQL SECURITY DEFINER VIEW `information_schema`.`STATISTICS` AS select (`cat`.`name` collate utf8_tolower_ci) AS `TABLE_CATALOG`,(`sch`.`name` collate utf8_tolower_ci) AS `TABLE_SCHEMA`,(`tbl`.`name` collate utf8_tolower_ci) AS `TABLE_NAME`,if(((`idx`.`type` = 'PRIMARY') or (`idx`.`type` = 'UNIQUE')),0,1) AS `NON_UNIQUE`,(`sch`.`name` collate utf8_tolower_ci) AS `INDEX_SCHEMA`,(`idx`.`name` collate utf8_tolower_ci) AS `INDEX_NAME`,`icu`.`ordinal_position` AS `SEQ_IN_INDEX`,if((`col`.`hidden` = 'SQL'),NULL,(`col`.`name` collate utf8_tolower_ci)) AS `COLUMN_NAME`,(case when (`icu`.`order` = 'DESC') then 'D' when (`icu`.`order` = 'ASC') then 'A' else NULL end) AS `COLLATION`,internal_index_column_cardinality(`sch`.`name`,`tbl`.`name`,`idx`.`name`,`col`.`name`,`idx`.`ordinal_position`,`icu`.`ordinal_position`,if((`tbl`.`partition_type` is null),`tbl`.`engine`,''),`tbl`.`se_private_id`,((`tbl`.`hidden` <> 'Visible') or (0 <> `idx`.`hidden`) or (0 <> `icu`.`hidden`)),coalesce(`stat`.`cardinality`,cast(-(1) as unsigned)),coalesce(cast(`stat`.`cached_time` as unsigned),0)) AS `CARDINALITY`,get_dd_index_sub_part_length(`icu`.`length`,`col`.`type`,`col`.`char_length`,`col`.`collation_id`,`idx`.`type`) AS `SUB_PART`,NULL AS `PACKED`,if((`col`.`is_nullable` = 1),'YES','') AS `NULLABLE`,(case when (`idx`.`type` = 'SPATIAL') then 'SPATIAL' when (`idx`.`algorithm` = 'SE_PRIVATE') then '' else `idx`.`algorithm` end) AS `INDEX_TYPE`,if(((`idx`.`type` = 'PRIMARY') or (`idx`.`type` = 'UNIQUE')),'',if(internal_keys_disabled(`tbl`.`options`),'disabled','')) AS `COMMENT`,`idx`.`comment` AS `INDEX_COMMENT`,if(`idx`.`is_visible`,'YES','NO') AS `IS_VISIBLE`,if((`col`.`hidden` = 'SQL'),`col`.`generation_expression_utf8`,NULL) AS `EXPRESSION` from (((((((`mysql`.`index_column_usage` `icu` join `mysql`.`indexes` `idx` on((`idx`.`id` = `icu`.`index_id`))) join `mysql`.`tables` `tbl` on((`idx`.`table_id` = `tbl`.`id`))) join `mysql`.`columns` `col` on((`icu`.`column_id` = `col`.`id`))) join `mysql`.`schemata` `sch` on((`tbl`.`schema_id` = `sch`.`id`))) join `mysql`.`catalogs` `cat` on((`cat`.`id` = `sch`.`catalog_id`))) join `mysql`.`collations` `coll` on((`tbl`.`collation_id` = `coll`.`id`))) left join `mysql`.`index_stats` `stat` on(((`tbl`.`name` = `stat`.`table_name`) and (`sch`.`name` = `stat`.`schema_name`) and (`idx`.`name` = `stat`.`index_name`) and (`col`.`name` = `stat`.`column_name`)))) where ((0 <> can_access_table(`sch`.`name`,`tbl`.`name`)) and (0 <> is_visible_dd_object(`tbl`.`hidden`,((0 <> `idx`.`hidden`) or (0 <> `icu`.`hidden`))))) utf8 utf8_general_ci SHOW COLUMNS FROM information_schema.STATISTICS; Field Type Null Key Default Extra TABLE_CATALOG varchar(64) YES NULL TABLE_SCHEMA varchar(64) YES NULL TABLE_NAME varchar(64) YES NULL NON_UNIQUE int(1) NO 0 INDEX_SCHEMA varchar(64) YES NULL INDEX_NAME varchar(64) YES NULL SEQ_IN_INDEX int(10) unsigned NO NULL COLUMN_NAME varchar(64) YES NULL COLLATION varchar(1) YES NULL CARDINALITY bigint(21) YES NULL SUB_PART bigint(21) YES NULL PACKED binary(0) YES NULL NULLABLE varchar(3) NO INDEX_TYPE varchar(11) NO COMMENT varchar(8) NO INDEX_COMMENT varchar(2048) NO NULL IS_VISIBLE varchar(3) NO EXPRESSION longtext YES NULL SELECT table_catalog, table_schema, table_name, index_schema, index_name FROM information_schema.statistics WHERE table_catalog IS NOT NULL AND table_name != 'ndb_binlog_index' ORDER BY table_schema, table_name, index_schema, index_name; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME INDEX_SCHEMA INDEX_NAME def mysql columns_priv mysql PRIMARY def mysql columns_priv mysql PRIMARY def mysql columns_priv mysql PRIMARY def mysql columns_priv mysql PRIMARY def mysql columns_priv mysql PRIMARY def mysql component mysql PRIMARY def mysql db mysql PRIMARY def mysql db mysql PRIMARY def mysql db mysql PRIMARY def mysql db mysql User def mysql default_roles mysql PRIMARY def mysql default_roles mysql PRIMARY def mysql default_roles mysql PRIMARY def mysql default_roles mysql PRIMARY def mysql engine_cost mysql PRIMARY def mysql engine_cost mysql PRIMARY def mysql engine_cost mysql PRIMARY def mysql func mysql PRIMARY def mysql global_grants mysql PRIMARY def mysql global_grants mysql PRIMARY def mysql global_grants mysql PRIMARY def mysql gtid_executed mysql PRIMARY def mysql gtid_executed mysql PRIMARY def mysql help_category mysql PRIMARY def mysql help_category mysql name def mysql help_keyword mysql PRIMARY def mysql help_keyword mysql name def mysql help_relation mysql PRIMARY def mysql help_relation mysql PRIMARY def mysql help_topic mysql PRIMARY def mysql help_topic mysql name def mysql innodb_index_stats mysql PRIMARY def mysql innodb_index_stats mysql PRIMARY def mysql innodb_index_stats mysql PRIMARY def mysql innodb_index_stats mysql PRIMARY def mysql innodb_table_stats mysql PRIMARY def mysql innodb_table_stats mysql PRIMARY def mysql password_history mysql PRIMARY def mysql password_history mysql PRIMARY def mysql password_history mysql PRIMARY def mysql plugin mysql PRIMARY def mysql procs_priv mysql Grantor def mysql procs_priv mysql PRIMARY def mysql procs_priv mysql PRIMARY def mysql procs_priv mysql PRIMARY def mysql procs_priv mysql PRIMARY def mysql procs_priv mysql PRIMARY def mysql proxies_priv mysql Grantor def mysql proxies_priv mysql PRIMARY def mysql proxies_priv mysql PRIMARY def mysql proxies_priv mysql PRIMARY def mysql proxies_priv mysql PRIMARY def mysql role_edges mysql PRIMARY def mysql role_edges mysql PRIMARY def mysql role_edges mysql PRIMARY def mysql role_edges mysql PRIMARY def mysql server_cost mysql PRIMARY def mysql servers mysql PRIMARY def mysql slave_master_info mysql PRIMARY def mysql slave_relay_log_info mysql PRIMARY def mysql slave_worker_info mysql PRIMARY def mysql slave_worker_info mysql PRIMARY def mysql tables_priv mysql Grantor def mysql tables_priv mysql PRIMARY def mysql tables_priv mysql PRIMARY def mysql tables_priv mysql PRIMARY def mysql tables_priv mysql PRIMARY def mysql time_zone mysql PRIMARY def mysql time_zone_leap_second mysql PRIMARY def mysql time_zone_name mysql PRIMARY def mysql time_zone_transition mysql PRIMARY def mysql time_zone_transition mysql PRIMARY def mysql time_zone_transition_type mysql PRIMARY def mysql time_zone_transition_type mysql PRIMARY def mysql user mysql PRIMARY def mysql user mysql PRIMARY def performance_schema accounts performance_schema ACCOUNT def performance_schema accounts performance_schema ACCOUNT def performance_schema cond_instances performance_schema NAME def performance_schema cond_instances performance_schema PRIMARY def performance_schema data_lock_waits performance_schema BLOCKING_ENGINE_LOCK_ID def performance_schema data_lock_waits performance_schema BLOCKING_ENGINE_LOCK_ID def performance_schema data_lock_waits performance_schema BLOCKING_ENGINE_TRANSACTION_ID def performance_schema data_lock_waits performance_schema BLOCKING_ENGINE_TRANSACTION_ID def performance_schema data_lock_waits performance_schema BLOCKING_THREAD_ID def performance_schema data_lock_waits performance_schema BLOCKING_THREAD_ID def performance_schema data_lock_waits performance_schema REQUESTING_ENGINE_LOCK_ID def performance_schema data_lock_waits performance_schema REQUESTING_ENGINE_LOCK_ID def performance_schema data_lock_waits performance_schema REQUESTING_ENGINE_TRANSACTION_ID def performance_schema data_lock_waits performance_schema REQUESTING_ENGINE_TRANSACTION_ID def performance_schema data_lock_waits performance_schema REQUESTING_THREAD_ID def performance_schema data_lock_waits performance_schema REQUESTING_THREAD_ID def performance_schema data_locks performance_schema ENGINE_TRANSACTION_ID def performance_schema data_locks performance_schema ENGINE_TRANSACTION_ID def performance_schema data_locks performance_schema OBJECT_SCHEMA def performance_schema data_locks performance_schema OBJECT_SCHEMA def performance_schema data_locks performance_schema OBJECT_SCHEMA def performance_schema data_locks performance_schema OBJECT_SCHEMA def performance_schema data_locks performance_schema PRIMARY def performance_schema data_locks performance_schema PRIMARY def performance_schema data_locks performance_schema THREAD_ID def performance_schema data_locks performance_schema THREAD_ID def performance_schema events_errors_summary_by_account_by_error performance_schema ACCOUNT def performance_schema events_errors_summary_by_account_by_error performance_schema ACCOUNT def performance_schema events_errors_summary_by_account_by_error performance_schema ACCOUNT def performance_schema events_errors_summary_by_host_by_error performance_schema HOST def performance_schema events_errors_summary_by_host_by_error performance_schema HOST def performance_schema events_errors_summary_by_thread_by_error performance_schema THREAD_ID def performance_schema events_errors_summary_by_thread_by_error performance_schema THREAD_ID def performance_schema events_errors_summary_by_user_by_error performance_schema USER def performance_schema events_errors_summary_by_user_by_error performance_schema USER def performance_schema events_errors_summary_global_by_error performance_schema ERROR_NUMBER def performance_schema events_stages_current performance_schema PRIMARY def performance_schema events_stages_current performance_schema PRIMARY def performance_schema events_stages_history performance_schema PRIMARY def performance_schema events_stages_history performance_schema PRIMARY def performance_schema events_stages_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema events_stages_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema events_stages_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema events_stages_summary_by_host_by_event_name performance_schema HOST def performance_schema events_stages_summary_by_host_by_event_name performance_schema HOST def performance_schema events_stages_summary_by_thread_by_event_name performance_schema PRIMARY def performance_schema events_stages_summary_by_thread_by_event_name performance_schema PRIMARY def performance_schema events_stages_summary_by_user_by_event_name performance_schema USER def performance_schema events_stages_summary_by_user_by_event_name performance_schema USER def performance_schema events_stages_summary_global_by_event_name performance_schema PRIMARY def performance_schema events_statements_current performance_schema PRIMARY def performance_schema events_statements_current performance_schema PRIMARY def performance_schema events_statements_histogram_by_digest performance_schema SCHEMA_NAME def performance_schema events_statements_histogram_by_digest performance_schema SCHEMA_NAME def performance_schema events_statements_histogram_by_digest performance_schema SCHEMA_NAME def performance_schema events_statements_histogram_global performance_schema PRIMARY def performance_schema events_statements_history performance_schema PRIMARY def performance_schema events_statements_history performance_schema PRIMARY def performance_schema events_statements_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema events_statements_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema events_statements_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema events_statements_summary_by_digest performance_schema SCHEMA_NAME def performance_schema events_statements_summary_by_digest performance_schema SCHEMA_NAME def performance_schema events_statements_summary_by_host_by_event_name performance_schema HOST def performance_schema events_statements_summary_by_host_by_event_name performance_schema HOST def performance_schema events_statements_summary_by_program performance_schema PRIMARY def performance_schema events_statements_summary_by_program performance_schema PRIMARY def performance_schema events_statements_summary_by_program performance_schema PRIMARY def performance_schema events_statements_summary_by_thread_by_event_name performance_schema PRIMARY def performance_schema events_statements_summary_by_thread_by_event_name performance_schema PRIMARY def performance_schema events_statements_summary_by_user_by_event_name performance_schema USER def performance_schema events_statements_summary_by_user_by_event_name performance_schema USER def performance_schema events_statements_summary_global_by_event_name performance_schema PRIMARY def performance_schema events_transactions_current performance_schema PRIMARY def performance_schema events_transactions_current performance_schema PRIMARY def performance_schema events_transactions_history performance_schema PRIMARY def performance_schema events_transactions_history performance_schema PRIMARY def performance_schema events_transactions_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema events_transactions_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema events_transactions_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema events_transactions_summary_by_host_by_event_name performance_schema HOST def performance_schema events_transactions_summary_by_host_by_event_name performance_schema HOST def performance_schema events_transactions_summary_by_thread_by_event_name performance_schema PRIMARY def performance_schema events_transactions_summary_by_thread_by_event_name performance_schema PRIMARY def performance_schema events_transactions_summary_by_user_by_event_name performance_schema USER def performance_schema events_transactions_summary_by_user_by_event_name performance_schema USER def performance_schema events_transactions_summary_global_by_event_name performance_schema PRIMARY def performance_schema events_waits_current performance_schema PRIMARY def performance_schema events_waits_current performance_schema PRIMARY def performance_schema events_waits_history performance_schema PRIMARY def performance_schema events_waits_history performance_schema PRIMARY def performance_schema events_waits_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema events_waits_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema events_waits_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema events_waits_summary_by_host_by_event_name performance_schema HOST def performance_schema events_waits_summary_by_host_by_event_name performance_schema HOST def performance_schema events_waits_summary_by_instance performance_schema EVENT_NAME def performance_schema events_waits_summary_by_instance performance_schema PRIMARY def performance_schema events_waits_summary_by_thread_by_event_name performance_schema PRIMARY def performance_schema events_waits_summary_by_thread_by_event_name performance_schema PRIMARY def performance_schema events_waits_summary_by_user_by_event_name performance_schema USER def performance_schema events_waits_summary_by_user_by_event_name performance_schema USER def performance_schema events_waits_summary_global_by_event_name performance_schema PRIMARY def performance_schema file_instances performance_schema EVENT_NAME def performance_schema file_instances performance_schema PRIMARY def performance_schema file_summary_by_event_name performance_schema PRIMARY def performance_schema file_summary_by_instance performance_schema EVENT_NAME def performance_schema file_summary_by_instance performance_schema FILE_NAME def performance_schema file_summary_by_instance performance_schema PRIMARY def performance_schema global_status performance_schema PRIMARY def performance_schema global_variables performance_schema PRIMARY def performance_schema host_cache performance_schema HOST def performance_schema host_cache performance_schema PRIMARY def performance_schema hosts performance_schema HOST def performance_schema memory_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema memory_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema memory_summary_by_account_by_event_name performance_schema ACCOUNT def performance_schema memory_summary_by_host_by_event_name performance_schema HOST def performance_schema memory_summary_by_host_by_event_name performance_schema HOST def performance_schema memory_summary_by_thread_by_event_name performance_schema PRIMARY def performance_schema memory_summary_by_thread_by_event_name performance_schema PRIMARY def performance_schema memory_summary_by_user_by_event_name performance_schema USER def performance_schema memory_summary_by_user_by_event_name performance_schema USER def performance_schema memory_summary_global_by_event_name performance_schema PRIMARY def performance_schema metadata_locks performance_schema OBJECT_TYPE def performance_schema metadata_locks performance_schema OBJECT_TYPE def performance_schema metadata_locks performance_schema OBJECT_TYPE def performance_schema metadata_locks performance_schema OBJECT_TYPE def performance_schema metadata_locks performance_schema OWNER_THREAD_ID def performance_schema metadata_locks performance_schema OWNER_THREAD_ID def performance_schema metadata_locks performance_schema PRIMARY def performance_schema mutex_instances performance_schema LOCKED_BY_THREAD_ID def performance_schema mutex_instances performance_schema NAME def performance_schema mutex_instances performance_schema PRIMARY def performance_schema objects_summary_global_by_type performance_schema OBJECT def performance_schema objects_summary_global_by_type performance_schema OBJECT def performance_schema objects_summary_global_by_type performance_schema OBJECT def performance_schema persisted_variables performance_schema PRIMARY def performance_schema prepared_statements_instances performance_schema OWNER_OBJECT_TYPE def performance_schema prepared_statements_instances performance_schema OWNER_OBJECT_TYPE def performance_schema prepared_statements_instances performance_schema OWNER_OBJECT_TYPE def performance_schema prepared_statements_instances performance_schema OWNER_THREAD_ID def performance_schema prepared_statements_instances performance_schema OWNER_THREAD_ID def performance_schema prepared_statements_instances performance_schema PRIMARY def performance_schema prepared_statements_instances performance_schema STATEMENT_ID def performance_schema prepared_statements_instances performance_schema STATEMENT_NAME def performance_schema replication_applier_configuration performance_schema PRIMARY def performance_schema replication_applier_status performance_schema PRIMARY def performance_schema replication_applier_status_by_coordinator performance_schema PRIMARY def performance_schema replication_applier_status_by_coordinator performance_schema THREAD_ID def performance_schema replication_applier_status_by_worker performance_schema PRIMARY def performance_schema replication_applier_status_by_worker performance_schema PRIMARY def performance_schema replication_applier_status_by_worker performance_schema THREAD_ID def performance_schema replication_connection_configuration performance_schema PRIMARY def performance_schema replication_connection_status performance_schema PRIMARY def performance_schema replication_connection_status performance_schema THREAD_ID def performance_schema rwlock_instances performance_schema NAME def performance_schema rwlock_instances performance_schema PRIMARY def performance_schema rwlock_instances performance_schema WRITE_LOCKED_BY_THREAD_ID def performance_schema session_account_connect_attrs performance_schema PRIMARY def performance_schema session_account_connect_attrs performance_schema PRIMARY def performance_schema session_connect_attrs performance_schema PRIMARY def performance_schema session_connect_attrs performance_schema PRIMARY def performance_schema session_status performance_schema PRIMARY def performance_schema session_variables performance_schema PRIMARY def performance_schema setup_actors performance_schema PRIMARY def performance_schema setup_actors performance_schema PRIMARY def performance_schema setup_actors performance_schema PRIMARY def performance_schema setup_consumers performance_schema PRIMARY def performance_schema setup_instruments performance_schema PRIMARY def performance_schema setup_objects performance_schema OBJECT def performance_schema setup_objects performance_schema OBJECT def performance_schema setup_objects performance_schema OBJECT def performance_schema setup_threads performance_schema PRIMARY def performance_schema socket_instances performance_schema IP def performance_schema socket_instances performance_schema IP def performance_schema socket_instances performance_schema PRIMARY def performance_schema socket_instances performance_schema SOCKET_ID def performance_schema socket_instances performance_schema THREAD_ID def performance_schema socket_summary_by_event_name performance_schema PRIMARY def performance_schema socket_summary_by_instance performance_schema EVENT_NAME def performance_schema socket_summary_by_instance performance_schema PRIMARY def performance_schema status_by_account performance_schema ACCOUNT def performance_schema status_by_account performance_schema ACCOUNT def performance_schema status_by_account performance_schema ACCOUNT def performance_schema status_by_host performance_schema HOST def performance_schema status_by_host performance_schema HOST def performance_schema status_by_thread performance_schema PRIMARY def performance_schema status_by_thread performance_schema PRIMARY def performance_schema status_by_user performance_schema USER def performance_schema status_by_user performance_schema USER def performance_schema table_handles performance_schema OBJECT_TYPE def performance_schema table_handles performance_schema OBJECT_TYPE def performance_schema table_handles performance_schema OBJECT_TYPE def performance_schema table_handles performance_schema OWNER_THREAD_ID def performance_schema table_handles performance_schema OWNER_THREAD_ID def performance_schema table_handles performance_schema PRIMARY def performance_schema table_io_waits_summary_by_index_usage performance_schema OBJECT def performance_schema table_io_waits_summary_by_index_usage performance_schema OBJECT def performance_schema table_io_waits_summary_by_index_usage performance_schema OBJECT def performance_schema table_io_waits_summary_by_index_usage performance_schema OBJECT def performance_schema table_io_waits_summary_by_table performance_schema OBJECT def performance_schema table_io_waits_summary_by_table performance_schema OBJECT def performance_schema table_io_waits_summary_by_table performance_schema OBJECT def performance_schema table_lock_waits_summary_by_table performance_schema OBJECT def performance_schema table_lock_waits_summary_by_table performance_schema OBJECT def performance_schema table_lock_waits_summary_by_table performance_schema OBJECT def performance_schema threads performance_schema NAME def performance_schema threads performance_schema PRIMARY def performance_schema threads performance_schema PROCESSLIST_ACCOUNT def performance_schema threads performance_schema PROCESSLIST_ACCOUNT def performance_schema threads performance_schema PROCESSLIST_HOST def performance_schema threads performance_schema PROCESSLIST_ID def performance_schema threads performance_schema RESOURCE_GROUP def performance_schema threads performance_schema THREAD_OS_ID def performance_schema user_defined_functions performance_schema PRIMARY def performance_schema user_variables_by_thread performance_schema PRIMARY def performance_schema user_variables_by_thread performance_schema PRIMARY def performance_schema users performance_schema USER def performance_schema variables_by_thread performance_schema PRIMARY def performance_schema variables_by_thread performance_schema PRIMARY def sys sys_config sys PRIMARY #################################################################################### # Testcase 3.2.14.2 + 3.2.14.3: INFORMATION_SCHEMA.STATISTICS accessible information #################################################################################### DROP DATABASE IF EXISTS db_datadict; DROP DATABASE IF EXISTS db_datadict_2; CREATE DATABASE db_datadict; CREATE DATABASE db_datadict_2; DROP USER 'testuser1'@'localhost'; CREATE USER 'testuser1'@'localhost'; DROP USER 'testuser2'@'localhost'; CREATE USER 'testuser2'@'localhost'; CREATE TABLE db_datadict.t1 (f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)) ENGINE = ; CREATE TABLE db_datadict.t2 (f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)) ENGINE = ; CREATE TABLE db_datadict_2.t3 (f1 INT NOT NULL, f2 INT, f5 DATE, PRIMARY KEY(f1), INDEX f2f1_ind(f2,f1), UNIQUE(f5)) ENGINE = InnoDB; CREATE TABLE db_datadict_2.t4 (f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)) ENGINE = InnoDB; SELECT * FROM information_schema.statistics WHERE table_schema LIKE 'db_datadict%' ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IS_VISIBLE EXPRESSION def db_datadict t1 1 db_datadict f2_ind 1 f2 A 0 NULL NULL YES BTREE YES NULL def db_datadict t1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE YES NULL def db_datadict t2 1 db_datadict f2_ind 1 f2 A 0 NULL NULL YES BTREE YES NULL def db_datadict t2 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE YES NULL def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 A 0 NULL NULL YES BTREE YES NULL def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 A 0 NULL NULL BTREE YES NULL def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 A 0 NULL NULL YES BTREE YES NULL def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE YES NULL def db_datadict_2 t4 1 db_datadict_2 f2_ind 1 f2 A 0 NULL NULL YES BTREE YES NULL def db_datadict_2 t4 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE YES NULL SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO `testuser1`@`localhost` SHOW GRANTS FOR 'testuser2'@'localhost'; Grants for testuser2@localhost GRANT USAGE ON *.* TO `testuser2`@`localhost` # Establish connection testuser1 (user=testuser1) SELECT * FROM information_schema.statistics WHERE table_schema LIKE 'db_datadict%' ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IS_VISIBLE EXPRESSION SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT USAGE ON *.* TO `testuser1`@`localhost` SHOW GRANTS FOR 'testuser2'@'localhost'; ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'user' # Establish connection testuser2 (user=testuser2) SELECT * FROM information_schema.statistics WHERE table_schema LIKE 'db_datadict%' ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IS_VISIBLE EXPRESSION SHOW GRANTS FOR 'testuser1'@'localhost'; ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 'user' SHOW GRANTS FOR 'testuser2'@'localhost'; Grants for testuser2@localhost GRANT USAGE ON *.* TO `testuser2`@`localhost` # Switch to connection default GRANT SELECT ON db_datadict.t1 TO 'testuser1'@'localhost' WITH GRANT OPTION; GRANT SELECT(f1,f5) ON db_datadict_2.t3 TO 'testuser1'@'localhost'; SELECT * FROM information_schema.statistics WHERE table_schema LIKE 'db_datadict%' ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IS_VISIBLE EXPRESSION def db_datadict t1 1 db_datadict f2_ind 1 f2 A 0 NULL NULL YES BTREE YES NULL def db_datadict t1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE YES NULL def db_datadict t2 1 db_datadict f2_ind 1 f2 A 0 NULL NULL YES BTREE YES NULL def db_datadict t2 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE YES NULL def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 A 0 NULL NULL YES BTREE YES NULL def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 A 0 NULL NULL BTREE YES NULL def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 A 0 NULL NULL YES BTREE YES NULL def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE YES NULL def db_datadict_2 t4 1 db_datadict_2 f2_ind 1 f2 A 0 NULL NULL YES BTREE YES NULL def db_datadict_2 t4 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE YES NULL SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT SELECT (`f1`, `f5`) ON `db_datadict_2`.`t3` TO `testuser1`@`localhost` GRANT SELECT ON `db_datadict`.`t1` TO `testuser1`@`localhost` WITH GRANT OPTION GRANT USAGE ON *.* TO `testuser1`@`localhost` SHOW GRANTS FOR 'testuser2'@'localhost'; Grants for testuser2@localhost GRANT USAGE ON *.* TO `testuser2`@`localhost` # Switch to connection testuser1 SELECT * FROM information_schema.statistics WHERE table_schema LIKE 'db_datadict%' ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IS_VISIBLE EXPRESSION def db_datadict t1 1 db_datadict f2_ind 1 f2 A 0 NULL NULL YES BTREE YES NULL def db_datadict t1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE YES NULL def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 A 0 NULL NULL YES BTREE YES NULL def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 A 0 NULL NULL BTREE YES NULL def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 A 0 NULL NULL YES BTREE YES NULL def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE YES NULL SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT SELECT (`f1`, `f5`) ON `db_datadict_2`.`t3` TO `testuser1`@`localhost` GRANT SELECT ON `db_datadict`.`t1` TO `testuser1`@`localhost` WITH GRANT OPTION GRANT USAGE ON *.* TO `testuser1`@`localhost` SHOW GRANTS FOR 'testuser2'@'localhost'; ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'user' # Switch to connection testuser2 SELECT * FROM information_schema.statistics WHERE table_schema LIKE 'db_datadict%' ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IS_VISIBLE EXPRESSION SHOW GRANTS FOR 'testuser1'@'localhost'; ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 'user' SHOW GRANTS FOR 'testuser2'@'localhost'; Grants for testuser2@localhost GRANT USAGE ON *.* TO `testuser2`@`localhost` # Switch to connection default REVOKE SELECT,GRANT OPTION ON db_datadict.t1 FROM 'testuser1'@'localhost'; SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT SELECT (`f1`, `f5`) ON `db_datadict_2`.`t3` TO `testuser1`@`localhost` GRANT USAGE ON *.* TO `testuser1`@`localhost` # Switch to connection testuser1 SELECT * FROM information_schema.statistics WHERE table_schema LIKE 'db_datadict%' ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IS_VISIBLE EXPRESSION def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 A 0 NULL NULL YES BTREE YES NULL def db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 A 0 NULL NULL BTREE YES NULL def db_datadict_2 t3 0 db_datadict_2 f5 1 f5 A 0 NULL NULL YES BTREE YES NULL def db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE YES NULL SHOW GRANTS FOR 'testuser1'@'localhost'; Grants for testuser1@localhost GRANT SELECT (`f1`, `f5`) ON `db_datadict_2`.`t3` TO `testuser1`@`localhost` GRANT USAGE ON *.* TO `testuser1`@`localhost` # Switch to connection default and close connections testuser1, testuser2 DROP USER 'testuser1'@'localhost'; DROP USER 'testuser2'@'localhost'; DROP DATABASE db_datadict; DROP DATABASE db_datadict_2; ######################################################################### # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.STATISTICS modifications ######################################################################### DROP TABLE IF EXISTS test.t1_my_table; DROP DATABASE IF EXISTS db_datadict; CREATE DATABASE db_datadict; CREATE TABLE test.t1_1 (f1 BIGINT, f2 TEXT, f2x TEXT, f3 CHAR(10), f3x CHAR(10), f4 BIGINT, f4x BIGINT, f5 POINT, f5x POINT NOT NULL) DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ENGINE = ; CREATE TABLE test.t1_2 (f1 BIGINT, f2 BIGINT) ENGINE = ; SELECT table_name FROM information_schema.statistics WHERE table_name LIKE 't1_%'; TABLE_NAME ALTER TABLE test.t1_1 ADD PRIMARY KEY (f1,f3); SELECT * FROM information_schema.statistics WHERE table_name LIKE 't1_%' ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IS_VISIBLE EXPRESSION def test t1_1 0 test PRIMARY 1 f1 A 0 NULL NULL BTREE YES NULL def test t1_1 0 test PRIMARY 2 f3 A 0 NULL NULL BTREE YES NULL ALTER TABLE test.t1_1 DROP PRIMARY KEY; SELECT table_name FROM information_schema.statistics WHERE table_name LIKE 't1_%'; TABLE_NAME ALTER TABLE test.t1_1 ADD PRIMARY KEY (f1); SELECT * FROM information_schema.statistics WHERE table_name LIKE 't1_%'; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IS_VISIBLE EXPRESSION def test t1_1 0 test PRIMARY 1 f1 A 0 NULL NULL BTREE YES NULL ALTER TABLE test.t1_1 ADD INDEX (f4); CREATE INDEX f3_f1 ON test.t1_1 (f3,f1); CREATE UNIQUE INDEX f4x_uni ON test.t1_1 (f4x); CREATE INDEX f2_hash USING HASH ON test.t1_2 (f2); Warnings: Note 3502 This storage engine does not support the HASH index algorithm, storage engine default was used instead. CREATE INDEX f1_idx ON test.t1_2 (f1) COMMENT = 'COMMENT'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 'COMMENT'' at line 1 CREATE INDEX not_null ON test.t1_1 (f3x); CREATE INDEX f2_prefix ON test.t1_1 (f2(20)); SELECT * FROM information_schema.statistics WHERE table_name LIKE 't1_%' AND index_name <> 'PRIMARY' ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IS_VISIBLE EXPRESSION def test t1_1 1 test f2_prefix 1 f2 A 0 20 NULL YES BTREE YES NULL def test t1_1 1 test f3_f1 1 f3 A 0 NULL NULL BTREE YES NULL def test t1_1 1 test f3_f1 2 f1 A 0 NULL NULL BTREE YES NULL def test t1_1 1 test f4 1 f4 A 0 NULL NULL YES BTREE YES NULL def test t1_1 0 test f4x_uni 1 f4x A 0 NULL NULL YES BTREE YES NULL def test t1_1 1 test not_null 1 f3x A 0 NULL NULL YES BTREE YES NULL def test t1_2 1 test f2_hash 1 f2 A 0 NULL NULL YES BTREE YES NULL DROP TABLE test.t1_2; SELECT DISTINCT table_name FROM information_schema.statistics WHERE table_name = 't1_1'; TABLE_NAME t1_1 RENAME TABLE test.t1_1 TO test.t1_1x; SELECT DISTINCT table_name FROM information_schema.statistics WHERE table_name = 't1_1x'; TABLE_NAME t1_1x SELECT DISTINCT table_schema,table_name FROM information_schema.statistics WHERE table_name LIKE 't1_1%'; TABLE_SCHEMA TABLE_NAME test t1_1x RENAME TABLE test.t1_1x TO db_datadict.t1_1x; SELECT DISTINCT table_schema,table_name FROM information_schema.statistics WHERE table_name LIKE 't1_1%'; TABLE_SCHEMA TABLE_NAME db_datadict t1_1x SELECT DISTINCT table_name FROM information_schema.statistics WHERE table_name = 't1_1x'; TABLE_NAME t1_1x DROP TABLE db_datadict.t1_1x; SELECT DISTINCT table_name FROM information_schema.statistics WHERE table_name = 't1_1x'; TABLE_NAME CREATE TEMPORARY TABLE test.t1_1x (PRIMARY KEY(f1,f2)) ENGINE = AS SELECT 1 AS f1, 2 AS f2; SELECT * FROM information_schema.statistics WHERE table_name = 't1_1x'; DROP TEMPORARY TABLE test.t1_1x; CREATE TABLE db_datadict.t1_1x (PRIMARY KEY(f1)) ENGINE = AS SELECT 1 AS f1, 2 AS f2; SELECT table_name FROM information_schema.statistics WHERE table_name = 't1_1x'; TABLE_NAME t1_1x DROP DATABASE db_datadict; SELECT table_name FROM information_schema.statistics WHERE table_name = 't1_1x'; 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 = ; INSERT INTO information_schema.statistics SELECT * FROM information_schema.statistics; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' UPDATE information_schema.statistics SET table_schema = 'test' WHERE table_name = 't1'; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' DELETE FROM information_schema.statistics WHERE table_name = 't1'; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' TRUNCATE information_schema.statistics; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' CREATE INDEX my_idx_on_statistics ON information_schema.statistics(table_schema); ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ALTER TABLE information_schema.statistics DROP PRIMARY KEY; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ALTER TABLE information_schema.statistics ADD f1 INT; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' DROP TABLE information_schema.statistics; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ALTER TABLE information_schema.statistics RENAME db_datadict.statistics; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ALTER TABLE information_schema.statistics RENAME information_schema.xstatistics; ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' DROP DATABASE db_datadict;