~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/innobase/handler/data_dictionary.h

  • Committer: Brian Aker
  • Date: 2009-02-21 00:18:15 UTC
  • Revision ID: brian@tangent.org-20090221001815-x20e8h71e984lvs1
Completion (?) of uint conversion.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* - mode: c; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
 
 *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3
 
 *
4
 
 *  Copyright (C) 2010 Joseph Daly <skinny.moey@gmail.com> 
5
 
 *
6
 
 *  This program is free software; you can redistribute it and/or modify
7
 
 *  it under the terms of the GNU General Public License as published by
8
 
 *  the Free Software Foundation; either version 2 of the License, or
9
 
 *  (at your option) any later version.
10
 
 *
11
 
 *  This program is distributed in the hope that it will be useful,
12
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 
 *  GNU General Public License for more details.
15
 
 *
16
 
 *  You should have received a copy of the GNU General Public License
17
 
 *  along with this program; if not, write to the Free Software
18
 
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19
 
 */
20
 
 
21
 
#ifndef PLUGIN_INNOBASE_HANDLER_DATA_DICTIONARY_H
22
 
#define PLUGIN_INNOBASE_HANDLER_DATA_DICTIONARY_H 
23
 
 
24
 
#include "drizzled/plugin/table_function.h"
25
 
#include "drizzled/field.h"
26
 
 
27
 
#include "trx0i_s.h"
28
 
#include "trx0trx.h" /* for TRX_QUE_STATE_STR_MAX_LEN */
29
 
#include "buf0buddy.h" /* for i_s_cmpmem */
30
 
#include "buf0buf.h" /* for buf_pool and PAGE_ZIP_MIN_SIZE */
31
 
#include "ha_prototypes.h" /* for innobase_convert_name() */
32
 
#include "srv0start.h" /* for srv_was_started */
33
 
#include "btr0pcur.h"   /* for file sys_tables related info. */
34
 
#include "btr0types.h"
35
 
#include "dict0load.h"  /* for file sys_tables related info. */
36
 
#include "dict0mem.h"
37
 
#include "dict0types.h"
38
 
 
39
 
class InnodbSysTablesTool : public drizzled::plugin::TableFunction
40
 
{
41
 
public:
42
 
  InnodbSysTablesTool();
43
 
  class Generator : public drizzled::plugin::TableFunction::Generator
44
 
  {
45
 
  public:
46
 
    Generator(drizzled::Field **arg);
47
 
 
48
 
    bool populate();
49
 
  private:
50
 
    btr_pcur_t  pcur;
51
 
    const rec_t* rec;
52
 
    mem_heap_t* heap;
53
 
    mtr_t mtr;
54
 
  };
55
 
 
56
 
  Generator *generator(drizzled::Field **arg)
57
 
  {
58
 
    return new Generator(arg);
59
 
  }
60
 
};
61
 
 
62
 
class InnodbSysTableStatsTool : public drizzled::plugin::TableFunction
63
 
{
64
 
public:
65
 
  InnodbSysTableStatsTool();
66
 
  class Generator : public drizzled::plugin::TableFunction::Generator
67
 
  {
68
 
  public:
69
 
    Generator(drizzled::Field **arg);
70
 
 
71
 
    bool populate();
72
 
  private:
73
 
    btr_pcur_t  pcur;
74
 
    const rec_t* rec;
75
 
    mem_heap_t* heap;
76
 
    mtr_t mtr;
77
 
  };
78
 
 
79
 
  Generator *generator(drizzled::Field **arg)
80
 
  {
81
 
    return new Generator(arg);
82
 
  }
83
 
};
84
 
 
85
 
class InnodbSysIndexesTool : public drizzled::plugin::TableFunction
86
 
{
87
 
public:
88
 
  InnodbSysIndexesTool();
89
 
  class Generator : public drizzled::plugin::TableFunction::Generator
90
 
  {
91
 
  public:
92
 
    Generator(drizzled::Field **arg);
93
 
 
94
 
    bool populate();
95
 
  private:
96
 
    btr_pcur_t  pcur;
97
 
    const rec_t* rec;
98
 
    mem_heap_t* heap;
99
 
    mtr_t mtr;
100
 
  };
101
 
 
102
 
  Generator *generator(drizzled::Field **arg)
103
 
  {
104
 
    return new Generator(arg);
105
 
  }
106
 
};
107
 
 
108
 
class InnodbSysColumnsTool : public drizzled::plugin::TableFunction
109
 
{
110
 
public:
111
 
  InnodbSysColumnsTool();
112
 
  class Generator : public drizzled::plugin::TableFunction::Generator
113
 
  {
114
 
  public:
115
 
    Generator(drizzled::Field **arg);
116
 
 
117
 
    bool populate();
118
 
  private:
119
 
    btr_pcur_t  pcur;
120
 
    const rec_t* rec;
121
 
    mem_heap_t* heap;
122
 
    mtr_t mtr;
123
 
  };
124
 
 
125
 
  Generator *generator(drizzled::Field **arg)
126
 
  {
127
 
    return new Generator(arg);
128
 
  }
129
 
};
130
 
 
131
 
