List:Commits« Previous MessageNext Message »
From:U-ROWVWADEjas Date:April 11 2007 9:52pm
Subject:bk commit into 5.1-falcon tree (jas:1.2584)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1-falcon repository of . When  does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2007-04-11 17:52:04-04:00, jas@rowvwade. +8 -0
  Implement information schema table FALCON_TRANSACTIONS
  to display transaction id, state, etc.

  storage/falcon/StorageHandler.cpp@stripped, 2007-04-11 17:51:53-04:00, jas@rowvwade. +10 -0
    Implement information schema table FALCON_TRANSACTIONS
    to display transaction id, state, etc.

  storage/falcon/StorageHandler.h@stripped, 2007-04-11 17:51:54-04:00, jas@rowvwade. +1 -0
    Implement information schema table FALCON_TRANSACTIONS
    to display transaction id, state, etc.

  storage/falcon/Transaction.cpp@stripped, 2007-04-11 17:51:54-04:00, jas@rowvwade. +31 -0
    Implement information schema table FALCON_TRANSACTIONS
    to display transaction id, state, etc.

  storage/falcon/Transaction.h@stripped, 2007-04-11 17:51:55-04:00, jas@rowvwade. +2 -0
    Implement information schema table FALCON_TRANSACTIONS
    to display transaction id, state, etc.

  storage/falcon/TransactionManager.cpp@stripped, 2007-04-11 17:51:55-04:00, jas@rowvwade. +15 -0
    Implement information schema table FALCON_TRANSACTIONS
    to display transaction id, state, etc.

  storage/falcon/TransactionManager.h@stripped, 2007-04-11 17:51:55-04:00, jas@rowvwade. +1 -0
    Implement information schema table FALCON_TRANSACTIONS
    to display transaction id, state, etc.

  storage/falcon/ha_falcon.cpp@stripped, 2007-04-11 17:51:56-04:00, jas@rowvwade. +69 -263
    Implement information schema table FALCON_TRANSACTIONS
    to display transaction id, state, etc.

  storage/falcon/ha_falcon.h@stripped, 2007-04-11 17:51:56-04:00, jas@rowvwade. +4 -5
    Implement information schema table FALCON_TRANSACTIONS
    to display transaction id, state, etc.

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	jas
# Host:	rowvwade.
# Root:	D:/MySQL/mysql-5.1-falcon

--- 1.23/storage/falcon/StorageHandler.cpp	2007-04-11 17:52:20 -04:00
+++ 1.24/storage/falcon/StorageHandler.cpp	2007-04-11 17:52:20 -04:00
@@ -35,6 +35,7 @@
 #include "Database.h"
 #include "Dbb.h"
 #include "InfoTable.h"
+#include "TransactionManager.h"
 
 #define DICTIONARY_NAME			"falcon_dictionary"
 #define DICTIONARY_PATH			"falcon_dictionary.fdd"
@@ -856,4 +857,13 @@
 void StorageHandler::getRecordCacheSummaryInfo(InfoTable* infoTable)
 {
 	MemMgrAnalyze(MemMgrRecordSummary, infoTable);
+}
+
+void StorageHandler::getTransactionInfo(InfoTable* infoTable)
+{
+	Sync sync(&hashSyncObject, "StorageHandler::getTransactionInfo");
+	sync.lock(Shared);
+	
+	for (StorageDatabase *storageDatabase = databaseList; storageDatabase; storageDatabase = storageDatabase->next)
+		storageDatabase->masterConnection->database->transactionManager->getTransactionInfo(infoTable);
 }

--- 1.13/storage/falcon/StorageHandler.h	2007-04-11 17:52:20 -04:00
+++ 1.14/storage/falcon/StorageHandler.h	2007-04-11 17:52:20 -04:00
@@ -85,6 +85,7 @@
 	virtual void		getMemorySummaryInfo(InfoTable* infoTable);
 	virtual void		getRecordCacheDetailInfo(InfoTable* infoTable);
 	virtual void		getRecordCacheSummaryInfo(InfoTable* infoTable);
+	virtual void		getTransactionInfo(InfoTable* infoTable);
 
 	StorageDatabase*	getStorageDatabase(const char* dbName, const char* path);
 	void				remove(StorageConnection* storageConnection);

