List:Commits« Previous MessageNext Message »
From:Sergey Vojtovich Date:August 7 2008 12:58pm
Subject:bzr commit into mysql-6.0-sea branch (svoj:2692) WL#4483
View as plain text  
#At bzr+ssh://bk-internal.mysql.com/bzrroot/server/mysql-6.0-sea

 2692 Sergey Vojtovich	2008-08-07
      WL#4483 - Falcon: fill INFORMATION_SCHEMA.TABLESPACES
      
      Fill I_S.TABLESPACES with information about Falcon tablespaces. Remove
      I_S.FALCON_TABLESPACES. Make backup use I_S.TABLESPACES instead of
      I_S.FALCON_TABLESPACES.
modified:
  mysql-test/suite/funcs_1/r/is_columns_is_falcon.result
  mysql-test/suite/funcs_1/r/is_tables_is_falcon.result
  sql/handler.h
  sql/si_objects.cc
  storage/falcon/InfoTable.cpp
  storage/falcon/InfoTable.h
  storage/falcon/TableSpaceManager.cpp
  storage/falcon/ha_falcon.cpp
  storage/falcon/ha_falcon.h

per-file messages:
  mysql-test/suite/funcs_1/r/is_columns_is_falcon.result
    Updated test result: there is no I_S.FALCON_TABLESPACES anymore.
  mysql-test/suite/funcs_1/r/is_tables_is_falcon.result
    Updated test result: there is no I_S.FALCON_TABLESPACES anymore.
  sql/handler.h
    Removed enum entry for I_S.FALCON_TABLESPACES.
  sql/si_objects.cc
    Switch from I_S.FALCON_TABLESPACES to I_S.TABLESPACES.
  storage/falcon/InfoTable.cpp
    Added methods to set/unset field NULL flag.
  storage/falcon/InfoTable.h
    Added methods to set/unset field NULL flag.
  storage/falcon/TableSpaceManager.cpp
    Changed tablespace type names according to WL#4483.
    Reuse I_S.FALCON_TABLESPACES code to fill I_S.TABLESPACES
    and fill fields properly.
  storage/falcon/ha_falcon.cpp
    Removed I_S.FALCON_TABLESPACES code.
    Added code to fill I_S.TABLESPACES.
  storage/falcon/ha_falcon.h
    Removed I_S.FALCON_TABLESPACES code.
    Added code to fill I_S.TABLESPACES.
=== modified file 'mysql-test/suite/funcs_1/r/is_columns_is_falcon.result'
--- a/mysql-test/suite/funcs_1/r/is_columns_is_falcon.result	2008-04-28 20:09:51 +0000
+++ b/mysql-test/suite/funcs_1/r/is_columns_is_falcon.result	2008-08-07 12:58:45 +0000
@@ -41,9 +41,6 @@ NULL	information_schema	FALCON_TABLES	PA
 NULL	information_schema	FALCON_TABLES	SCHEMA_NAME	1		NO	varchar	127	508	NULL	NULL	utf8	utf8_general_ci	varchar(127)			select		Default	Default
 NULL	information_schema	FALCON_TABLES	TABLESPACE	4		NO	varchar	127	508	NULL	NULL	utf8	utf8_general_ci	varchar(127)			select		Default	Default
 NULL	information_schema	FALCON_TABLES	TABLE_NAME	2		NO	varchar	127	508	NULL	NULL	utf8	utf8_general_ci	varchar(127)			select		Default	Default
-NULL	information_schema	FALCON_TABLESPACES	COMMENT	3		NO	varchar	127	508	NULL	NULL	utf8	utf8_general_ci	varchar(127)			select		Default	Default
-NULL	information_schema	FALCON_TABLESPACES	TABLESPACE_NAME	1		NO	varchar	127	508	NULL	NULL	utf8	utf8_general_ci	varchar(127)			select		Default	Default
-NULL	information_schema	FALCON_TABLESPACES	TYPE	2		NO	varchar	127	508	NULL	NULL	utf8	utf8_general_ci	varchar(127)			select		Default	Default
 NULL	information_schema	FALCON_TABLESPACE_FILES	FILE_ID	3	0	NO	int	NULL	NULL	10	0	NULL	NULL	int(127)			select		Default	Default
 NULL	information_schema	FALCON_TABLESPACE_FILES	FILE_NAME	4		NO	varchar	127	508	NULL	NULL	utf8	utf8_general_ci	varchar(127)			select		Default	Default
 NULL	information_schema	FALCON_TABLESPACE_FILES	TABLESPACE_NAME	1		NO	varchar	127	508	NULL	NULL	utf8	utf8_general_ci	varchar(127)			select		Default	Default
