1
1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
2
* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4
* Copyright (C) 2008 Sun Microsystems
4
* Copyright (C) 2008 Sun Microsystems, Inc.
5
5
* Copyright (C) 2010 Joseph Daly
7
7
* This program is free software; you can redistribute it and/or modify
18
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22
#include "status_helper.h"
22
23
#include <boost/lexical_cast.hpp>
23
#include "status_helper.h"
24
#include "drizzled/set_var.h"
25
#include "drizzled/drizzled.h"
26
#include "plugin/myisam/myisam.h"
24
#include <drizzled/open_tables_state.h>
25
#include <drizzled/set_var.h>
26
#include <drizzled/drizzled.h>
27
#include <plugin/myisam/myisam.h>
30
30
using namespace std;
35
extern uint64_t refresh_version;
36
34
extern time_t server_start_time;
37
35
extern time_t flush_status_time;
67
65
static st_show_var_func_container show_connection_count_cont_new= { &show_connection_count_new };
69
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)
75
72
case SHOW_DOUBLE_STATUS:
76
73
value= ((char *) status_var + (ulong) value);
80
77
oss << *(double *) value;
81
return_value= oss.str();
83
79
case SHOW_LONG_STATUS:
84
80
value= ((char *) status_var + (ulong) value);
87
return_value=boost::lexical_cast<std::string>(*(long*) value);
83
return boost::lexical_cast<std::string>(*(long*) value);
89
85
case SHOW_LONGLONG_STATUS:
90
86
value= ((char *) status_var + (uint64_t) value);
92
88
case SHOW_LONGLONG:
93
return_value=boost::lexical_cast<std::string>(*(int64_t*) value);
89
return boost::lexical_cast<std::string>(*(int64_t*) value);
96
return_value=boost::lexical_cast<std::string>(*(size_t*) value);
91
return boost::lexical_cast<std::string>(*(size_t*) value);
99
return_value=boost::lexical_cast<std::string>((int64_t) *(ha_rows*) value);
93
return boost::lexical_cast<std::string>((int64_t) *(ha_rows*) value);
102
95
case SHOW_MY_BOOL:
103
return_value= *(bool*) value ? "ON" : "OFF";
96
return *(bool*) value ? "ON" : "OFF";
106
98
case SHOW_INT_NOFLUSH: // the difference lies in refresh_status()
107
return_value=boost::lexical_cast<std::string>((long) *(uint32_t*) value);
99
return boost::lexical_cast<std::string>((long) *(uint32_t*) value);
115
104
case SHOW_CHAR_PTR:
118
return_value= *(char**) value;
106
return *(char**) value;
123
109
break; // Return empty string
124
110
case SHOW_SYS: // Cannot happen
133
117
drizzle_show_var StatusHelper::status_vars_defs[]=
139
123
{"Connections", (char*) ¤t_global_counters.connections, SHOW_LONGLONG},
140
124
{"Created_tmp_disk_tables", (char*) offsetof(system_status_var, created_tmp_disk_tables), SHOW_LONGLONG_STATUS},
141
125
{"Created_tmp_tables", (char*) offsetof(system_status_var, created_tmp_tables), SHOW_LONGLONG_STATUS},
142
{"Flush_commands", (char*) &refresh_version, SHOW_INT_NOFLUSH},
126
{"Flush_commands", (char*) &g_refresh_version, SHOW_INT_NOFLUSH},
143
127
{"Handler_commit", (char*) offsetof(system_status_var, ha_commit_count), SHOW_LONGLONG_STATUS},
144
128
{"Handler_delete", (char*) offsetof(system_status_var, ha_delete_count), SHOW_LONGLONG_STATUS},
145
129
{"Handler_prepare", (char*) offsetof(system_status_var, ha_prepare_count), SHOW_LONGLONG_STATUS},