21
21
#include <config.h>
22
#include "status_helper.h"
22
23
#include <boost/lexical_cast.hpp>
23
#include "status_helper.h"
24
#include <drizzled/open_tables_state.h>
24
25
#include <drizzled/set_var.h>
25
26
#include <drizzled/drizzled.h>
26
27
#include <plugin/myisam/myisam.h>
28
#include <drizzled/refresh_version.h>
32
30
using namespace std;
37
34
extern time_t server_start_time;
38
35
extern time_t flush_status_time;
68
65
static st_show_var_func_container show_connection_count_cont_new= { &show_connection_count_new };
70
string StatusHelper::fillHelper(system_status_var *status_var, char *value, SHOW_TYPE show_type)
67
string StatusHelper::fillHelper(system_status_var *status_var, const char *value, SHOW_TYPE show_type)
76
72
case SHOW_DOUBLE_STATUS:
77
73
value= ((char *) status_var + (ulong) value);
81
77
oss << *(double *) value;
82
return_value= oss.str();
84
79
case SHOW_LONG_STATUS:
85
80
value= ((char *) status_var + (ulong) value);
88
return_value=boost::lexical_cast<std::string>(*(long*) value);
83
return boost::lexical_cast<std::string>(*(long*) value);
90
85
case SHOW_LONGLONG_STATUS:
91
86
value= ((char *) status_var + (uint64_t) value);
93
88
case SHOW_LONGLONG:
94
return_value=boost::lexical_cast<std::string>(*(int64_t*) value);
89
return boost::lexical_cast<std::string>(*(int64_t*) value);
97
return_value=boost::lexical_cast<std::string>(*(size_t*) value);
91
return boost::lexical_cast<std::string>(*(size_t*) value);
100
return_value=boost::lexical_cast<std::string>((int64_t) *(ha_rows*) value);
93
return boost::lexical_cast<std::string>((int64_t) *(ha_rows*) value);
103
95
case SHOW_MY_BOOL:
104
return_value= *(bool*) value ? "ON" : "OFF";
96
return *(bool*) value ? "ON" : "OFF";
107
98
case SHOW_INT_NOFLUSH: // the difference lies in refresh_status()
108
return_value=boost::lexical_cast<std::string>((long) *(uint32_t*) value);
99
return boost::lexical_cast<std::string>((long) *(uint32_t*) value);
116
104
case SHOW_CHAR_PTR:
119
return_value= *(char**) value;
106
return *(char**) value;
124
109
break; // Return empty string
125
110
case SHOW_SYS: // Cannot happen
134
117
drizzle_show_var StatusHelper::status_vars_defs[]=
140
123
{"Connections", (char*) ¤t_global_counters.connections, SHOW_LONGLONG},
141
124
{"Created_tmp_disk_tables", (char*) offsetof(system_status_var, created_tmp_disk_tables), SHOW_LONGLONG_STATUS},
142
125
{"Created_tmp_tables", (char*) offsetof(system_status_var, created_tmp_tables), SHOW_LONGLONG_STATUS},
143
{"Flush_commands", (char*) &refresh_version, SHOW_INT_NOFLUSH},
126
{"Flush_commands", (char*) &g_refresh_version, SHOW_INT_NOFLUSH},
144
127
{"Handler_commit", (char*) offsetof(system_status_var, ha_commit_count), SHOW_LONGLONG_STATUS},
145
128
{"Handler_delete", (char*) offsetof(system_status_var, ha_delete_count), SHOW_LONGLONG_STATUS},
146
129
{"Handler_prepare", (char*) offsetof(system_status_var, ha_prepare_count), SHOW_LONGLONG_STATUS},