--- 1.5/storage/falcon/TransactionManager.cpp	2007-04-11 17:52:20 -04:00
+++ 1.6/storage/falcon/TransactionManager.cpp	2007-04-11 17:52:20 -04:00
@@ -215,3 +215,18 @@
 		transaction->print();
 		
 }
+
+void TransactionManager::getTransactionInfo(InfoTable* infoTable)
+{
+	Sync sync (&activeTransactions.syncObject, "TransactionManager::getTransactionInfo");
+	sync.lock (Exclusive);
+	Sync committedTrans (&committedTransactions.syncObject, "TransactionManager::print");
+	committedTrans.lock (Exclusive);
+	Transaction *transaction;
+	
+	for (transaction = activeTransactions.first; transaction; transaction = transaction->next)
+		transaction->getInfo(infoTable);
+	
+	for (transaction = committedTransactions.first; transaction; transaction = transaction->next)
+		transaction->getInfo(infoTable);
+}

--- 1.5/storage/falcon/TransactionManager.h	2007-04-11 17:52:20 -04:00
+++ 1.6/storage/falcon/TransactionManager.h	2007-04-11 17:52:20 -04:00
@@ -46,6 +46,7 @@
 	void rollbackByXid(int xidLength, const UCHAR* xid);
 	void print(void);
 	Transaction* findOldest(void);
+	void getTransactionInfo(InfoTable* infoTable);
 };
 
 #endif

--- 1.71/storage/falcon/Transaction.cpp	2007-04-11 17:52:20 -04:00
+++ 1.72/storage/falcon/Transaction.cpp	2007-04-11 17:52:20 -04:00
@@ -37,6 +37,21 @@
 #include "TransactionManager.h"
 #include "SerialLog.h"
 #include "SerialLogControl.h"
+#include "InfoTable.h"
+
+static const char *stateNames [] = {
+	"Active",
+	"Limbo",
+	"Committed",
+	"RolledBack",
+	"Us",
+	"Older",
+	"Younger",
+	"WasActive",
+	"Deadlock",
+	"Avail",
+	"Initial"
+	};
 
 #ifdef _DEBUG
 #undef THIS_FILE
@@ -89,6 +104,8 @@
 		{
 		state = Available;
 		systemTransaction = false;
+		oldestActive = 0;
+		writePending = false;
 
 		return;
 		}
@@ -859,4 +876,18 @@
 	Log::debug("  %p Id %d, state %d, updates %d, wrtPend %d, states %d, dependencies %d, records %d\n",
 			this, transactionId, state, hasUpdates, writePending, 
 			numberStates, dependencies, records != NULL);
+}
+
+void Transaction::getInfo(InfoTable* infoTable)
+{
+	int n = 0;
+	infoTable->putString(n++, database->name);
+	infoTable->putInt(n++, transactionId);
+	infoTable->putString(n++, stateNames[state]);
+	infoTable->putInt(n++, hasUpdates);
+	infoTable->putInt(n++, writePending);
+	infoTable->putInt(n++, dependencies);
+	infoTable->putInt(n++, oldestActive);
+	infoTable->putInt(n++, records != NULL);
+	infoTable->putRecord();
 }

--- 1.33/storage/falcon/Transaction.h	2007-04-11 17:52:20 -04:00
+++ 1.34/storage/falcon/Transaction.h	2007-04-11 17:52:20 -04:00
@@ -44,6 +44,7 @@
 class Index;
 class Bitmap;
 class Record;
+class InfoTable;
 
 // Transaction States
 
@@ -162,6 +163,7 @@
 	virtual ~Transaction();
 public:
 	void print(void);
+	void getInfo(InfoTable* infoTable);
 };
 
 #endif // !defined(AFX_TRANSACTION_H__02AD6A4D_A433_11D2_AB5B_0000C01D2301__INCLUDED_)