@@ -166,9 +163,6 @@ NULL	information_schema	FALCON_SYSTEM_ME
 4.0000	information_schema	FALCON_TABLES	PARTITION	varchar	127	508	utf8	utf8_general_ci	varchar(127)
 4.0000	information_schema	FALCON_TABLES	TABLESPACE	varchar	127	508	utf8	utf8_general_ci	varchar(127)
 4.0000	information_schema	FALCON_TABLES	INTERNAL_NAME	varchar	127	508	utf8	utf8_general_ci	varchar(127)
-4.0000	information_schema	FALCON_TABLESPACES	TABLESPACE_NAME	varchar	127	508	utf8	utf8_general_ci	varchar(127)
-4.0000	information_schema	FALCON_TABLESPACES	TYPE	varchar	127	508	utf8	utf8_general_ci	varchar(127)
-4.0000	information_schema	FALCON_TABLESPACES	COMMENT	varchar	127	508	utf8	utf8_general_ci	varchar(127)
 4.0000	information_schema	FALCON_TABLESPACE_FILES	TABLESPACE_NAME	varchar	127	508	utf8	utf8_general_ci	varchar(127)
 4.0000	information_schema	FALCON_TABLESPACE_FILES	TYPE	varchar	127	508	utf8	utf8_general_ci	varchar(127)
 NULL	information_schema	FALCON_TABLESPACE_FILES	FILE_ID	int	NULL	NULL	NULL	NULL	int(127)

=== modified file 'mysql-test/suite/funcs_1/r/is_tables_is_falcon.result'
--- a/mysql-test/suite/funcs_1/r/is_tables_is_falcon.result	2008-06-19 18:56:48 +0000
+++ b/mysql-test/suite/funcs_1/r/is_tables_is_falcon.result	2008-08-07 12:58:45 +0000
@@ -176,29 +176,6 @@ user_comment	
 Separator	-----------------------------------------------------
 TABLE_CATALOG	NULL
 TABLE_SCHEMA	information_schema
-TABLE_NAME	FALCON_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	FALCON_TABLESPACE_FILES
 TABLE_TYPE	SYSTEM VIEW
 ENGINE	MEMORY
@@ -492,29 +469,6 @@ user_comment	
 Separator	-----------------------------------------------------
 TABLE_CATALOG	NULL
 TABLE_SCHEMA	information_schema
-TABLE_NAME	FALCON_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	FALCON_TABLESPACE_FILES
 TABLE_TYPE	SYSTEM VIEW
 ENGINE	MEMORY

=== modified file 'sql/handler.h'
--- a/sql/handler.h	2008-08-02 18:22:09 +0000
+++ b/sql/handler.h	2008-08-07 12:58:45 +0000
@@ -613,7 +613,6 @@ enum enum_schema_tables
   SCH_USER_PRIVILEGES,
   SCH_VARIABLES,
   SCH_VIEWS,
-  SCH_FALCON_TABLESPACES,
   SCH_FALCON_TABLESPACE_FILES
 };
 

