~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/info_schema/helper_methods.h

  • Committer: Brian Aker
  • Date: 2009-11-18 23:28:30 UTC
  • mfrom: (1215.2.25 is-split)
  • Revision ID: brian@gaz-20091118232830-v28y7o26squz3c9c
Merge of Padraig

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
19
 */
20
20
 
21
 
#ifndef PLUGIN_INFO_SCHEMA_INFO_SCHEMA_METHODS_H
22
 
#define PLUGIN_INFO_SCHEMA_INFO_SCHEMA_METHODS_H
 
21
#ifndef PLUGIN_INFO_SCHEMA_HELPER_METHODS_H
 
22
#define PLUGIN_INFO_SCHEMA_HELPER_METHODS_H
23
23
 
24
24
#include "drizzled/plugin/info_schema_table.h"
25
25
 
26
 
/**
27
 
 * @class CharSetISMethods
28
 
 * @brief
29
 
 *   Class which implements any methods that the 
30
 
 *   CHARACTER_SET I_S table needs besides the default
31
 
 *   methods.
32
 
 */
33
 
class CharSetISMethods : public drizzled::plugin::InfoSchemaMethods
34
 
{
35
 
public:
36
 
  virtual int fillTable(Session *session, 
37
 
                        TableList *tables);
38
 
  virtual int oldFormat(Session *session,
39
 
                        drizzled::plugin::InfoSchemaTable *schema_table) const;
40
 
};
41
 
 
42
 
/**
43
 
 * @class CollationISMethods
44
 
 * @brief
45
 
 *   Class which implements any methods that the Collations
46
 
 *   I_S table needs besides the default methods
47
 
 */
48
 
class CollationISMethods : public drizzled::plugin::InfoSchemaMethods
49
 
{
50
 
public:
51
 
  virtual int fillTable(Session *session,
52
 
                        TableList *tables);
53
 
};
54
 
 
55
 
/**
56
 
 * @class CollCharISMethods
57
 
 * @brief
58
 
 *   Class which implements any methods that the collation char set
59
 
 *   I_S table needs besides the default methods
60
 
 */
61
 
class CollCharISMethods : public drizzled::plugin::InfoSchemaMethods
62
 
{
63
 
public:
64
 
  virtual int fillTable(Session *session,
65
 
                        TableList *tables);
66
 
};
67
 
 
68
 
/**
69
 
 * @class ColumnsISMethods
70
 
 * @brief
71
 
 *   Class which implements any methods that the COLUMNS
72
 
 *   I_S table needs besides the default methods
73
 
 */
74
 
class ColumnsISMethods : public drizzled::plugin::InfoSchemaMethods
75
 
{
76
 
public:
77
 
  virtual int oldFormat(Session *session,
78
 
                        drizzled::plugin::InfoSchemaTable *schema_table) const;
79
 
};
80
 
 
81
 
/**
82
 
 * @class KeyColUsageISMethods
83
 
 * @brief
84
 
 *   Class which implements any methods that the key column usage
85
 
 *   I_S table needs besides the default methods
86
 
 */
87
 
class KeyColUsageISMethods : public drizzled::plugin::InfoSchemaMethods
88
 
{
89
 
public:
90
 
  virtual int processTable(Session *session, TableList *tables,
91
 
                           Table *table, bool res, LEX_STRING *db_name,
92
 
                           LEX_STRING *table_name) const;
93
 
};
94
 
 
95
 
/**
96
 
 * @class OpenTablesISMethods
97
 
 * @brief
98
 
 *   Class which implements any methods that the OPEN_TABLES
99
 
 *   I_S table needs besides the default methods
100
 
 */
101
 
class OpenTablesISMethods : public drizzled::plugin::InfoSchemaMethods
102
 
{
103
 
public:
104
 
  virtual int fillTable(Session *session,
105
 
                        TableList *tables);
106
 
};
107
 
 
108
 
/**
109
 
 * @class ModulesISMethods
110
 
 * @brief
111
 
 *   Class which implements any methods that the MODULES
112
 
 *   I_S table needs besides the default methods
113
 
 */
114
 
class ModulesISMethods : public drizzled::plugin::InfoSchemaMethods
115
 
{
116
 
public:
117
 
  virtual int fillTable(Session *session,
118
 
                        TableList *tables);
119
 
};
120
 
 
121
 
/**
122
 
 * @class PluginsISMethods
123
 
 * @brief
124
 
 *   Class which implements any methods that the PLUGINS
125
 
 *   I_S table needs besides the default methods
126
 
 */
127
 
class PluginsISMethods : public drizzled::plugin::InfoSchemaMethods
128
 
{
129
 
public:
130
 
  virtual int fillTable(Session *session,
131
 
                        TableList *tables);
132
 
};
133
 
 
134
 
/**
135
 
 * @class ProcessListISMethods
136
 
 * @brief
137
 
 *   Class which implements any methods that the PROCESSLIST
138
 
 *   I_S table needs besides the default methods
139
 
 */
140
 
class ProcessListISMethods : public drizzled::plugin::InfoSchemaMethods
141
 
{
142
 
public:
143
 
  virtual int fillTable(Session *session,
144
 
                        TableList *tables);
145
 
};
146
 
 
147
 
/**
148
 
 * @class RefConstraintISMethods
149
 
 * @brief
150
 
 *   Class which implements any methods that the REFERENTIAL_CONSTRAINTS
151
 
 *   I_S table needs besides the default methods
152
 
 */
153
 
class RefConstraintsISMethods : public drizzled::plugin::InfoSchemaMethods
154
 
