#At file:///home/malff/BZR-TREE/mysql-6.0-perf/ based on revid:marc.alff@stripped
2777 Marc Alff 2009-01-27
Documentation with doxygen, created a PERFORMANCE_SCHEMA page.
modified:
include/mysql/mysql_file.h
include/mysql/mysql_mutex.h
include/mysql/psi.h
storage/perfschema/ha_perfschema.cc
storage/perfschema/ha_perfschema.h
storage/perfschema/pse.cc
storage/perfschema/pse_instr.cc
storage/perfschema/pse_instr_info.cc
storage/perfschema/pse_table.h
storage/perfschema/table_all_instr.h
storage/perfschema/table_events_waits.h
storage/perfschema/table_events_waits_summary.h
storage/perfschema/table_file_instances.h
storage/perfschema/table_file_summary.h
storage/perfschema/table_performance_timers.h
storage/perfschema/table_processlist.h
storage/perfschema/table_setup_actors.h
storage/perfschema/table_setup_consumers.h
storage/perfschema/table_setup_instruments.h
storage/perfschema/table_setup_timers.h
storage/perfschema/table_sync_instances.h
=== modified file 'include/mysql/mysql_file.h'
--- a/include/mysql/mysql_file.h 2009-01-13 03:47:43 +0000
+++ b/include/mysql/mysql_file.h 2009-01-28 04:44:09 +0000
@@ -29,7 +29,7 @@ struct PSI_file;
/**
@defgroup File_instrumentation File Instrumentation
- @ingroup Performance_schema_interface
+ @ingroup Instrumentation_interface
@{
*/
=== modified file 'include/mysql/mysql_mutex.h'
--- a/include/mysql/mysql_mutex.h 2009-01-15 00:22:24 +0000
+++ b/include/mysql/mysql_mutex.h 2009-01-28 04:44:09 +0000
@@ -50,7 +50,7 @@ struct PSI_cond;
/**
@defgroup Mutex_instrumentation Mutex Instrumentation
- @ingroup Performance_schema_interface
+ @ingroup Instrumentation_interface
@{
*/
=== modified file 'include/mysql/psi.h'
--- a/include/mysql/psi.h 2009-01-26 19:55:16 +0000
+++ b/include/mysql/psi.h 2009-01-28 04:44:09 +0000
@@ -18,7 +18,7 @@
/**
@file mysql/psi.h
- @defgroup Performance_schema_interface Performance Schema Interface
+ @defgroup Instrumentation_interface Instrumentation Interface
@ingroup Performance_schema
@{
*/
@@ -172,8 +172,8 @@ typedef unsigned int PSI_file_key;
#ifdef HAVE_PSI_1
/**
- @defgroup Group_PSI_v1 Application Programming Interface, version 1
- @ingroup Performance_schema_interface
+ @defgroup Group_PSI_v1 Application Binary Interface, version 1
+ @ingroup Instrumentation_interface
@{
*/
@@ -591,8 +591,8 @@ struct PSI_v1
#ifdef HAVE_PSI_2
/**
- @defgroup Group_PSI_v2 Application Programming Interface, version 2
- @ingroup Performance_schema_interface
+ @defgroup Group_PSI_v2 Application Binary Interface, version 2
+ @ingroup Instrumentation_interface
@{
*/
=== modified file 'storage/perfschema/ha_perfschema.cc'
--- a/storage/perfschema/ha_perfschema.cc 2009-01-24 02:51:45 +0000
+++ b/storage/perfschema/ha_perfschema.cc 2009-01-28 04:44:09 +0000
@@ -224,30 +224,6 @@ int ha_perfschema::index_read_map(uchar
DBUG_RETURN(HA_ERR_WRONG_COMMAND);
}
-int ha_perfschema::index_next(uchar *buf)
-{
- DBUG_ENTER("ha_perfschema::index_next");
- DBUG_RETURN(HA_ERR_WRONG_COMMAND);
-}
-
-int ha_perfschema::index_prev(uchar *buf)
-{
- DBUG_ENTER("ha_perfschema::index_prev");
- DBUG_RETURN(HA_ERR_WRONG_COMMAND);
-}
-
-int ha_perfschema::index_first(uchar *buf)
-{
- DBUG_ENTER("ha_perfschema::index_first");
- DBUG_RETURN(HA_ERR_WRONG_COMMAND);
-}
-
-int ha_perfschema::index_last(uchar *buf)
-{
- DBUG_ENTER("ha_perfschema::index_last");
- DBUG_RETURN(HA_ERR_WRONG_COMMAND);
-}
-
int ha_perfschema::rnd_init(bool scan)
{
int result;
=== modified file 'storage/perfschema/ha_perfschema.h'
--- a/storage/perfschema/ha_perfschema.h 2009-01-24 02:51:45 +0000
+++ b/storage/perfschema/ha_perfschema.h 2009-01-28 04:44:09 +0000
@@ -18,163 +18,99 @@
#pragma interface /* gcc class implementation */
#endif
+/**
+ @defgroup Performance_schema_engine Performance Schema Engine
+ @ingroup Performance_schema_implementation
+ @{
+*/
struct pse_table_info;
class pse_table;
-/** @brief
- EXAMPLE_SHARE is a structure that will be shared among all open handlers.
- This example implements the minimum of what you will probably need.
+/**
+ A performance schema table share.
+ This data is shared by all the table handles opened on the same table.
*/
typedef struct st_perfschema_share {
THR_LOCK lock;
} PSE_SHARE;
-/** @brief
- Class definition for the storage engine
+/**
+ A handler for a PERFORMANCE_SCHEMA table.
*/
class ha_perfschema : public handler
{
public:
+ /** Constructor */
ha_perfschema(handlerton *hton, TABLE_SHARE *share);
+
+ /** Destructor */
~ha_perfschema();
- /** @brief
- The name that will be used for display purposes.
- */
const char *table_type() const { return "PERFORMANCE_SCHEMA"; }
- /** @brief
- The name of the index type that will be used for display.
- Don't implement this method unless you really have indexes.
- */
- const char *index_type(uint inx) { return "HASH"; }
-
- /** @brief
- The file extensions.
- */
+ /** TODO: document class handler. */
+ const char *index_type(uint inx) { return ""; }
+
const char **bas_ext() const;
- /** @brief
- This is a list of flags that indicate what functionality the storage engine
- implements. The current table flags are documented in handler.h
+ /**
+ Capabilities of the performance schema tables.
*/
ulonglong table_flags() const
{
- // TODO: HA_REC_NOT_IN_SEQ ?
return HA_NO_TRANSACTIONS | HA_REC_NOT_IN_SEQ | HA_NO_AUTO_INCREMENT ;
}
- /** @brief
- This is a bitmap of flags that indicates how the storage engine
- implements indexes. The current index flags are documented in
- handler.h. If you do not implement indexes, just return zero here.
-
- @details
- part is the key part to check. First key part is 0.
- If all_parts is set, MySQL wants to know the flags for the combined
- index, up to and including 'part'.
+ /**
+ Operations supported by indexes.
+ None, there are no indexes.
*/
ulong index_flags(uint inx, uint part, bool all_parts) const
- {
- return 0;
- }
+ { return 0; }
+
+ /** TODO: document class handler. */
+ uint max_supported_record_length() const
+ { return HA_MAX_REC_LENGTH; }
- /** @brief
- unireg.cc will call max_supported_record_length(), max_supported_keys(),
- max_supported_key_parts(), uint max_supported_key_length()
- to make sure that the storage engine can handle the data it is about to
- send. Return *real* limits of your storage engine here; MySQL will do
- min(your_limits, MySQL_limits) automatically.
- */
- uint max_supported_record_length() const { return HA_MAX_REC_LENGTH; }
-
- /** @brief
- unireg.cc will call this to make sure that the storage engine can handle
- the data it is about to send. Return *real* limits of your storage engine
- here; MySQL will do min(your_limits, MySQL_limits) automatically.
-
- @details
- There is no need to implement ..._key_... methods if your engine doesn't
- support indexes.
- */
+ /** TODO: document class handler. */
uint max_supported_keys() const
{ return 0; }
- /** @brief
- unireg.cc will call this to make sure that the storage engine can handle
- the data it is about to send. Return *real* limits of your storage engine
- here; MySQL will do min(your_limits, MySQL_limits) automatically.
-
- @details
- There is no need to implement ..._key_... methods if your engine doesn't
- support indexes.
- */
+ /** TODO: document class handler. */
uint max_supported_key_parts() const
{ return 0; }
- /** @brief
- unireg.cc will call this to make sure that the storage engine can handle
- the data it is about to send. Return *real* limits of your storage engine
- here; MySQL will do min(your_limits, MySQL_limits) automatically.
-
- @details
- There is no need to implement ..._key_... methods if your engine doesn't
- support indexes.
- */
+ /** TODO: document class handler. */
uint max_supported_key_length() const
{ return 0; }
+ /** TODO: document class handler. */
ha_rows estimate_rows_upper_bound()
{ return HA_POS_ERROR; }
- /** @brief
- Called in test_quick_select to determine if indexes should be used.
- */
- virtual double scan_time() { return (double) (stats.records+stats.deleted) / 20.0+10; }
+ /** TODO: document class handler. */
+ virtual double scan_time()
+ { return 1.0; }
- /** @brief
- This method will never be called if you do not implement indexes.
- */
- virtual double read_time(ha_rows rows) { return (double) rows / 20.0+1; }
+ /** TODO: document class handler. */
+ virtual double read_time(ha_rows rows)
+ { return 1.0; }
- /*
- Everything below are methods that we implement in ha_example.cc.
+ /** TODO: document class handler. */
+ int open(const char *name, int mode, uint test_if_locked);
- Most of these methods are not obligatory, skip them and
- MySQL will treat them as not implemented
- */
- /** @brief
- We implement this in ha_example.cc; it's a required method.
- */
- int open(const char *name, int mode, uint test_if_locked); // required
-
- /** @brief
- We implement this in ha_example.cc; it's a required method.
- */
- int close(void); // required
+ /** TODO: document class handler. */
+ int close(void);
- /** @brief
- We implement this in ha_example.cc. It's not an obligatory method;
- skip it and and MySQL will treat it as not implemented.
- */
+ /** TODO: document class handler. */
int write_row(uchar *buf);
- /** @brief
- We implement this in ha_example.cc. It's not an obligatory method;
- skip it and and MySQL will treat it as not implemented.
- */
+ /** TODO: document class handler. */
int update_row(const uchar *old_data, uchar *new_data);
- /** @brief
- We implement this in ha_example.cc. It's not an obligatory method;
- skip it and and MySQL will treat it as not implemented.
- */
+ /** TODO: document class handler. */
int delete_row(const uchar *buf);
- /** @brief
- We implement this in ha_example.cc. It's not an obligatory method;
- skip it and and MySQL will treat it as not implemented.
- */
int index_read_map(uchar *buf, const uchar *key,
key_part_map keypart_map, enum ha_rkey_function find_flag);
@@ -184,59 +120,55 @@ public:
key_part_map keypart_map,
enum ha_rkey_function find_flag);
- /** @brief
- We implement this in ha_example.cc. It's not an obligatory method;
- skip it and and MySQL will treat it as not implemented.
- */
- int index_next(uchar *buf);
+ int rnd_init(bool scan);
- /** @brief
- We implement this in ha_example.cc. It's not an obligatory method;
- skip it and and MySQL will treat it as not implemented.
- */
- int index_prev(uchar *buf);
+ /** TODO: document class handler. */
+ int rnd_end();
- /** @brief
- We implement this in ha_example.cc. It's not an obligatory method;
- skip it and and MySQL will treat it as not implemented.
- */
- int index_first(uchar *buf);
+ /** TODO: document class handler. */
+ int rnd_next(uchar *buf);
- /** @brief
- We implement this in ha_example.cc. It's not an obligatory method;
- skip it and and MySQL will treat it as not implemented.
- */
- int index_last(uchar *buf);
+ /** TODO: document class handler. */
+ int rnd_pos(uchar *buf, uchar *pos);
- /** @brief
- Unlike index_init(), rnd_init() can be called two consecutive times
- without rnd_end() in between (it only makes sense if scan=1). In this
- case, the second call should prepare for the new table scan (e.g if
- rnd_init() allocates the cursor, the second call should position the
- cursor to the start of the table; no need to deallocate and allocate
- it again. This is a required method.
- */
- int rnd_init(bool scan); //required
- int rnd_end();
- int rnd_next(uchar *buf); ///< required
- int rnd_pos(uchar *buf, uchar *pos); ///< required
- void position(const uchar *record); ///< required
- int info(uint); ///< required
+ /** TODO: document class handler. */
+ void position(const uchar *record);
+
+ /** TODO: document class handler. */
+ int info(uint);
+
+ /** TODO: document class handler. */
int extra(enum ha_extra_function operation);
- int external_lock(THD *thd, int lock_type); ///< required
+
+ /** TODO: document class handler. */
+ int external_lock(THD *thd, int lock_type);
+
int delete_all_rows(void);
+
+ /** TODO: document class handler. */
ha_rows records_in_range(uint inx, key_range *min_key,
key_range *max_key);
+
int delete_table(const char *from);
+
int rename_table(const char * from, const char * to);
+
+ /** TODO: document class handler. */
int create(const char *name, TABLE *form,
- HA_CREATE_INFO *create_info); ///< required
+ HA_CREATE_INFO *create_info);
THR_LOCK_DATA **store_lock(THD *thd, THR_LOCK_DATA **to,
- enum thr_lock_type lock_type); ///< required
+ enum thr_lock_type lock_type);
private:
- THR_LOCK_DATA lock; /* MySQL lock */
+ /** MySQL lock */
+ THR_LOCK_DATA lock;
+ /** Performance schema specific metadata for this table handler. */
const pse_table_info *m_table_info;
+ /** Performance schema table cursor. */
pse_table *m_table;
};
+
+/**
+ @}
+*/
=== modified file 'storage/perfschema/pse.cc'
--- a/storage/perfschema/pse.cc 2009-01-27 01:57:26 +0000
+++ b/storage/perfschema/pse.cc 2009-01-28 04:44:09 +0000
@@ -22,6 +22,173 @@
#include "pse_timer.h"
#include "pse_events_waits.h"
+/**
+ @page PAGE_PERFORMANCE_SCHEMA The Performance Schema Page
+ MySQL PERFORMANCE_SCHEMA implementation.
+
+ @section INTRO Introduction
+ The PERFORMANCE_SCHEMA is a way to introspect the internal execution of
+ the server at runtime. The performance schema focuses primarily on performance data,
+ as opposed to the INFORMATION_SCHEMA which purpose is to introspect metadata.
+
+ From a user point of view, the performance schema consist of:
+ - a dedicated database schema, named PERFORMANCE_SCHEMA,
+ - SQL tables, used to query the server internal state or change
+ configuration settings.
+
+ From an implementation point of view, the performance schema is a dedicated
+ Storage Engine which exposes data collected by 'Instrumentation Points' placed
+ in the server code.
+
+ @section INTERFACES Multiples interfaces
+
+ The performance schema exposes many different interfaces, for different components,
+ and for different purposes.
+
+ @subsection INT_INSTRUMENTING Instrumenting interface
+
+ All the data representing the server internal state exposed in the performance
+ schema must be first collected: this is the role of the instrumenting interface.
+ The instrumenting interface is a coding interface provided by implementors
+ (of the performance schema) to implementors (of the server or server components).
+
+ This interface is available to:
+ - C implementations
+ - C++ implementations
+ - the core SQL layer (/sql)
+ - the mysys library (/mysys)
+ - MySQL plugins, including storage engines,
+ - Third party plugins, including third party storage engines.
+
+ @subsection INT_COMPILING Compiling interface
+
+ The implementation of the performance schema can be enabled or disabled at
+ build time, when building MySQL from the source code.
+
+ When building with the performance schema code, some compilation flags are available
+ to change the default values used in the code, if required.
+
+ For more details, see:
+ @code
+ ./configure --help
+
+ === Performance Schema ===
+ Plugin Name: perfschema
+ Description: Performance Schema
+ Supports build: static
+ Configurations: default, max, max-no-ndb
+ @endcode
+
+ To compile with the performance schema:
+ @code
+ ./configure --with-perfschema
+ @endcode
+
+ The implementation of all the compiling options is located in
+ @code ./storage/perfschema/plug.in @endcode
+
+ @subsection INT_STARTUP Server startup interface
+
+ The server startup interface consist of the "./mysqld ..." command line used
+ to start the server. When the performance schema is compiled in the server binary,
+ extra command line options are available.
+
+ These extra start options allow the DBA to:
+ - enable or disable the performance schema
+ - specify some sizing parameters.
+
+ To see help for the performance schema startup options, see:
+ @code
+ ./sql/mysqld --pse-help
+ @endcode
+
+ The implementation of all the startup options is located in
+ @code ./storage/perfschema/pse_server.cc @endcode
+
+ @subsection INT_BOOTSTRAP Server bootstrap interface
+
+ The bootstrap interface is a private interface exposed by the performance schema,
+ and used by the SQL layer. It's role is to advertise all the SQL tables natively
+ supported by the performance schema to the SQL server.
+ The code consist of creating MySQL tables for the performance schema itself,
+ and is used in './mysql --bootstrap' mode when a server is installed.
+
+ The implementation of the bootstrap code is located in
+ @code ./storage/perfschema/pse_bootstrap.cc @endcode
+
+ @subsection INT_CONFIG Runtime configuration interface
+
+ When the performance schema is used at runtime, various configuration
+ parameters can be used to specify what kind of data is collected,
+ what kind of aggregations are computed, what kind of timers are used,
+ what events are timed, etc.
+
+ For all these capabilities, not a single statement or special syntax was introduced
+ in the parser.
+ Instead of new SQL statements, the interface consist of DML
+ (SELECT, INSERT, UPDATE, DELETE) against special "SETUP" tables.
+
+ For example:
+ @code
+ mysql> update performance_schema.setup_instruments set ENABLED='YES', TIMED='YES';
+ Query OK, 234 rows affected (0.00 sec)
+ Rows matched: 234 Changed: 234 Warnings: 0
+ @endcode
+
+ @subsection INT_STATUS Internal audit interface
+
+ The internal audit interface is provided to the DBA to inspect if the
+ performance schema code itself is functioning properly.
+ This interface is necessary because a failure caused while instrumenting code
+ in the server should not cause failures in the MySQL server itself, so that
+ the performance schema implementation never raises errors during runtime execution.
+
+ This auditing interface consist of:
+ @code
+ SHOW ENGINE PERFORMANCE_SCHEMA STATUS;
+ @endcode
+ It displays data related to the memory usage of the performance schema,
+ as well as statistics about lost events, if any.
+
+ The SHOW STATUS command is implemented in
+ @code ./storage/perfschema/pse_table.cc @endcode
+
+ @subsection INT_QUERY Query interface
+
+ The query interface is used to query the internal state of a running server.
+ It is provided as SQL tables.
+
+ For example:
+ @code
+ mysql> select * from performance_schema.events_waits_current;
+ @endcode
+
+ @section DESIGN_PRINCIPES Design principes
+
+ TODO
+
+ @section IMPLEMENTATION One implementation
+
+ TODO
+
+ @section REFERENCES Modules references
+
+ TODO
+
+*/
+
+/**
+ @defgroup Performance_schema Performance Schema
+ The performance schema component.
+ For details, see the \ref PAGE_PERFORMANCE_SCHEMA "performance schema page".
+
+ @defgroup Performance_schema_implementation Performance Schema Implementation
+ @ingroup Performance_schema
+
+ @defgroup Performance_schema_tables Performance Schema Tables
+ @ingroup Performance_schema_implementation
+*/
+
pthread_key(PSE_thread*, THR_PSE);
uint locker_lost= 0;
=== modified file 'storage/perfschema/pse_instr.cc'
--- a/storage/perfschema/pse_instr.cc 2009-01-27 01:57:26 +0000
+++ b/storage/perfschema/pse_instr.cc 2009-01-28 04:44:09 +0000
@@ -21,6 +21,11 @@
#include "pse_instr.h"
#include "pse_global.h"
+/**
+ \addtogroup Performance_schema_buffers
+ @{
+*/
+
uint mutex_max;
uint mutex_lost;
uint rwlock_max;
@@ -581,3 +586,6 @@ void reset_events_waits_by_instance()
reset_file_waits_by_instance();
}
+/**
+ @}
+*/
=== modified file 'storage/perfschema/pse_instr_info.cc'
--- a/storage/perfschema/pse_instr_info.cc 2009-01-27 01:57:26 +0000
+++ b/storage/perfschema/pse_instr_info.cc 2009-01-28 04:44:09 +0000
@@ -23,6 +23,12 @@
#include <string.h>
/**
+ @defgroup Performance_schema_buffers Performance Schema Buffers
+ @ingroup Performance_schema_implementation
+ @{
+*/
+
+/**
Current number or elements in sync_info_array.
This global variable is written to during:
- the performance schema initialization
@@ -534,3 +540,6 @@ void reset_instrument_info_waits()
reset_file_info_waits();
}
+/**
+ @}
+*/
=== modified file 'storage/perfschema/pse_table.h'
--- a/storage/perfschema/pse_table.h 2009-01-24 02:51:45 +0000
+++ b/storage/perfschema/pse_table.h 2009-01-28 04:44:09 +0000
@@ -21,6 +21,11 @@ struct TABLE;
struct pse_table_info;
/**
+ \addtogroup Performance_schema_engine
+ @{
+*/
+
+/**
An abstract PERFORMANCE_SCHEMA table.
Every table implemented in the performance schema schema and storage engine
derives from this class.
@@ -136,4 +141,7 @@ protected:
bool pse_show_status(handlerton *hton, THD *thd,
stat_print_fn *print, enum ha_stat_type stat);
+/**
+ @}
+*/
#endif
=== modified file 'storage/perfschema/table_all_instr.h'
--- a/storage/perfschema/table_all_instr.h 2009-01-24 02:51:45 +0000
+++ b/storage/perfschema/table_all_instr.h 2009-01-28 04:44:09 +0000
@@ -21,6 +21,11 @@
#include "pse_table.h"
/**
+ \addtogroup Performance_schema_tables
+ @{
+*/
+
+/**
Position of a cursor on table_all_instr_info.
*/
struct pos_all_instr_info
@@ -90,4 +95,7 @@ private:
pos_all_instr m_next_pos;
};
+/**
+ @}
+*/
#endif
=== modified file 'storage/perfschema/table_events_waits.h'
--- a/storage/perfschema/table_events_waits.h 2009-01-26 19:55:16 +0000
+++ b/storage/perfschema/table_events_waits.h 2009-01-28 04:44:09 +0000
@@ -23,6 +23,11 @@ struct PSE_thread;
struct PSE_events_waits;
/**
+ \addtogroup Performance_schema_tables
+ @{
+*/
+
+/**
A row of table_events_waits_common
*/
struct row_events_waits
@@ -167,4 +172,7 @@ private:
pos_events_waits_history_long m_next_pos;
};
+/**
+ @}
+*/
#endif
=== modified file 'storage/perfschema/table_events_waits_summary.h'
--- a/storage/perfschema/table_events_waits_summary.h 2009-01-27 01:57:26 +0000
+++ b/storage/perfschema/table_events_waits_summary.h 2009-01-28 04:44:09 +0000
@@ -23,6 +23,11 @@
#include "table_all_instr.h"
/**
+ \addtogroup Performance_schema_tables
+ @{
+*/
+
+/**
A row of table PERFORMANCE_SCHEMA.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME.
*/
struct row_events_waits_summary_by_thread_by_event_name
@@ -179,4 +184,7 @@ protected:
bool m_row_exists;
};
+/**
+ @}
+*/
#endif
=== modified file 'storage/perfschema/table_file_instances.h'
--- a/storage/perfschema/table_file_instances.h 2009-01-27 01:57:26 +0000
+++ b/storage/perfschema/table_file_instances.h 2009-01-28 04:44:09 +0000
@@ -20,6 +20,11 @@
#include "pse_table.h"
/**
+ \addtogroup Performance_schema_tables
+ @{
+*/
+
+/**
A row of PERFORMANCE_SCHEMA.FILE_INSTANCES.
*/
struct row_file_instances
@@ -72,4 +77,7 @@ private:
bool m_row_exists;
};
+/**
+ @}
+*/
#endif
=== modified file 'storage/perfschema/table_file_summary.h'
--- a/storage/perfschema/table_file_summary.h 2009-01-24 02:51:45 +0000
+++ b/storage/perfschema/table_file_summary.h 2009-01-28 04:44:09 +0000
@@ -22,6 +22,11 @@
#include "pse_instr.h"
/**
+ \addtogroup Performance_schema_tables
+ @{
+*/
+
+/**
A row of PERFORMANCE_SCHEMA.FILE_SUMMARY_BY_EVENT_NAME.
*/
struct row_file_summary_by_event_name
@@ -131,4 +136,7 @@ protected:
bool m_row_exists;
};
+/**
+ @}
+*/
#endif
=== modified file 'storage/perfschema/table_performance_timers.h'
--- a/storage/perfschema/table_performance_timers.h 2009-01-24 02:51:45 +0000
+++ b/storage/perfschema/table_performance_timers.h 2009-01-28 04:44:09 +0000
@@ -20,6 +20,11 @@
#include "pse_table.h"
/**
+ \addtogroup Performance_schema_tables
+ @{
+*/
+
+/**
A row of PERFORMANCE_SCHEMA.PERFORMANCE_TIMERS.
*/
struct row_performance_timers
@@ -70,4 +75,7 @@ private:
row_performance_timers m_data[COUNT_TIMER_NAME];
};
+/**
+ @}
+*/
#endif
=== modified file 'storage/perfschema/table_processlist.h'
--- a/storage/perfschema/table_processlist.h 2009-01-24 02:51:45 +0000
+++ b/storage/perfschema/table_processlist.h 2009-01-28 04:44:09 +0000
@@ -22,6 +22,11 @@
struct PSE_thread;
/**
+ \addtogroup Performance_schema_tables
+ @{
+*/
+
+/**
A row of PERFORMANCE_SCHEMA.PROCESSLIST.
*/
struct row_processlist
@@ -74,4 +79,7 @@ private:
bool m_row_exists;
};
+/**
+ @}
+*/
#endif
=== modified file 'storage/perfschema/table_setup_actors.h'
--- a/storage/perfschema/table_setup_actors.h 2009-01-24 02:51:45 +0000
+++ b/storage/perfschema/table_setup_actors.h 2009-01-28 04:44:09 +0000
@@ -20,6 +20,11 @@
#include "pse_column_types.h"
/**
+ \addtogroup Performance_schema_tables
+ @{
+*/
+
+/**
A row of PERFORMANCE_SCHEMA.SETUP_ACTORS.
*/
struct row_setup_actors
@@ -74,5 +79,8 @@ private:
row_setup_actors *m_row;
};
+/**
+ @}
+*/
#endif
=== modified file 'storage/perfschema/table_setup_consumers.h'
--- a/storage/perfschema/table_setup_consumers.h 2009-01-24 02:51:45 +0000
+++ b/storage/perfschema/table_setup_consumers.h 2009-01-28 04:44:09 +0000
@@ -20,6 +20,11 @@
#include "pse_table.h"
/**
+ \addtogroup Performance_schema_tables
+ @{
+*/
+
+/**
A row of PERFORMANCE_SCHEMA.SETUP_CONSUMERS.
*/
struct row_setup_consumers
@@ -71,4 +76,7 @@ private:
row_setup_consumers *m_row;
};
+/**
+ @}
+*/
#endif
=== modified file 'storage/perfschema/table_setup_instruments.h'
--- a/storage/perfschema/table_setup_instruments.h 2009-01-24 02:51:45 +0000
+++ b/storage/perfschema/table_setup_instruments.h 2009-01-28 04:44:09 +0000
@@ -20,6 +20,11 @@
#include "pse_table.h"
/**
+ \addtogroup Performance_schema_tables
+ @{
+*/
+
+/**
A row of PERFORMANCE_SCHEMA.SETUP_INSTRUMENTS.
*/
struct row_setup_instruments
@@ -79,4 +84,7 @@ private:
bool m_row_exists;
};
+/**
+ @}
+*/
#endif
=== modified file 'storage/perfschema/table_setup_timers.h'
--- a/storage/perfschema/table_setup_timers.h 2009-01-24 02:51:45 +0000
+++ b/storage/perfschema/table_setup_timers.h 2009-01-28 04:44:09 +0000
@@ -20,6 +20,11 @@
#include "pse_table.h"
/**
+ \addtogroup Performance_schema_tables
+ @{
+*/
+
+/**
A row of table PERFORMANCE_SCHEMA.SETUP_TIMERS.
*/
struct row_setup_timers
@@ -71,4 +76,7 @@ private:
row_setup_timers *m_row;
};
+/**
+ @}
+*/
#endif
=== modified file 'storage/perfschema/table_sync_instances.h'
--- a/storage/perfschema/table_sync_instances.h 2009-01-27 01:57:26 +0000
+++ b/storage/perfschema/table_sync_instances.h 2009-01-28 04:44:09 +0000
@@ -24,6 +24,11 @@ struct PSE_rwlock;
struct PSE_cond;
/**
+ \addtogroup Performance_schema_tables
+ @{
+*/
+
+/**
A row of table PERFORMANCE_SCHEMA.MUTEX_INSTANCES.
*/
struct row_mutex_instances
@@ -181,4 +186,7 @@ private:
bool m_row_exists;
};
+/**
+ @}
+*/
#endif
| Thread |
|---|
| • bzr commit into mysql-6.0-perf branch (marc.alff:2777) | Marc Alff | 28 Jan |