=== modified file 'sql/si_objects.cc'
--- a/sql/si_objects.cc	2008-07-09 07:12:43 +0000
+++ b/sql/si_objects.cc	2008-08-07 12:58:45 +0000
@@ -1043,9 +1043,9 @@ bool InformationSchemaIterator::prepare_
     style fill methods nor does it use a wildcard condition.
   */
   switch (is_table_idx) {
-    case SCH_FALCON_TABLESPACES:
+    case SCH_TABLESPACES:
     {
-      st= find_schema_table(thd, "FALCON_TABLESPACES");
+      st= find_schema_table(thd, "TABLESPACES");
       *is_table= open_schema_table(thd, st, NULL);
       break;
     }
@@ -2797,7 +2797,7 @@ static bool find_tablespace_schema_row(T
     Attempt to locate the row in the tablespaces table.
     If found, proceed to the retrieving the data.
   */
-  is_table->field[0]->val_str(&found_ts_name);
+  is_table->field[IS_TABLESPACES_TABLESPACE_NAME]->val_str(&found_ts_name);
   while (!ret && found_ts_name.length() &&
     (strncasecmp(found_ts_name.ptr(), ts_name->ptr(), 
      ts_name->length()) != 0))
@@ -2805,7 +2805,7 @@ static bool find_tablespace_schema_row(T
     ret= ha->rnd_next(is_table->record[0]);
     found_ts_name.length(0); // reset the length of the string
     if (!ret)
-      is_table->field[0]->val_str(&found_ts_name);
+      is_table->field[IS_TABLESPACES_TABLESPACE_NAME]->val_str(&found_ts_name);
   }
   if (ret || (found_ts_name.length() == 0))
   {
@@ -2814,14 +2814,14 @@ static bool find_tablespace_schema_row(T
   }
 
   /*
-    TS name is in col 0 in FALCON_TABLESPACES
-    TS comment is in col 2 in FALCON_TABLESPACES
+    TS name is in col IS_TABLESPACES_TABLESPACE_NAME in TABLESPACES
+    TS comment is in col IS_TABLESPACES_TABLESPACE_COMMENT in TABLESPACES
     TS datafile is in col 3 in FALCON_TABLESPACE_FILES
   */
   switch (is_table_idx) {
-    case SCH_FALCON_TABLESPACES:
+    case SCH_TABLESPACES:
     {
-      is_table->field[2]->val_str(&data);
+      is_table->field[IS_TABLESPACES_TABLESPACE_COMMENT]->val_str(&data);
       comments->copy(data);
       break;
     }
@@ -2875,9 +2875,9 @@ static bool get_tablespace_from_schema(T
   DBUG_ENTER("obs::get_tablespace_from_schema()");
 
   /*
-    Locate the row in FALCON_TABLESPACES and get the comments.
+    Locate the row in TABLESPACES and get the comments.
   */
-  if (find_tablespace_schema_row(thd, SCH_FALCON_TABLESPACES, 
+  if (find_tablespace_schema_row(thd, SCH_TABLESPACES, 
       ts_name, &datafile, &comments))
     DBUG_RETURN(TRUE);
 

=== modified file 'storage/falcon/InfoTable.cpp'
--- a/storage/falcon/InfoTable.cpp	2007-09-20 15:44:25 +0000
+++ b/storage/falcon/InfoTable.cpp	2008-08-07 12:58:45 +0000
@@ -63,3 +63,13 @@ void InfoTableImpl::putString(int column
 {
 	table->field[column]->store(string, stringLength, charSetInfo);
 }
+
+void InfoTableImpl::setNull(int column)
+{
+	table->field[column]->set_null();
+}
+
+void InfoTableImpl::setNotNull(int column)
+{
+	table->field[column]->set_notnull();
+}

=== modified file 'storage/falcon/InfoTable.h'
--- a/storage/falcon/InfoTable.h	2007-09-20 15:44:25 +0000
+++ b/storage/falcon/InfoTable.h	2008-08-07 12:58:45 +0000
@@ -37,6 +37,8 @@ public:
     virtual void    putDouble(int column, double value) = 0;
     virtual void    putString(int column, const char *string) = 0;
     virtual void    putString(int column, unsigned int stringLength, const char *string) = 0;
+    virtual void    setNull(int column) = 0;
+    virtual void    setNotNull(int column) = 0;
 };
 
 class InfoTableImpl : public InfoTable
@@ -51,6 +53,8 @@ public:
     virtual void    putString(int column, const char *string);
     virtual void    putString(int column, unsigned int stringLength, const char *string);
     virtual void    putDouble(int column, double value);
+    virtual void    setNull(int column);
+    virtual void    setNotNull(int column);
     
     int             error;
     st_table        *table;

=== modified file 'storage/falcon/TableSpaceManager.cpp'
--- a/storage/falcon/TableSpaceManager.cpp	2008-07-09 19:23:23 +0000
+++ b/storage/falcon/TableSpaceManager.cpp	2008-08-07 12:58:45 +0000
@@ -500,12 +500,12 @@ JString TableSpaceManager::tableSpaceTyp
 	JString type;
 	
 	if (name == "FALCON_USER")
-		type = "FALCON_USER";
+		type = "DEFAULT";
 	else if (name == "FALCON_TEMPORARY")
-		type = "FALCON_TEMPORARY";
+		type = "TEMPORARY";
 	else if (name == "FALCON_SYSTEM_BASE") //cwp tbd: fix this
-		type = "SYSTEM_BASE";
-	else type = "USER_DEFINED";
+		type = "MASTER CATALOG";
+	else type = "USER DEFINED";
 	
 	return type;
 }
@@ -519,8 +519,16 @@ void TableSpaceManager::getTableSpaceInf
 	while (resultSet->next())
 		{
 		infoTable->putString(0, resultSet->getString(1));					// tablespace name
-		infoTable->putString(1, tableSpaceType(resultSet->getString(1)));	// type based upon name
-		infoTable->putString(2, resultSet->getString(2));					// comment
+		infoTable->putString(1, "Falcon");
+		infoTable->setNotNull(2);
+		infoTable->putString(2, tableSpaceType(resultSet->getString(1)));	// type based upon name
+		infoTable->setNull(3);
+		infoTable->setNull(4);
+		infoTable->setNull(5);
+		infoTable->setNull(6);
+		infoTable->setNull(7);
+		infoTable->setNotNull(8);
+		infoTable->putString(8, resultSet->getString(2));					// comment
 		infoTable->putRecord();
 		}
 }

=== modified file 'storage/falcon/ha_falcon.cpp'
--- a/storage/falcon/ha_falcon.cpp	2008-07-19 03:03:39 +0000
+++ b/storage/falcon/ha_falcon.cpp	2008-08-07 12:58:45 +0000
@@ -200,6 +200,7 @@ int StorageInterface::falcon_init(void *
 	falcon_hton->start_consistent_snapshot = StorageInterface::start_consistent_snapshot;
 
 	falcon_hton->alter_tablespace = StorageInterface::alter_tablespace;
+	falcon_hton->fill_is_table = StorageInterface::fill_is_table;
 	//falcon_hton->show_status  = StorageInterface::show_status;
 	falcon_hton->flags = HTON_NO_FLAGS;
 	storageHandler->addNfsLogger(falcon_debug_mask, StorageInterface::logger, NULL);
@@ -2090,6 +2091,26 @@ int StorageInterface::alter_tablespace(h
 	DBUG_RETURN(getMySqlError(ret));
 }
 
+int StorageInterface::fill_is_table(handlerton *hton, THD *thd, TABLE_LIST *tables, class Item *cond, enum enum_schema_tables schema_table_idx)
+{
+
+	InfoTableImpl infoTable(thd, tables, system_charset_info);
+
+	if (!storageHandler)
+		return 0;
+
+	switch (schema_table_idx)
+		{
+		case SCH_TABLESPACES:
+			storageHandler->getTableSpaceInfo(&infoTable);
+			break;
+		default:
+			return 0;
+		}
+
+	return infoTable.error;
+}
+
 int StorageInterface::check_if_supported_alter(TABLE *altered_table, HA_CREATE_INFO *create_info, HA_ALTER_FLAGS *alter_flags, uint table_changes)
 {
 	DBUG_ENTER("StorageInterface::check_if_supported_alter");
@@ -3165,46 +3186,6 @@ int NfsPluginHandler::deinitTableSpaceIO
 
 //*****************************************************************************
 //
-// FALCON_TABLESPACES
-//
-//*****************************************************************************
-
-int NfsPluginHandler::getTableSpaceInfo(THD *thd, TABLE_LIST *tables, COND *cond)
-{
-	InfoTableImpl infoTableSpace(thd, tables, system_charset_info);
-
-	if (storageHandler)
-		storageHandler->getTableSpaceInfo(&infoTableSpace);
-
-	return infoTableSpace.error;
-}
-
-ST_FIELD_INFO tableSpaceFieldInfo[]=
-{
-	{"TABLESPACE_NAME",	127, MYSQL_TYPE_STRING,		0, 0, "TableSpace Name", SKIP_OPEN_TABLE},
-	{"TYPE",			127, MYSQL_TYPE_STRING,		0, 0, "Type", SKIP_OPEN_TABLE},
-	{"COMMENT",			127, MYSQL_TYPE_STRING,		0, 0, "Comment", SKIP_OPEN_TABLE},
-	{0,					0, MYSQL_TYPE_STRING,		0, 0, 0, SKIP_OPEN_TABLE}
-};
-
-int NfsPluginHandler::initTableSpaceInfo(void *p)
-{
-	DBUG_ENTER("initTableSpaceInfo");
-	ST_SCHEMA_TABLE *schema = (ST_SCHEMA_TABLE *)p;
-	schema->fields_info = tableSpaceFieldInfo;
-	schema->fill_table = NfsPluginHandler::getTableSpaceInfo;
-
-	DBUG_RETURN(0);
-}
-
-int NfsPluginHandler::deinitTableSpaceInfo(void *p)
-{
-	DBUG_ENTER("deinitTableSpaceInfo");
-	DBUG_RETURN(0);
-}
-
-//*****************************************************************************
-//
 // FALCON_TABLESPACE_FILES
 //
 //*****************************************************************************
@@ -3698,7 +3679,6 @@ static st_mysql_information_schema falco
 static st_mysql_information_schema falcon_transaction_summary	=	{ MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION};
 static st_mysql_information_schema falcon_syncobjects			=	{ MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION};
 static st_mysql_information_schema falcon_serial_log_info		=	{ MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION};
-static st_mysql_information_schema falcon_tablespaces			=	{ MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION};
 static st_mysql_information_schema falcon_tablespace_files		=	{ MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION};
 static st_mysql_information_schema falcon_tables				=	{ MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION};
 static st_mysql_information_schema falcon_version				=	{ MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION};
@@ -3871,21 +3851,6 @@ mysql_declare_plugin(falcon)
 
 	{
 	MYSQL_INFORMATION_SCHEMA_PLUGIN,
-	&falcon_tablespaces,
-	"FALCON_TABLESPACES",
-	"MySQL AB",
-	"Falcon TableSpaces.",
-	PLUGIN_LICENSE_GPL,
-	NfsPluginHandler::initTableSpaceInfo,		/* plugin init */
-	NfsPluginHandler::deinitTableSpaceInfo,		/* plugin deinit */
-	0x0005,
-	NULL,										/* status variables */
-	NULL,										/* system variables */
-	NULL										/* config options   */
-	},
-
-	{
-	MYSQL_INFORMATION_SCHEMA_PLUGIN,
 	&falcon_tablespace_files,
 	"FALCON_TABLESPACE_FILES",
 	"MySQL AB",

=== modified file 'storage/falcon/ha_falcon.h'
--- a/storage/falcon/ha_falcon.h	2008-07-09 04:38:02 +0000
+++ b/storage/falcon/ha_falcon.h	2008-08-07 12:58:45 +0000
@@ -155,6 +155,7 @@ public:
 	static uint		alter_table_flags(uint flags);
 #endif
 	static int		alter_tablespace(handlerton* hton, THD* thd, st_alter_tablespace* ts_info);
+	static int		fill_is_table(handlerton *hton, THD *thd, TABLE_LIST *tables, class Item *cond, enum enum_schema_tables);
 
 	static int		commit_by_xid(handlerton* hton, XID* xid);
 	static int		rollback_by_xid(handlerton* hton, XID* xid);
@@ -246,10 +247,6 @@ public:
 	static int initSyncInfo(void *p);
 	static int deinitSyncInfo(void *p);
 
-	static int getTableSpaceInfo(THD *thd, TABLE_LIST *tables, COND *cond);
-	static int initTableSpaceInfo(void *p);
-	static int deinitTableSpaceInfo(void *p);
-
 	static int getTableSpaceFilesInfo(THD *thd, TABLE_LIST *tables, COND *cond);
 	static int initTableSpaceFilesInfo(void *p);
 	static int deinitTableSpaceFilesInfo(void *p);

Thread
bzr commit into mysql-6.0-sea branch (svoj:2692) WL#4483Sergey Vojtovich7 Aug
  • Re: bzr commit into mysql-6.0-sea branch (svoj:2692) WL#4483Chris Powers11 Aug