{
155
 
public:
156
 
  /**
157
 
   * Fill and store records into I_S.referential_constraints table
158
 
   *
159
 
   * @param[in] session   thread handle
160
 
   * @param[in] tables    table list struct(processed table)
161
 
   * @param[in] table     I_S table
162
 
   * @param[in] res       1 means the error during opening of the processed table
163
 
   *                      0 means processed table is opened without error
164
 
   * @param[in] base_name db name
165
 
   * @param[in] file_name table name
166
 
   *
167
 
   * @return 0 on success; 1 on failure
168
 
   */
169
 
  virtual int processTable(Session *session, TableList *tables,
170
 
                           Table *table, bool res, LEX_STRING *db_name,
171
 
                           LEX_STRING *table_name) const;
172
 
};
173
 
 
174
 
/**
175
 
 * @class SchemataISMethods
176
 
 * @brief
177
 
 *   Class which implements any methods that the SCHEMATA
178
 
 *   I_S table needs besides the default methods
179
 
 */
180
 
class SchemataISMethods : public drizzled::plugin::InfoSchemaMethods
181
 
{
182
 
public:
183
 
  virtual int fillTable(Session *session,
184
 
                        TableList *tables);
185
 
  virtual int oldFormat(Session *session,
186
 
                        drizzled::plugin::InfoSchemaTable *schema_table) const;
187
 
};
188
 
 
189
 
/**
190
 
 * @class StatsISMethods
191
 
 * @brief
192
 
 *   Class which implements any methods that the SCHEMATA
193
 
 *   I_S table needs besides the default methods
194
 
 */
195
 
class StatsISMethods : public drizzled::plugin::InfoSchemaMethods
196
 
{
197
 
public:
198
 
  virtual int processTable(Session *session, TableList *tables,
199
 
                           Table *table, bool res, LEX_STRING *db_name,
200
 
                           LEX_STRING *table_name) const;
201
 
};
202
 
 
203
 
/**
204
 
 * @class StatusISMethods
205
 
 * @brief
206
 
 *   Class which implements any methods that the STATUS
207
 
 *   I_S table needs besides the default methods
208
 
 */
209
 
class StatusISMethods : public drizzled::plugin::InfoSchemaMethods
210
 
{
211
 
public:
212
 
  virtual int fillTable(Session *session, 
213
 
                        TableList *tables);
214
 
};
215
 
 
216
 
/**
217
 
 * @class TabConstraintsISMethods
218
 
 * @brief
219
 
 *   Class which implements any methods that the TABLE_CONSTRAINTS
220
 
 *   I_S table needs besides the default methods
221
 
 */
222
 
class TabConstraintsISMethods : public drizzled::plugin::InfoSchemaMethods
223
 
{
224
 
public:
225
 
  virtual int processTable(Session *session, TableList *tables,
226
 
                           Table *table, bool res, LEX_STRING *db_name,
227
 
                           LEX_STRING *table_name) const;
228
 
};
229
 
 
230
 
/**
231
 
 * @class TablesISMethods
232
 
 * @brief
233
 
 *   Class which implements any methods that the TABLE_NAMES
234
 
 *   I_S table needs besides the default methods
235
 
 */
236
 
class TablesISMethods : public drizzled::plugin::InfoSchemaMethods
237
 
{
238
 
public:
239
 
  virtual int processTable(Session *session, TableList *tables,
240
 
                           Table *table, bool res, LEX_STRING *db_name,
241
 
                           LEX_STRING *table_name) const;
242
 
};
243
 
 
244
 
/**
245
 
 * @class TabNamesISMethods
246
 
 * @brief
247
 
 *   Class which implements any methods that the TABLE_NAMES
248
 
 *   I_S table needs besides the default methods
249
 
 */
250
 
class TabNamesISMethods : public drizzled::plugin::InfoSchemaMethods
251
 
{
252
 
public:
253
 
  virtual int oldFormat(Session *session,
254
 
                        drizzled::plugin::InfoSchemaTable *schema_table) const;
255
 
};
256
 
 
257
 
/**
258
 
 * @class VariablesISMethods
259
 
 * @brief
260
 
 *   Class which implements any methods that the VARIABLES
261
 
 *   I_S table needs besides the default methods
262
 
 */
263
 
class VariablesISMethods : public drizzled::plugin::InfoSchemaMethods
264
 
{
265
 
public:
266
 
  virtual int fillTable(Session *session, 
267
 
                        TableList *tables);
268
 
};
269
 
 
270
 
#endif /* PLUGIN_INFO_SCHEMA_INFO_SCHEMA_METHODS_H */
 
26
bool show_status_array(Session *session, 
 
27
                       const char *wild,
 
28
                       SHOW_VAR *variables,
 
29
                       enum enum_var_type value_type,
 
30
                       struct system_status_var *status_var,
 
31
                       const char *prefix, Table *table,
 
32
                       bool ucase_names);
 
33
 
 
34
void store_key_column_usage(Table *table, 
 
35
                            LEX_STRING *db_name,
 
36
                            LEX_STRING *table_name, 
 
37
                            const char *key_name,
 
38
                            uint32_t key_len, 
 
39
                            const char *con_type, 
 
40
                            uint32_t con_len,
 
41
                            int64_t idx);
 
42
 
 
43
/**
 
44
 * Iterate through the given vector of columns and delete the memory that
 
45
 * has been allocated for them.
 
46
 *
 
47
 * @param[out] cols vector to clear and de-allocate memory from
 
48
 */
 
49
void clearColumns(std::vector<const drizzled::plugin::ColumnInfo *> &cols);
 
50
 
 
51
#endif /* PLUGIN_INFO_SCHEMA_HELPER_METHODS_H */