class InnodbSysFieldsTool : public drizzled::plugin::TableFunction
132
 
{
133
 
public:
134
 
  InnodbSysFieldsTool();
135
 
  class Generator : public drizzled::plugin::TableFunction::Generator
136
 
  {
137
 
  public:
138
 
    Generator(drizzled::Field **arg);
139
 
 
140
 
    bool populate();
141
 
  private:
142
 
    btr_pcur_t pcur;
143
 
    const rec_t* rec;
144
 
    mem_heap_t* heap;
145
 
    index_id_t last_id;
146
 
    mtr_t mtr;
147
 
  };
148
 
 
149
 
  Generator *generator(drizzled::Field **arg)
150
 
  {
151
 
    return new Generator(arg);
152
 
  }
153
 
};
154
 
 
155
 
class InnodbSysForeignTool : public drizzled::plugin::TableFunction
156
 
{
157
 
public:
158
 
  InnodbSysForeignTool();
159
 
  class Generator : public drizzled::plugin::TableFunction::Generator
160
 
  {
161
 
  public:
162
 
    Generator(drizzled::Field **arg);
163
 
 
164
 
    bool populate();
165
 
  private:
166
 
    btr_pcur_t pcur;
167
 
    const rec_t* rec;
168
 
    mem_heap_t* heap;
169
 
    mtr_t mtr;
170
 
  };
171
 
 
172
 
  Generator *generator(drizzled::Field **arg)
173
 
  {
174
 
    return new Generator(arg);
175
 
  }
176
 
};
177
 
 
178
 
class InnodbSysForeignColsTool : public drizzled::plugin::TableFunction
179
 
{
180
 
public:
181
 
  InnodbSysForeignColsTool();
182
 
  class Generator : public drizzled::plugin::TableFunction::Generator
183
 
  {
184
 
  public:
185
 
    Generator(drizzled::Field **arg);
186
 
 
187
 
    bool populate();
188
 
  private:
189
 
    btr_pcur_t pcur;
190
 
    const rec_t* rec;
191
 
    mem_heap_t* heap;
192
 
    mtr_t mtr;
193
 
  };
194
 
 
195
 
  Generator *generator(drizzled::Field **arg)
196
 
  {
197
 
    return new Generator(arg);
198
 
  }
199
 
};
200
 
 
201
 
class CmpTool : public drizzled::plugin::TableFunction
202
 
{
203
 
public:
204
 
 
205
 
  CmpTool(bool reset);
206
 
 
207
 
  class Generator : public drizzled::plugin::TableFunction::Generator
208
 
  {
209
 
  public:
210
 
    Generator(drizzled::Field **arg, bool outer_reset);
211
 
                        
212
 
    bool populate();
213
 
  private:
214
 
    uint32_t record_number;
215
 
    bool inner_reset;
216
 
  };
217
 
 
218
 
  Generator *generator(drizzled::Field **arg)
219
 
  {
220
 
    return new Generator(arg, outer_reset);
221
 
  }
222
 
private:
223
 
  bool outer_reset; 
224
 
};
225
 
 
226
 
class CmpmemTool : public drizzled::plugin::TableFunction
227
 
{
228
 
public:
229
 
 
230
 
  CmpmemTool(bool reset);
231
 
 
232
 
  class Generator : public drizzled::plugin::TableFunction::Generator
233
 
  {
234
 
  public:
235
 
    Generator(drizzled::Field **arg, bool outer_reset);
236
 
 
237
 
    ~Generator();
238
 
 
239
 
    bool populate();
240
 
  private:
241
 
    uint32_t record_number;
242
 
    bool inner_reset;
243
 
  };
244
 
 
245
 
  Generator *generator(drizzled::Field **arg)
246
 
  {
247
 
    return new Generator(arg, outer_reset);
248
 
  }
249
 
private:
250
 
  bool outer_reset;
251
 
};
252
 
 
253
 
class InnodbTrxTool : public drizzled::plugin::TableFunction
254
 
{
255
 
public:
256
 
 
257
 
  InnodbTrxTool(const char* in_table_name);
258
 
 
259
 
  class Generator : public drizzled::plugin::TableFunction::Generator
260
 
  {
261
 
  public:
262
 
    Generator(drizzled::Field **arg, const char* in_table_name);
263
 
 
264
 
    ~Generator();
265
 
 
266
 
    bool populate();
267
 
  private:
268
 
    void populate_innodb_trx();
269
 
    void populate_innodb_locks();
270
 
    void populate_innodb_lock_waits();
271
 
 
272
 
  private:
273
 
    uint32_t record_number;
274
 
    uint32_t number_rows;
275
 
    const char* table_name;
276
 
  };
277
 
 
278
 
  Generator *generator(drizzled::Field **arg)
279
 
  {
280
 
    return new Generator(arg, table_name);
281
 
  }
282
 
private:
283
 
  const char* table_name;
284
 
};
285
 
 
286
 
#endif /* PLUGIN_INNOBASE_HANDLER_DATA_DICTIONARY_H */