--- 1.141/storage/falcon/ha_falcon.cpp	2007-04-11 17:52:20 -04:00
+++ 1.142/storage/falcon/ha_falcon.cpp	2007-04-11 17:52:20 -04:00
@@ -2245,68 +2245,12 @@
 //*****************************************************************************
 int NfsPluginHandler::call_fillSystemMemoryDetailTable(THD *thd, TABLE_LIST *tables, COND *cond)
 {
-	//return(pluginHandler->fillSystemMemoryDetailTable(thd, tables, cond));
 	InfoTable infoTable(thd, tables, system_charset_info);
 	storageHandler->getMemoryDetailInfo(&infoTable);
 	
 	return infoTable.error;
 }
 
-/***
-int NfsPluginHandler::fillSystemMemoryDetailTable(THD *thd, TABLE_LIST *tables, COND *cond)
-{
-	CHARSET_INFO *scs= system_charset_info;
-	TABLE *table= (TABLE *) tables->table;
-	DBUG_ENTER("fillSystemMemoryDetail");
-	int rc= 0;
-	MemClient *clients = NULL;
-	MemClient *client  = NULL;
-	MemClient *summary = NULL;
-	StatMode mode = StatSystemMemory;
-	int count = 0;
-	char *ptr = NULL;
-	
-	// Collect memory usage statistics
-	MemMgrAnalyzeExt(mode, 0, &clients, &count, &summary);
-	
-	// Populate the memory usage table with statistics for each client.
-	// In this context, a "client" is client of the memory manager,
-	// represented by a unique file and line number combination.
-	if (clients)
-		{
-		client = clients;
-		
-		for (int i = 0; (i < count) && client; ++i)
-			{
-			ptr = strrchr((char *)client->fileName, '\\');
-			ptr = (!ptr ? (char *)client->fileName : (ptr + 1));
-			table->field[0]->store(ptr, strlen(ptr), scs);
-			table->field[1]->store(client->line);
-			table->field[2]->store(client->blocks);
-			table->field[3]->store(client->objectsInUse);
-			table->field[4]->store(client->objectsDeleted);
-			table->field[5]->store(client->spaceInUse);
-			table->field[6]->store(client->spaceDeleted);
-
-			if (schema_table_store_record(thd, table))
-				{
-				rc= 1;
-				break;
-				}
-				
-			client++;
-			}
-			
-		// Caller responsible for deallocation
-		free(clients);
-		}
-	
-	if (summary)
-		free(summary);
-		
-	DBUG_RETURN(rc);
-}
-***/
 
 ST_FIELD_INFO systemMemoryDetailFieldInfo[]=
 {
@@ -2323,10 +2267,7 @@
 int NfsPluginHandler::initSystemMemoryDetail(void *p)
 {
 	DBUG_ENTER("initSystemMemoryDetail");
-	ST_SCHEMA_TABLE *schema = (ST_SCHEMA_TABLE *)p;
-
-	struct st_plugin_int *plugin= (struct st_plugin_int *)p;
-
+	ST_SCHEMA_TABLE *schema = (ST_SCHEMA_TABLE*) p;
 	schema->fields_info = systemMemoryDetailFieldInfo;
 	schema->fill_table = NfsPluginHandler::call_fillSystemMemoryDetailTable;
 	DBUG_RETURN(0);
@@ -2343,6 +2284,7 @@
 // System memory usage summary
 //
 //*****************************************************************************
+
 int NfsPluginHandler::call_fillSystemMemorySummaryTable(THD *thd, TABLE_LIST *tables, COND *cond)
 {
 	//return(pluginHandler->fillSystemMemorySummaryTable(thd, tables, cond));
@@ -2352,50 +2294,6 @@
 	return infoTable.error;
 }
 
-/***
-int NfsPluginHandler::fillSystemMemorySummaryTable(THD *thd, TABLE_LIST *tables, COND *cond)
-{
-	CHARSET_INFO *scs= system_charset_info;
-	TABLE *table= (TABLE *) tables->table;
-	DBUG_ENTER("fillSystemMemorySummaryTable");
-	int rc= 0;
-	MemClient *clients = NULL;
-	MemClient *client  = NULL;
-	MemClient *summary = NULL;
-	StatMode mode = StatSystemMemory;
-	int count = 0;
-	
-	// Collect the space usage statistics
-	MemMgrAnalyzeExt(mode, 0, &clients, &count, &summary);
-	
-	// Populate the memory usage table with statistics for each client.
-	// In this context, a "client" is client of the memory manager,
-	// represented by a unique file and line number combination.
-	if (summary)
-		{
-		table->field[0]->store(summary->orderedSpace);
-		table->field[1]->store(summary->freeSegments);
-		table->field[2]->store(summary->freeSpace);
-		table->field[3]->store(summary->bigHunks);
-		table->field[4]->store(summary->smallHunks);
-		table->field[5]->store(summary->uniqueSize);
-
-		if (schema_table_store_record(thd, table))
-			{
-			rc = 1;
-			}
-			
-		// Caller responsible for deallocation
-		free(summary);
-		}
-		
-	if (clients)
-		free(clients);
-		
-	DBUG_RETURN(rc);
-}
-***/
-
 ST_FIELD_INFO systemMemorySummaryFieldInfo[]=
 {
 	{"ORDERED_SPACE", 120, MYSQL_TYPE_LONG,		0, 0, "Ordered Space"},
@@ -2411,9 +2309,6 @@
 {
 	DBUG_ENTER("initSystemMemorySummary");
 	ST_SCHEMA_TABLE *schema = (ST_SCHEMA_TABLE *)p;
-
-	struct st_plugin_int *plugin= (struct st_plugin_int *)p;
-
 	schema->fields_info = systemMemorySummaryFieldInfo;
 	schema->fill_table = NfsPluginHandler::call_fillSystemMemorySummaryTable;
 
@@ -2433,69 +2328,12 @@
 //*****************************************************************************
 int NfsPluginHandler::call_fillRecordCacheDetailTable(THD *thd, TABLE_LIST *tables, COND *cond)
 {
-	//return(pluginHandler->fillRecordCacheDetailTable(thd, tables, cond));
 	InfoTable infoTable(thd, tables, system_charset_info);
 	storageHandler->getRecordCacheDetailInfo(&infoTable);
 	
 	return infoTable.error;
 }
 
-/***
-int NfsPluginHandler::fillRecordCacheDetailTable(THD *thd, TABLE_LIST *tables, COND *cond)
-{
-	CHARSET_INFO *scs= system_charset_info;
-	TABLE *table= (TABLE *) tables->table;
-	DBUG_ENTER("fillRecordCacheDetailTable");
-	int rc= 0;
-	MemClient *clients = NULL;
-	MemClient *client  = NULL;
-	MemClient *summary = NULL;
-	StatMode mode = StatRecordMemory;
-	int count = 0;
-	char *ptr = NULL;
-	
-	// Collect the space usage statistics
-	MemMgrAnalyzeExt(mode, 0, &clients, &count, &summary);
-	
-	// Populate the memory usage table with statistics for each client.
-	// In this context, a "client" is client of the memory manager,
-	// represented by a unique file and line number combination.
-	if (clients)
-		{
-		client = clients;
-		
-		for (int i = 0; (i < count) && client; ++i)
-			{
-			ptr = strrchr((char *)client->fileName, '\\');
-			ptr = (!ptr ? (char *)client->fileName : (ptr + 1));
-			table->field[0]->store(ptr, strlen(ptr), scs);
-			table->field[1]->store(client->line);
-			table->field[2]->store(client->blocks);
-			table->field[3]->store(client->objectsInUse);
-			table->field[4]->store(client->objectsDeleted);
-			table->field[5]->store(client->spaceInUse);
-			table->field[6]->store(client->spaceDeleted);
-
-			if (schema_table_store_record(thd, table))
-				{
-				rc = 1;
-				break;
-				}
-				
-			client++;
-			}
-			
-		// Caller responsible for deallocation
-		free(clients);
-		}
-	
-	if (summary)
-		free(summary);
-
-	DBUG_RETURN(rc);
-}
-***/
-
 ST_FIELD_INFO recordCacheDetailFieldInfo[]=
 {
 	{"FILE",		  120, MYSQL_TYPE_STRING,	0, 0, "File"},
@@ -2512,9 +2350,6 @@
 {
 	DBUG_ENTER("initRecordCacheDetail");
 	ST_SCHEMA_TABLE *schema = (ST_SCHEMA_TABLE *)p;
-
-	struct st_plugin_int *plugin = (struct st_plugin_int *)p;
-
 	schema->fields_info = recordCacheDetailFieldInfo;
 	schema->fill_table = NfsPluginHandler::call_fillRecordCacheDetailTable;
 
@@ -2534,57 +2369,12 @@
 //*****************************************************************************
 int NfsPluginHandler::call_fillRecordCacheSummaryTable(THD *thd, TABLE_LIST *tables, COND *cond)
 {
-	//return(pluginHandler->fillRecordCacheDetailTable(thd, tables, cond));
 	InfoTable infoTable(thd, tables, system_charset_info);
 	storageHandler->getRecordCacheSummaryInfo(&infoTable);	
 	
 	return infoTable.error;
 }
 
-/***
-int NfsPluginHandler::fillRecordCacheSummaryTable(THD *thd, TABLE_LIST *tables, COND *cond)
-{
-	CHARSET_INFO *scs= system_charset_info;
-	TABLE *table= (TABLE *) tables->table;
-	DBUG_ENTER("fillRecordCacheSummaryTable");
-	int rc= 0;
-	MemClient *clients = NULL;
-	MemClient *client  = NULL;
-	MemClient *summary = NULL;
-	StatMode mode = StatRecordMemory;
-	int count = 0;
-	
-	// Collect the space usage statistics
-	MemMgrAnalyzeExt(mode, 0, &clients, &count, &summary);
-	
-	// Populate the memory usage table with statistics for each client.
-	// In this context, a "client" is client of the memory manager,
-	// represented by a unique file and line number combination.
-	if (summary)
-		{
-		table->field[0]->store(summary->orderedSpace);
-		table->field[1]->store(summary->freeSegments);
-		table->field[2]->store(summary->freeSpace);
-		table->field[3]->store(summary->bigHunks);
-		table->field[4]->store(summary->smallHunks);
-		table->field[5]->store(summary->uniqueSize);
-
-		if (schema_table_store_record(thd, table))
-			{
-			rc = 1;
-			}
-			
-		// Caller responsible for deallocation
-		free(summary);
-		}
-		
-	if (clients)
-		free(clients);
-			
-	DBUG_RETURN(rc);
-}
-***/
-
 ST_FIELD_INFO recordCacheSummaryFieldInfo[]=
 {
 	{"ORDERED_SPACE", 120, MYSQL_TYPE_LONG,		0, 0, "Ordered Space"},
@@ -2600,9 +2390,6 @@
 {
 	DBUG_ENTER("initRecordCacheSummary");
 	ST_SCHEMA_TABLE *schema = (ST_SCHEMA_TABLE *)p;
-
-	struct st_plugin_int *plugin = (struct st_plugin_int *)p;
-
 	schema->fields_info = recordCacheSummaryFieldInfo;
 	schema->fill_table = NfsPluginHandler::call_fillRecordCacheSummaryTable;
 
@@ -2620,60 +2407,15 @@
 // Database IO
 //
 //*****************************************************************************
+
 int NfsPluginHandler::call_fillDatabaseIOTable(THD *thd, TABLE_LIST *tables, COND *cond)
 {
-	//return(pluginHandler->fillDatabaseIOTable(thd, tables, cond));
 	InfoTable infoTable(thd, tables, system_charset_info);
 	storageHandler->getIOInfo(&infoTable);
 
 	return infoTable.error;
 }
 
-/***
-int NfsPluginHandler::fillDatabaseIOTable(THD *thd, TABLE_LIST *tables, COND *cond)
-{
-	CHARSET_INFO *scs= system_charset_info;
-	TABLE *table= (TABLE *) tables->table;
-	DBUG_ENTER("fillDatabaseIO");
-	int rc = 0;
-	int count = 0;
-	IOAnalysis *ioDataList = NULL;
-	IOAnalysis *ioData = NULL;
-	
-	// Populate the memory usage table with statistics for each client.
-	// In this context, a "client" is client of the memory manager,
-	// represented by a unique file and line number combination.
-	count = storageHandler->analyzeDatabaseIO(&ioDataList);
-	
-	if (count && ioDataList)
-		{
-		ioData = ioDataList;
-		
-		for (int i = 0; (i < count) && ioData; ++i)
-			{
-			table->field[0]->store(ioData->name, strlen(ioData->name), scs);
-			table->field[1]->store(ioData->reads);
-			table->field[2]->store(ioData->writes);
-			table->field[3]->store(ioData->fetches);
-			table->field[4]->store(ioData->fakes);
-
-			if (schema_table_store_record(thd, table))
-				{
-				rc = 1;
-				break;
-				}
-				
-			ioData++;
-			}
-			
-		// Caller responsible for deallocation
-		free(ioDataList);
-		}
-	
-	DBUG_RETURN(rc);
-}
-***/
-
 ST_FIELD_INFO databaseIOFieldInfo[]=
 {
 	{"DATABASE",		  120, MYSQL_TYPE_STRING,	0, 0, "Database"},
@@ -2688,9 +2430,9 @@
 {
 	DBUG_ENTER("initDatabaseIO");
 	ST_SCHEMA_TABLE *schema = (ST_SCHEMA_TABLE *)p;
-	//struct st_plugin_int *plugin= (struct st_plugin_int *)p;
 	schema->fields_info = databaseIOFieldInfo;
 	schema->fill_table = NfsPluginHandler::call_fillDatabaseIOTable;
+	
 	DBUG_RETURN(0);
 }
 
@@ -2700,6 +2442,49 @@
 	DBUG_RETURN(0);
 }
 
+//*****************************************************************************
+//
+// Transaction Information
+//
+//*****************************************************************************
+
+int NfsPluginHandler::callTransactionInfo(THD *thd, TABLE_LIST *tables, COND *cond)
+{
+	InfoTable infoTable(thd, tables, system_charset_info);
+	storageHandler->getTransactionInfo(&infoTable);
+
+	return infoTable.error;
+}
+
+ST_FIELD_INFO transactionInfoFieldInfo[]=
+{
+	{"DATABASE",		120, MYSQL_TYPE_STRING,		0, 0, "Database"},
+	{"ID",				4, MYSQL_TYPE_LONG,			0, 0, "Id"},
+	{"STATE",			10, MYSQL_TYPE_STRING,		0, 0, "State"},
+	{"UPDATES",			4, MYSQL_TYPE_LONG,			0, 0, "Has Updates"},
+	{"PENDING",			4, MYSQL_TYPE_LONG,			0, 0, "Write Pending"},
+	{"DEPENDENCIES",	4, MYSQL_TYPE_LONG,			0, 0, "Dependencies"},
+	{"OLDEST_ACTIVE",	4, MYSQL_TYPE_LONG,			0, 0, "Oldest Active"},
+	{"RECORDS",			4, MYSQL_TYPE_LONG,			0, 0, "Has Records"},
+	{0,					0, MYSQL_TYPE_STRING,		0, 0, 0}
+};
+
+int NfsPluginHandler::initTransactionInfo(void *p)
+{
+	DBUG_ENTER("initTransactionInfo");
+	ST_SCHEMA_TABLE *schema = (ST_SCHEMA_TABLE *)p;
+	schema->fields_info = transactionInfoFieldInfo;
+	schema->fill_table = NfsPluginHandler::callTransactionInfo;
+	
+	DBUG_RETURN(0);
+}
+
+int NfsPluginHandler::deinitTransactionInfo(void *p)
+{
+	DBUG_ENTER("deinitTransactionInfo");
+	DBUG_RETURN(0);
+}
+
 
 struct st_mysql_storage_engine falcon_storage_engine			=	{ MYSQL_HANDLERTON_INTERFACE_VERSION};
 struct st_mysql_information_schema falcon_system_memory_detail	=	{ MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION};
@@ -2707,6 +2492,7 @@
 struct st_mysql_information_schema falcon_record_cache_detail	=	{ MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION};
 struct st_mysql_information_schema falcon_record_cache_summary	=	{ MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION};
 struct st_mysql_information_schema falcon_database_io			=	{ MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION};
+struct st_mysql_information_schema falcon_transaction_info		=	{ MYSQL_INFORMATION_SCHEMA_INTERFACE_VERSION};
 
 mysql_declare_plugin(falcon)
 	{
@@ -2723,6 +2509,7 @@
 	NULL,										/* system variables */
 	NULL										/* config options */
 	},
+	
 	{
 	MYSQL_INFORMATION_SCHEMA_PLUGIN,
 	&falcon_system_memory_detail,
@@ -2737,6 +2524,7 @@
 	NULL,										/* system variables */
 	NULL										/* config options */
 	},
+	
 	{
 	MYSQL_INFORMATION_SCHEMA_PLUGIN,
 	&falcon_system_memory_summary,
@@ -2751,6 +2539,7 @@
 	NULL,										/* system variables */
 	NULL										/* config options */
 	},
+	
 	{
 	MYSQL_INFORMATION_SCHEMA_PLUGIN,
 	&falcon_record_cache_detail,
@@ -2765,6 +2554,7 @@
 	NULL,										/* system variables */
 	NULL										/* config options */
 	},
+	
 	{
 	MYSQL_INFORMATION_SCHEMA_PLUGIN,
 	&falcon_record_cache_summary,
@@ -2779,6 +2569,22 @@
 	NULL,										/* system variables */
 	NULL										/* config options   */
 	},
+	
+	{
+	MYSQL_INFORMATION_SCHEMA_PLUGIN,
+	&falcon_transaction_info,
+	"FALCON_TRANSACTIONS",
+	"MySQL AB",
+	"Falcon Transactions.",
+	PLUGIN_LICENSE_GPL,
+	NfsPluginHandler::initTransactionInfo,		/* plugin init */
+	NfsPluginHandler::deinitTransactionInfo,	/* plugin deinit */
+	0x0005,
+	NULL,										/* status variables */
+	NULL,										/* system variables */
+	NULL										/* config options   */
+	},
+	
 	{
 	MYSQL_INFORMATION_SCHEMA_PLUGIN,
 	&falcon_database_io,
@@ -2792,6 +2598,6 @@
 	NULL,										/* status variables */
 	NULL,										/* system variables */
 	NULL										/* config options   */
-}
+	}
 
 mysql_declare_plugin_end;

--- 1.31/storage/falcon/ha_falcon.h	2007-04-11 17:52:21 -04:00
+++ 1.32/storage/falcon/ha_falcon.h	2007-04-11 17:52:21 -04:00
@@ -162,27 +162,26 @@
 	StorageTable		*storageTable;
 
 	static int call_fillSystemMemoryDetailTable(THD *thd, TABLE_LIST *tables, COND *cond);
-	//int fillSystemMemoryDetailTable(THD *thd, TABLE_LIST *tables, COND *cond);
 	static int initSystemMemoryDetail(void *p);
 	static int deinitSystemMemoryDetail(void *p);
 	
 	static int call_fillSystemMemorySummaryTable(THD *thd, TABLE_LIST *tables, COND *cond);
-	//int fillSystemMemorySummaryTable(THD *thd, TABLE_LIST *tables, COND *cond);
 	static int initSystemMemorySummary(void *p);
 	static int deinitSystemMemorySummary(void *p);
 
 	static int call_fillRecordCacheDetailTable(THD *thd, TABLE_LIST *tables, COND *cond);
-	int fillRecordCacheDetailTable(THD *thd, TABLE_LIST *tables, COND *cond);
 	static int initRecordCacheDetail(void *p);
 	static int deinitRecordCacheDetail(void *p);
 
 	static int call_fillRecordCacheSummaryTable(THD *thd, TABLE_LIST *tables, COND *cond);
-	int fillRecordCacheSummaryTable(THD *thd, TABLE_LIST *tables, COND *cond);
 	static int initRecordCacheSummary(void *p);
 	static int deinitRecordCacheSummary(void *p);
 
 	static int call_fillDatabaseIOTable(THD *thd, TABLE_LIST *tables, COND *cond);
-	int fillDatabaseIOTable(THD *thd, TABLE_LIST *tables, COND *cond);
 	static int initDatabaseIO(void *p);
 	static int deinitDatabaseIO(void *p);
+
+	static int callTransactionInfo(THD *thd, TABLE_LIST *tables, COND *cond);
+	static int initTransactionInfo(void *p);
+	static int deinitTransactionInfo(void *p);
 };
Thread
bk commit into 5.1-falcon tree (jas:1.2584)U-ROWVWADEjas11 Apr