summaryrefslogtreecommitdiff
path: root/sql/thread_pool_info.cc
diff options
context:
space:
mode:
authorAlexander Barkov <bar@mariadb.com>2019-06-16 07:51:59 +0400
committerAlexander Barkov <bar@mariadb.com>2019-06-16 19:03:47 +0400
commit4156b1a2602915d6adf983e5c8efaa4f41df3d21 (patch)
tree3e5d25df62e59d5d73025557b87b63973fbf83b3 /sql/thread_pool_info.cc
parent984d7100cdab91fb23d97c05e8b6329a90fe1583 (diff)
downloadmariadb-git-4156b1a2602915d6adf983e5c8efaa4f41df3d21.tar.gz
MDEV-19772 Add helper classes for ST_FIELD_INFO
Diffstat (limited to 'sql/thread_pool_info.cc')
-rw-r--r--sql/thread_pool_info.cc87
1 files changed, 52 insertions, 35 deletions
diff --git a/sql/thread_pool_info.cc b/sql/thread_pool_info.cc
index 56760105668..99ac3cd148c 100644
--- a/sql/thread_pool_info.cc
+++ b/sql/thread_pool_info.cc
@@ -18,24 +18,29 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 - 1301 USA*/
#include <my_global.h>
#include <sql_class.h>
-#include <table.h>
+#include <sql_i_s.h>
#include <mysql/plugin.h>
#include <sql_show.h>
#include <threadpool_generic.h>
+namespace Show {
+
static ST_FIELD_INFO groups_fields_info[] =
{
- {"GROUP_ID", 6, MYSQL_TYPE_LONG, 0, 0, 0, 0},
- {"CONNECTIONS", 6, MYSQL_TYPE_LONG, 0, 0, 0, 0},
- {"THREADS", 6, MYSQL_TYPE_LONG, 0, 0, 0, 0},
- {"ACTIVE_THREADS",6, MYSQL_TYPE_LONG, 0, 0, 0, 0},
- {"STANDBY_THREADS", 6, MYSQL_TYPE_LONG, 0, 0, 0,0},
- {"QUEUE_LENGTH", 6, MYSQL_TYPE_LONG, 0,0, 0, 0},
- {"HAS_LISTENER",1,MYSQL_TYPE_TINY, 0, 0, 0, 0},
- {"IS_STALLED",1,MYSQL_TYPE_TINY, 0, 0, 0, 0},
- {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, 0}
+ Column("GROUP_ID", SLong(6), NOT_NULL),
+ Column("CONNECTIONS", SLong(6), NOT_NULL),
+ Column("THREADS", SLong(6), NOT_NULL),
+ Column("ACTIVE_THREADS", SLong(6), NOT_NULL),
+ Column("STANDBY_THREADS", SLong(6), NOT_NULL),
+ Column("QUEUE_LENGTH", SLong(6), NOT_NULL),
+ Column("HAS_LISTENER", STiny(1), NOT_NULL),
+ Column("IS_STALLED", STiny(1), NOT_NULL),
+ CEnd()
};
+} // namespace Show
+
+
static int groups_fill_table(THD* thd, TABLE_LIST* tables, COND*)
{
if (!all_groups)
@@ -74,22 +79,26 @@ static int groups_fill_table(THD* thd, TABLE_LIST* tables, COND*)
static int groups_init(void* p)
{
ST_SCHEMA_TABLE* schema = (ST_SCHEMA_TABLE*)p;
- schema->fields_info = groups_fields_info;
+ schema->fields_info = Show::groups_fields_info;
schema->fill_table = groups_fill_table;
return 0;
}
+namespace Show {
+
static ST_FIELD_INFO queues_field_info[] =
{
- {"GROUP_ID", 6, MYSQL_TYPE_LONG, 0, 0, 0, 0},
- {"POSITION",6,MYSQL_TYPE_LONG, 0, 0, 0, 0},
- {"PRIORITY", 1, MYSQL_TYPE_LONG, 0, 0, 0, 0},
- {"CONNECTION_ID", 19, MYSQL_TYPE_LONGLONG, MY_I_S_UNSIGNED, 0, 0, 0},
- {"QUEUEING_TIME_MICROSECONDS", 19, MYSQL_TYPE_LONGLONG, 0, 0, 0, 0},
- {0, 0, MYSQL_TYPE_NULL, 0, 0, 0, 0}
+ Column("GROUP_ID", SLong(6), NOT_NULL),
+ Column("POSITION", SLong(6), NOT_NULL),
+ Column("PRIORITY", SLong(1), NOT_NULL),
+ Column("CONNECTION_ID", ULonglong(19), NOT_NULL),
+ Column("QUEUEING_TIME_MICROSECONDS", SLonglong(19), NOT_NULL),
+ CEnd()
};
+} // namespace Show
+
typedef connection_queue_t::Iterator connection_queue_iterator;
static int queues_fill_table(THD* thd, TABLE_LIST* tables, COND*)
@@ -140,27 +149,32 @@ static int queues_fill_table(THD* thd, TABLE_LIST* tables, COND*)
static int queues_init(void* p)
{
ST_SCHEMA_TABLE* schema = (ST_SCHEMA_TABLE*)p;
- schema->fields_info = queues_field_info;
+ schema->fields_info = Show::queues_field_info;
schema->fill_table = queues_fill_table;
return 0;
}
+namespace Show {
+
static ST_FIELD_INFO stats_fields_info[] =
{
- {"GROUP_ID", 6, MYSQL_TYPE_LONG, 0, 0, 0, 0},
- {"THREAD_CREATIONS",19,MYSQL_TYPE_LONGLONG,0,0, 0,0},
- {"THREAD_CREATIONS_DUE_TO_STALL",19,MYSQL_TYPE_LONGLONG,0,0, 0,0},
- {"WAKES",19,MYSQL_TYPE_LONGLONG,0,0, 0,0},
- {"WAKES_DUE_TO_STALL",19,MYSQL_TYPE_LONGLONG,0,0, 0,0},
- {"THROTTLES",19,MYSQL_TYPE_LONGLONG,0,0, 0,0},
- {"STALLS",19,MYSQL_TYPE_LONGLONG,0,0, 0, 0},
- {"POLLS_BY_LISTENER",19,MYSQL_TYPE_LONGLONG,0,0, 0, 0},
- {"POLLS_BY_WORKER",19,MYSQL_TYPE_LONGLONG,0,0, 0, 0},
- {"DEQUEUES_BY_LISTENER",19,MYSQL_TYPE_LONGLONG,0,0, 0, 0},
- {"DEQUEUES_BY_WORKER",19,MYSQL_TYPE_LONGLONG,0,0, 0, 0},
- {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, 0}
+ Column("GROUP_ID", SLong(6), NOT_NULL),
+ Column("THREAD_CREATIONS", SLonglong(19), NOT_NULL),
+ Column("THREAD_CREATIONS_DUE_TO_STALL", SLonglong(19), NOT_NULL),
+ Column("WAKES", SLonglong(19), NOT_NULL),
+ Column("WAKES_DUE_TO_STALL", SLonglong(19), NOT_NULL),
+ Column("THROTTLES", SLonglong(19), NOT_NULL),
+ Column("STALLS", SLonglong(19), NOT_NULL),
+ Column("POLLS_BY_LISTENER", SLonglong(19), NOT_NULL),
+ Column("POLLS_BY_WORKER", SLonglong(19), NOT_NULL),
+ Column("DEQUEUES_BY_LISTENER", SLonglong(19), NOT_NULL),
+ Column("DEQUEUES_BY_WORKER", SLonglong(19), NOT_NULL),
+ CEnd()
};
+} // namespace Show
+
+
static int stats_fill_table(THD* thd, TABLE_LIST* tables, COND*)
{
if (!all_groups)
@@ -206,21 +220,24 @@ static int stats_reset_table()
static int stats_init(void* p)
{
ST_SCHEMA_TABLE* schema = (ST_SCHEMA_TABLE*)p;
- schema->fields_info = stats_fields_info;
+ schema->fields_info = Show::stats_fields_info;
schema->fill_table = stats_fill_table;
schema->reset_table = stats_reset_table;
return 0;
}
+namespace Show {
static ST_FIELD_INFO waits_fields_info[] =
{
- {"REASON", 16, MYSQL_TYPE_STRING, 0, 0, 0, 0},
- {"COUNT",19,MYSQL_TYPE_LONGLONG,0,0, 0,0},
- {0, 0, MYSQL_TYPE_STRING, 0, 0, 0, 0}
+ Column("REASON", Varchar(16), NOT_NULL),
+ Column("COUNT", SLonglong(19), NOT_NULL),
+ CEnd()
};
+} // namespace Show
+
/* See thd_wait_type enum for explanation*/
static const LEX_CSTRING wait_reasons[THD_WAIT_LAST] =
{
@@ -267,7 +284,7 @@ static int waits_reset_table()
static int waits_init(void* p)
{
ST_SCHEMA_TABLE* schema = (ST_SCHEMA_TABLE*)p;
- schema->fields_info = waits_fields_info;
+ schema->fields_info = Show::waits_fields_info;
schema->fill_table = waits_fill_table;
schema->reset_table = waits_reset_table;
return 0;