#At bzr+ssh://bk-internal.mysql.com/bzrroot/server/mysql-6.0-sea
2691 Sergey Vojtovich 2008-08-02
WL#2511 - Add a new table to the Information Schema for TABLESPACE's
Implemented a new INFORMATION_SCHEMA table, which is intended to
provide information about tablespaces.
modified:
mysql-test/r/information_schema.result
mysql-test/r/information_schema_db.result
mysql-test/r/mysqlshow.result
mysql-test/suite/funcs_1/r/is_columns_is.result
mysql-test/suite/funcs_1/r/is_tables_is.result
sql/handler.h
sql/mysql_priv.h
sql/sql_show.cc
per-file messages:
mysql-test/r/information_schema.result
Updated test result according to WL#2511. With this WL
I_S has new TABLESPACES schema.
mysql-test/r/information_schema_db.result
Updated test result according to WL#2511. With this WL
I_S has new TABLESPACES schema.
mysql-test/r/mysqlshow.result
Updated test result according to WL#2511. With this WL
I_S has new TABLESPACES schema.
mysql-test/suite/funcs_1/r/is_columns_is.result
Updated test result according to WL#2511. With this WL
I_S has new TABLESPACES schema.
mysql-test/suite/funcs_1/r/is_tables_is.result
Updated test result according to WL#2511. With this WL
I_S has new TABLESPACES schema.
sql/handler.h
Added SCH_TABLESPACES to enum_schema_tables.
sql/mysql_priv.h
Added human readable definitions for I_S.TABLESPACES field
identifiers.
sql/sql_show.cc
Added I_S.TABLESPACES schema. The code which handles I_S.FILES
is capable to handle I_S.TABLESPACES as well. Thus we reuse
this code and let functions/variables have more generic names.
=== modified file 'mysql-test/r/information_schema.result'
--- a/mysql-test/r/information_schema.result 2008-06-30 08:43:39 +0000
+++ b/mysql-test/r/information_schema.result 2008-08-02 18:22:09 +0000
@@ -63,6 +63,7 @@ SESSION_STATUS
SESSION_VARIABLES
STATISTICS
TABLES
+TABLESPACES
TABLE_CONSTRAINTS
TABLE_PRIVILEGES
TRIGGERS
@@ -103,6 +104,7 @@ inner join information_schema.TABLES v2
where v1.c like "t%";
c table_name
TABLES TABLES
+TABLESPACES TABLESPACES
TABLE_CONSTRAINTS TABLE_CONSTRAINTS
TABLE_PRIVILEGES TABLE_PRIVILEGES
TRIGGERS TRIGGERS
@@ -122,6 +124,7 @@ left join information_schema.TABLES v2 o
where v1.c like "t%";
c table_name
TABLES TABLES
+TABLESPACES TABLESPACES
TABLE_CONSTRAINTS TABLE_CONSTRAINTS
TABLE_PRIVILEGES TABLE_PRIVILEGES
TRIGGERS TRIGGERS
@@ -141,6 +144,7 @@ right join information_schema.TABLES v2
where v1.c like "t%";
c table_name
TABLES TABLES
+TABLESPACES TABLESPACES
TABLE_CONSTRAINTS TABLE_CONSTRAINTS
TABLE_PRIVILEGES TABLE_PRIVILEGES
TRIGGERS TRIGGERS
@@ -627,6 +631,7 @@ COLLATIONS SYSTEM VIEW MEMORY
show tables from information_schema like "T%";
Tables_in_information_schema (T%)
TABLES
+TABLESPACES
TABLE_CONSTRAINTS
TABLE_PRIVILEGES
TRIGGERS
@@ -636,6 +641,7 @@ use information_schema;
show full tables like "T%";
Tables_in_information_schema (T%) Table_type
TABLES SYSTEM VIEW
+TABLESPACES SYSTEM VIEW
TABLE_CONSTRAINTS SYSTEM VIEW
TABLE_PRIVILEGES SYSTEM VIEW
TRIGGERS SYSTEM VIEW
@@ -648,6 +654,7 @@ use information_schema;
show tables like "T%";
Tables_in_information_schema (T%)
TABLES
+TABLESPACES
TABLE_CONSTRAINTS
TABLE_PRIVILEGES
TRIGGERS
@@ -862,7 +869,7 @@ flush privileges;
SELECT table_schema, count(*) FROM information_schema.TABLES
WHERE table_name NOT LIKE 'ndb_%' AND table_name NOT LIKE 'falcon%' GROUP BY TABLE_SCHEMA;
table_schema count(*)
-information_schema 29
+information_schema 30
mysql 24
create table t1 (i int, j int);
create trigger trg1 before insert on t1 for each row
@@ -1325,6 +1332,7 @@ SESSION_STATUS information_schema.SESSIO
SESSION_VARIABLES information_schema.SESSION_VARIABLES 1
STATISTICS information_schema.STATISTICS 1
TABLES information_schema.TABLES 1
+TABLESPACES information_schema.TABLESPACES 1
TABLE_CONSTRAINTS information_schema.TABLE_CONSTRAINTS 1
TABLE_PRIVILEGES information_schema.TABLE_PRIVILEGES 1
TRIGGERS information_schema.TRIGGERS 1
=== modified file 'mysql-test/r/information_schema_db.result'
--- a/mysql-test/r/information_schema_db.result 2008-04-19 20:34:56 +0000
+++ b/mysql-test/r/information_schema_db.result 2008-08-02 18:22:09 +0000
@@ -29,6 +29,7 @@ SESSION_STATUS
SESSION_VARIABLES
STATISTICS
TABLES
+TABLESPACES
TABLE_CONSTRAINTS
TABLE_PRIVILEGES
TRIGGERS
@@ -37,6 +38,7 @@ VIEWS
show tables from INFORMATION_SCHEMA like 'T%';
Tables_in_information_schema (T%)
TABLES
+TABLESPACES
TABLE_CONSTRAINTS
TABLE_PRIVILEGES
TRIGGERS
=== modified file 'mysql-test/r/mysqlshow.result'
--- a/mysql-test/r/mysqlshow.result 2008-04-19 20:34:56 +0000
+++ b/mysql-test/r/mysqlshow.result 2008-08-02 18:22:09 +0000
@@ -80,6 +80,7 @@ Database: information_schema Wildcard:
| Tables |
+-------------------+
| TABLES |
+| TABLESPACES |
| TABLE_CONSTRAINTS |
| TABLE_PRIVILEGES |
+-------------------+
@@ -88,6 +89,7 @@ Database: INFORMATION_SCHEMA Wildcard:
| Tables |
+-------------------+
| TABLES |
+| TABLESPACES |
| TABLE_CONSTRAINTS |
| TABLE_PRIVILEGES |
+-------------------+
=== modified file 'mysql-test/suite/funcs_1/r/is_columns_is.result'
--- a/mysql-test/suite/funcs_1/r/is_columns_is.result 2008-04-30 03:14:44 +0000
+++ b/mysql-test/suite/funcs_1/r/is_columns_is.result 2008-08-02 18:22:09 +0000
@@ -277,6 +277,15 @@ NULL information_schema TABLES TABLE_SCH
NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select Default Default
NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select Default Default
+NULL information_schema TABLESPACES AUTOEXTEND_SIZE 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select Default Default
+NULL information_schema TABLESPACES ENGINE 2 NO varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
+NULL information_schema TABLESPACES EXTENT_SIZE 5 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select Default Default
+NULL information_schema TABLESPACES LOGFILE_GROUP_NAME 4 NULL YES varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
+NULL information_schema TABLESPACES MAXIMUM_SIZE 7 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select Default Default
+NULL information_schema TABLESPACES NODEGROUP_ID 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) unsigned select Default Default
+NULL information_schema TABLESPACES TABLESPACE_COMMENT 9 NULL YES varchar 2048 8192 NULL NULL utf8 utf8_general_ci varchar(2048) select Default Default
+NULL information_schema TABLESPACES TABLESPACE_NAME 1 NO varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
+NULL information_schema TABLESPACES TABLESPACE_TYPE 3 NULL YES varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 512 2048 NULL NULL utf8 utf8_general_ci varchar(512) select Default Default
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 256 NULL NULL utf8 utf8_general_ci varchar(64) select Default Default
@@ -657,6 +666,15 @@ NULL information_schema TABLES CHECK_TIM
NULL information_schema TABLES CHECKSUM bigint NULL NULL NULL NULL bigint(21) unsigned
4.0000 information_schema TABLES CREATE_OPTIONS varchar 255 1020 utf8 utf8_general_ci varchar(255)
4.0000 information_schema TABLES TABLE_COMMENT varchar 2048 8192 utf8 utf8_general_ci varchar(2048)
+4.0000 information_schema TABLESPACES TABLESPACE_NAME varchar 64 256 utf8 utf8_general_ci varchar(64)
+4.0000 information_schema TABLESPACES ENGINE varchar 64 256 utf8 utf8_general_ci varchar(64)
+4.0000 information_schema TABLESPACES TABLESPACE_TYPE varchar 64 256 utf8 utf8_general_ci varchar(64)
+4.0000 information_schema TABLESPACES LOGFILE_GROUP_NAME varchar 64 256 utf8 utf8_general_ci varchar(64)
+NULL information_schema TABLESPACES EXTENT_SIZE bigint NULL NULL NULL NULL bigint(21) unsigned
+NULL information_schema TABLESPACES AUTOEXTEND_SIZE bigint NULL NULL NULL NULL bigint(21) unsigned
+NULL information_schema TABLESPACES MAXIMUM_SIZE bigint NULL NULL NULL NULL bigint(21) unsigned
+NULL information_schema TABLESPACES NODEGROUP_ID bigint NULL NULL NULL NULL bigint(21) unsigned
+4.0000 information_schema TABLESPACES TABLESPACE_COMMENT varchar 2048 8192 utf8 utf8_general_ci varchar(2048)
4.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar 512 2048 utf8 utf8_general_ci varchar(512)
4.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar 64 256 utf8 utf8_general_ci varchar(64)
4.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME varchar 64 256 utf8 utf8_general_ci varchar(64)
=== modified file 'mysql-test/suite/funcs_1/r/is_tables_is.result'
--- a/mysql-test/suite/funcs_1/r/is_tables_is.result 2008-07-04 08:28:36 +0000
+++ b/mysql-test/suite/funcs_1/r/is_tables_is.result 2008-08-02 18:22:09 +0000
@@ -544,6 +544,29 @@ user_comment
Separator -----------------------------------------------------
TABLE_CATALOG NULL
TABLE_SCHEMA information_schema
+TABLE_NAME TABLESPACES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS #TBLR#
+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 utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT #TC#
+user_comment
+Separator -----------------------------------------------------
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
TABLE_NAME TABLE_CONSTRAINTS
TABLE_TYPE SYSTEM VIEW
ENGINE MEMORY
@@ -1205,6 +1228,29 @@ user_comment
Separator -----------------------------------------------------
TABLE_CATALOG NULL
TABLE_SCHEMA information_schema
+TABLE_NAME TABLESPACES
+TABLE_TYPE SYSTEM VIEW
+ENGINE MEMORY
+VERSION 10
+ROW_FORMAT Fixed
+TABLE_ROWS #TBLR#
+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 utf8_general_ci
+CHECKSUM NULL
+CREATE_OPTIONS #CO#
+TABLE_COMMENT #TC#
+user_comment
+Separator -----------------------------------------------------
+TABLE_CATALOG NULL
+TABLE_SCHEMA information_schema
TABLE_NAME TABLE_CONSTRAINTS
TABLE_TYPE SYSTEM VIEW
ENGINE MEMORY
=== modified file 'sql/handler.h'
--- a/sql/handler.h 2008-07-31 18:41:00 +0000
+++ b/sql/handler.h 2008-08-02 18:22:09 +0000
@@ -605,6 +605,7 @@ enum enum_schema_tables
SCH_STATISTICS,
SCH_STATUS,
SCH_TABLES,
+ SCH_TABLESPACES,
SCH_TABLE_CONSTRAINTS,
SCH_TABLE_NAMES,
SCH_TABLE_PRIVILEGES,
=== modified file 'sql/mysql_priv.h'
--- a/sql/mysql_priv.h 2008-07-26 16:38:20 +0000
+++ b/sql/mysql_priv.h 2008-08-02 18:22:09 +0000
@@ -2557,6 +2557,17 @@ inline void kill_delayed_threads(void) {
#define IS_FILES_CHECKSUM 35
#define IS_FILES_STATUS 36
#define IS_FILES_EXTRA 37
+
+#define IS_TABLESPACES_TABLESPACE_NAME 0
+#define IS_TABLESPACES_ENGINE 1
+#define IS_TABLESPACES_TABLESPACE_TYPE 2
+#define IS_TABLESPACES_LOGFILE_GROUP_NAME 3
+#define IS_TABLESPACES_EXTENT_SIZE 4
+#define IS_TABLESPACES_AUTOEXTEND_SIZE 5
+#define IS_TABLESPACES_MAXIMUM_SIZE 6
+#define IS_TABLESPACES_NODEGROUP_ID 7
+#define IS_TABLESPACES_TABLESPACE_COMMENT 8
+
void init_fill_schema_files_row(TABLE* table);
bool schema_table_store_record(THD *thd, TABLE *table);
=== modified file 'sql/sql_show.cc'
--- a/sql/sql_show.cc 2008-07-31 18:41:00 +0000
+++ b/sql/sql_show.cc 2008-08-02 18:22:09 +0000
@@ -6308,17 +6308,17 @@ bool get_schema_tables_result(JOIN *join
DBUG_RETURN(result);
}
-struct run_hton_fill_schema_files_args
+struct run_hton_fill_schema_table_args
{
TABLE_LIST *tables;
COND *cond;
};
-static my_bool run_hton_fill_schema_files(THD *thd, plugin_ref plugin,
+static my_bool run_hton_fill_schema_table(THD *thd, plugin_ref plugin,
void *arg)
{
- struct run_hton_fill_schema_files_args *args=
- (run_hton_fill_schema_files_args *) arg;
+ struct run_hton_fill_schema_table_args *args=
+ (run_hton_fill_schema_table_args *) arg;
handlerton *hton= plugin_data(plugin, handlerton *);
if(hton->fill_is_table && hton->state == SHOW_OPTION_YES)
hton->fill_is_table(hton, thd, args->tables, args->cond,
@@ -6326,15 +6326,15 @@ static my_bool run_hton_fill_schema_file
return false;
}
-int fill_schema_files(THD *thd, TABLE_LIST *tables, COND *cond)
+int hton_fill_schema_table(THD *thd, TABLE_LIST *tables, COND *cond)
{
- DBUG_ENTER("fill_schema_files");
+ DBUG_ENTER("hton_fill_schema_table");
- struct run_hton_fill_schema_files_args args;
+ struct run_hton_fill_schema_table_args args;
args.tables= tables;
args.cond= cond;
- plugin_foreach(thd, run_hton_fill_schema_files,
+ plugin_foreach(thd, run_hton_fill_schema_table,
MYSQL_STORAGE_ENGINE_PLUGIN, &args);
DBUG_RETURN(0);
@@ -6940,6 +6940,29 @@ ST_FIELD_INFO parameters_fields_info[]=
};
+ST_FIELD_INFO tablespaces_fields_info[]=
+{
+ {"TABLESPACE_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0,
+ SKIP_OPEN_TABLE},
+ {"ENGINE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE},
+ {"TABLESPACE_TYPE", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, MY_I_S_MAYBE_NULL,
+ 0, SKIP_OPEN_TABLE},
+ {"LOGFILE_GROUP_NAME", NAME_CHAR_LEN, MYSQL_TYPE_STRING, 0, MY_I_S_MAYBE_NULL,
+ 0, SKIP_OPEN_TABLE},
+ {"EXTENT_SIZE", 21, MYSQL_TYPE_LONGLONG, 0,
+ MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED, 0, SKIP_OPEN_TABLE},
+ {"AUTOEXTEND_SIZE", 21, MYSQL_TYPE_LONGLONG, 0,
+ MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED, 0, SKIP_OPEN_TABLE},
+ {"MAXIMUM_SIZE", 21, MYSQL_TYPE_LONGLONG, 0,
+ MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED, 0, SKIP_OPEN_TABLE},
+ {"NODEGROUP_ID", 21, MYSQL_TYPE_LONGLONG, 0,
+ MY_I_S_MAYBE_NULL | MY_I_S_UNSIGNED, 0, SKIP_OPEN_TABLE},
+ {"TABLESPACE_COMMENT", 2048, MYSQL_TYPE_STRING, 0, MY_I_S_MAYBE_NULL, 0,
+ SKIP_OPEN_TABLE},
+ {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, SKIP_OPEN_TABLE}
+};
+
+
/*
Description of ST_FIELD_INFO in table.h
@@ -6970,7 +6993,7 @@ ST_SCHEMA_TABLE schema_tables[]=
0, make_old_format, 0, -1, -1, 0, 0},
#endif
{"FILES", files_fields_info, create_schema_table,
- fill_schema_files, 0, 0, -1, -1, 0, 0},
+ hton_fill_schema_table, 0, 0, -1, -1, 0, 0},
{"GLOBAL_STATUS", variables_fields_info, create_schema_table,
fill_status, make_old_format, 0, -1, -1, 0, 0},
{"GLOBAL_VARIABLES", variables_fields_info, create_schema_table,
@@ -7012,6 +7035,8 @@ ST_SCHEMA_TABLE schema_tables[]=
{"TABLES", tables_fields_info, create_schema_table,
get_all_tables, make_old_format, get_schema_tables_record, 1, 2, 0,
OPTIMIZE_I_S_TABLE},
+ {"TABLESPACES", tablespaces_fields_info, create_schema_table,
+ hton_fill_schema_table, 0, 0, -1, -1, 0, 0},
{"TABLE_CONSTRAINTS", table_constraints_fields_info, create_schema_table,
get_all_tables, 0, get_schema_constraints_record, 3, 4, 0, OPEN_TABLE_ONLY},
{"TABLE_NAMES", table_names_fields_info, create_schema_table,
| Thread |
|---|
| • bzr commit into mysql-6.0-sea branch (svoj:2691) WL#2511 | Sergey Vojtovich | 2 Aug |