~drizzle-trunk/drizzle/development

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
/* Drizzle
 * Copyright (C) 2011 Olaf van der Spek
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 2 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

#pragma once

#include <boost/shared_ptr.hpp>
#include <boost/thread/condition_variable.hpp>
#include <boost/thread/mutex.hpp>
#include <cstring>
#include <drizzled/visibility.h>
#include <drizzled/util/data_ref.h>
#include <string>
#include <vector>

namespace drizzled {

namespace catalog
{
  class Instance;

  namespace lock 
  {
    class Create;
    class Erase;
  }
}

namespace field 
{
  class Epoch;
  class TableShare;
}

namespace generator 
{
  class TableDefinitionCache;

  namespace catalog 
  {
    class Cache;
    class Instance;
  }
}

namespace internal
{
  struct io_cache_st;
  struct st_my_thread_var;
}

namespace identifier
{
  class Catalog;
  class Schema;
  class Table;
  class User;

  typedef int64_t Session;

  namespace catalog
  {
    typedef std::vector<Catalog> vector;
  }

  namespace schema
  {
    typedef std::vector<Schema> vector;
  }

  namespace table
  {
    // typedef message::Table::TableType Type;
    typedef std::vector<Table> vector;
  }

  namespace user
  {
    typedef boost::shared_ptr<const User> ptr;
    typedef boost::shared_ptr<User> mptr;
  }
}

namespace item
{
  class Boolean;
  class False;
  class True;
}

namespace memory
{
  class Root;
}

namespace message
{
  class AlterSchemaStatement;
  class AlterTable;
  class CreateSchemaStatement;
  class CreateTableStatement;
  class DeleteData;
  class DeleteHeader;
  class DeleteRecord;
  class DropSchemaStatement;
  class DropTableStatement;
  class InsertData;
  class InsertHeader;
  class InsertRecord;
  class Resultset;
  class Schema;
  class SetVariableStatement;
  class Statement;
  class Table;
  class Transaction;
  class TruncateTableStatement;
  class UpdateData;
  class UpdateHeader;
  class UpdateRecord;
}

namespace module
{
  class Graph;
  class Library;
  class Manifest;
  class Module;
  class option_map;
  class Registry;
  class VertexHandle;
}

namespace plugin 
{ 
  class Catalog;
  class Client;
  class EventData;
  class EventObserver;
  class EventObserverList;
  class Function;
  class Listen;
  class MonitoredInTransaction;
  class NullClient;
  class Scheduler;
  class StorageEngine;
  class TransactionApplier;
  class TransactionReplicator;
  class TransactionalStorageEngine;
  class XaResourceManager;
  class XaStorageEngine;
}

namespace optimizer 
{ 
  class compare_functor;
  class CostVector; 
  class Parameter;
  class Position;
  class QuickRange;
  class QuickRangeSelect;
  class RangeParameter;
  class RorScanInfo;
  class SEL_ARG;
  class SEL_IMERGE;
  class SEL_TREE;
  class SqlSelect;
  struct st_qsel_param;
}

namespace session 
{ 
  class State; 
  class TableMessages;
  class Times;
  class Transactions;
}

namespace sql
{
  class ResultSet;
}

namespace statement 
{ 
  class Statement; 
}

namespace table 
{ 
  class Cache;
  class Concurrent;
  class Placeholder; 
  class Singular; 

  namespace instance
  {
    class Shared;
  }
}

namespace type 
{ 
  class Decimal;
  class Time; 

  typedef int64_t datetime_t;
  typedef int64_t date_t;
  typedef int64_t epoch_t;
  typedef uint32_t usec_t;
}

namespace util
{
  class Storable;
  struct insensitive_equal_to;
  struct insensitive_hash;

  namespace string
  {
    typedef boost::shared_ptr<const std::string> ptr;
    typedef boost::shared_ptr<std::string> mptr;
    typedef std::vector<std::string> vector;
  }
}

typedef struct my_locale_st MY_LOCALE;
typedef struct st_columndef MI_COLUMNDEF;

class AlterColumn;
class AlterDrop;
class AlterInfo;
class Arg_comparator;
class Cached_item;
class CachedDirectory;
class COND_EQUAL;
class CopyField;
class CopyInfo;
class Create_func;
class CreateField;
class Cursor;
class Date;
class DateTime;
class Diagnostics_area;
class DRIZZLE_ERROR;
class DrizzleLock;
class DrizzleXid;
class Field;
class Field_blob;
class file_exchange;
class ForeignKeyInfo;
class Hybrid_type;
class Hybrid_type_traits;
class Identifier;
class Index_hint;
class Internal_error_handler;
class Item;
class Item_bool_func2;
class Item_cache;
class Item_equal;
class Item_field;
class Item_func;
class Item_func_not_all;
class Item_func_set_user_var;
class Item_ident;
class Item_in_optimizer;
class Item_in_subselect;
class Item_maxmin_subselect;
class Item_outer_ref;
class Item_row;
class Item_subselect;
class Item_sum;
class Item_sum_avg;
class Item_sum_hybrid;
class Item_sum_std;
class Item_sum_variance;
class Join;
class JoinTable;
class KeyInfo;
class LEX;
class Lex_Column;
class Lex_input_stream;
class lex_string_t;
class Name_resolution_context;
class NamedSavepoint;
class Natural_join_column;
class ResourceContext;
class RorIntersectReadPlan; 
class SecurityContext;
class Select_Lex;
class Select_Lex_Unit;
class select_result;
class select_result_interceptor;
class select_union;
class SendField;
class Session;
class SortField;
class SortParam;
class StoredKey;
class st_lex_symbol;
class String;
class subselect_engine;
class subselect_hash_sj_engine;
class sys_var;
class sys_var_str;
class system_status_var;
class Table;
class Table_ident;
class TableList;
class TableShare;
class TableShareInstance;
class Temporal;
class TemporalInterval;
class TemporalIntervalDayOrLess;
class TemporalIntervalDayOrWeek;
class TemporalIntervalYear;
class TemporalIntervalYearMonth;
class Time;
class Time_zone;
class Timestamp;
class Tmp_Table_Param;
class TYPELIB;
class Unique;
class user_var_entry;
class var;
class XID;

struct CacheField;
struct Ha_data;
struct charset_info_st;
struct option;
struct Order;

typedef Item COND;
typedef uint64_t query_id_t;
typedef int64_t session_id_t;
typedef uint64_t my_xid;

} // namespace drizzled