~drizzle-trunk/drizzle/development

2252.1.5 by Olaf van der Spek
Copyright
1
/* Drizzle
2
 * Copyright (C) 2011 Olaf van der Spek
3
 * 
4
 * This program is free software: you can redistribute it and/or modify
5
 * it under the terms of the GNU General Public License as published by
6
 * the Free Software Foundation, either version 2 of the License, or
7
 * (at your option) any later version.
8
 * 
9
 * This program is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
 * GNU General Public License for more details.
13
 * 
14
 * You should have received a copy of the GNU General Public License
15
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16
 */
17
2252.1.1 by Olaf van der Spek
Common fwd
18
#pragma once
19
2252.1.8 by Olaf van der Spek
Common fwd
20
#include <boost/shared_ptr.hpp>
2275.3.3 by Olaf van der Spek
Thread
21
#include <boost/thread/condition_variable.hpp>
22
#include <boost/thread/mutex.hpp>
2318.6.30 by Olaf van der Spek
Refactor
23
#include <cstring>
2318.6.112 by Olaf van der Spek
Move type::Time typedefs to common_fwd
24
#include <drizzled/visibility.h>
2440.2.14 by Olaf van der Spek
Refactor
25
#include <drizzled/util/data_ref.h>
2252.1.8 by Olaf van der Spek
Common fwd
26
#include <string>
2252.1.6 by Olaf van der Spek
Add namespace identifier
27
#include <vector>
28
2252.1.1 by Olaf van der Spek
Common fwd
29
namespace drizzled {
30
2252.1.2 by Olaf van der Spek
Common fwd
31
namespace catalog
32
{
33
  class Instance;
2252.1.20 by Olaf van der Spek
Common fwd
34
35
  namespace lock 
36
  {
37
    class Create;
38
    class Erase;
39
  }
40
}
41
42
namespace field 
43
{
2252.1.25 by Olaf van der Spek
Common fwd
44
  class Epoch;
2252.1.20 by Olaf van der Spek
Common fwd
45
  class TableShare;
46
}
47
48
namespace generator 
49
{
50
  class TableDefinitionCache;
51
52
  namespace catalog 
53
  {
54
    class Cache;
55
    class Instance;
56
  }
2252.1.2 by Olaf van der Spek
Common fwd
57
}
58
2252.1.1 by Olaf van der Spek
Common fwd
59
namespace internal
60
{
2296.1.2 by Brian Aker
A couple of additional fixes for the IO Cache name,
61
  struct io_cache_st;
2252.1.1 by Olaf van der Spek
Common fwd
62
  struct st_my_thread_var;
63
}
64
2252.1.6 by Olaf van der Spek
Add namespace identifier
65
namespace identifier
66
{
67
  class Catalog;
2252.1.2 by Olaf van der Spek
Common fwd
68
  class Schema;
69
  class Table;
70
  class User;
2252.1.6 by Olaf van der Spek
Add namespace identifier
71
72
  typedef int64_t Session;
73
74
  namespace catalog
75
  {
76
    typedef std::vector<Catalog> vector;
77
  }
78
79
  namespace schema
80
  {
81
    typedef std::vector<Schema> vector;
82
  }
83
84
  namespace table
85
  {
2252.1.10 by Olaf van der Spek
Common fwd
86
    // typedef message::Table::TableType Type;
2252.1.6 by Olaf van der Spek
Add namespace identifier
87
    typedef std::vector<Table> vector;
88
  }
89
90
  namespace user
91
  {
92
    typedef boost::shared_ptr<const User> ptr;
93
    typedef boost::shared_ptr<User> mptr;
94
  }
2252.1.1 by Olaf van der Spek
Common fwd
95
}
96
97
namespace item
98
{
99
  class Boolean;
100
  class False;
101
  class True;
102
}
103
104
namespace memory
105
{
106
  class Root;
107
}
108
109
namespace message
110
{
2252.1.21 by Olaf van der Spek
Common fwd
111
  class AlterSchemaStatement;
2252.1.17 by Olaf van der Spek
Common fwd
112
  class AlterTable;
2252.1.21 by Olaf van der Spek
Common fwd
113
  class CreateSchemaStatement;
114
  class CreateTableStatement;
115
  class DeleteData;
116
  class DeleteHeader;
117
  class DeleteRecord;
118
  class DropSchemaStatement;
119
  class DropTableStatement;
120
  class InsertData;
121
  class InsertHeader;
122
  class InsertRecord;
2252.1.1 by Olaf van der Spek
Common fwd
123
  class Resultset;
124
  class Schema;
2252.1.21 by Olaf van der Spek
Common fwd
125
  class SetVariableStatement;
2252.1.1 by Olaf van der Spek
Common fwd
126
  class Statement;
2263.3.5 by Olaf van der Spek
Refactor Open_tables_state
127
  class Table;
2252.1.1 by Olaf van der Spek
Common fwd
128
  class Transaction;
2252.1.21 by Olaf van der Spek
Common fwd
129
  class TruncateTableStatement;
130
  class UpdateData;
131
  class UpdateHeader;
132
  class UpdateRecord;
2252.1.1 by Olaf van der Spek
Common fwd
133
}
134
135
namespace module
136
{
2252.1.21 by Olaf van der Spek
Common fwd
137
  class Graph;
138
  class Library;
139
  class Manifest;
140
  class Module;
141
  class option_map;
2252.1.1 by Olaf van der Spek
Common fwd
142
  class Registry;
2252.1.21 by Olaf van der Spek
Common fwd
143
  class VertexHandle;
2252.1.1 by Olaf van der Spek
Common fwd
144
}
145
146
namespace plugin 
147
{ 
2252.1.20 by Olaf van der Spek
Common fwd
148
  class Catalog;
2252.1.1 by Olaf van der Spek
Common fwd
149
  class Client;
2252.1.25 by Olaf van der Spek
Common fwd
150
  class EventData;
151
  class EventObserver;
2252.1.1 by Olaf van der Spek
Common fwd
152
  class EventObserverList;
2252.1.17 by Olaf van der Spek
Common fwd
153
  class Function;
2252.1.25 by Olaf van der Spek
Common fwd
154
  class Listen;
2252.1.1 by Olaf van der Spek
Common fwd
155
  class MonitoredInTransaction;
2252.1.25 by Olaf van der Spek
Common fwd
156
  class NullClient;
2252.1.1 by Olaf van der Spek
Common fwd
157
  class Scheduler;
158
  class StorageEngine;
159
  class TransactionApplier;
160
  class TransactionReplicator;
161
  class TransactionalStorageEngine;
162
  class XaResourceManager;
2252.1.18 by Olaf van der Spek
Common fwd
163
  class XaStorageEngine;
2252.1.1 by Olaf van der Spek
Common fwd
164
}
165
166
namespace optimizer 
167
{ 
2252.1.21 by Olaf van der Spek
Common fwd
168
  class compare_functor;
2252.1.1 by Olaf van der Spek
Common fwd
169
  class CostVector; 
2252.1.25 by Olaf van der Spek
Common fwd
170
  class Parameter;
2252.1.1 by Olaf van der Spek
Common fwd
171
  class Position;
2252.1.25 by Olaf van der Spek
Common fwd
172
  class QuickRange;
173
  class QuickRangeSelect;
174
  class RangeParameter;
175
  class RorScanInfo;
176
  class SEL_ARG;
177
  class SEL_IMERGE;
178
  class SEL_TREE;
2252.1.1 by Olaf van der Spek
Common fwd
179
  class SqlSelect;
2252.1.25 by Olaf van der Spek
Common fwd
180
  struct st_qsel_param;
2252.1.1 by Olaf van der Spek
Common fwd
181
}
182
2252.1.2 by Olaf van der Spek
Common fwd
183
namespace session 
184
{ 
185
  class State; 
186
  class TableMessages;
2269.1.3 by Olaf van der Spek
Session Times
187
  class Times;
2252.1.2 by Olaf van der Spek
Common fwd
188
  class Transactions;
189
}
190
2252.1.13 by Olaf van der Spek
Common fwd
191
namespace sql
192
{
193
  class ResultSet;
194
}
195
2252.1.17 by Olaf van der Spek
Common fwd
196
namespace statement 
197
{ 
198
  class Statement; 
199
}
200
2252.1.1 by Olaf van der Spek
Common fwd
201
namespace table 
202
{ 
2272.1.1 by Olaf van der Spek
Refactor includes
203
  class Cache;
2252.1.25 by Olaf van der Spek
Common fwd
204
  class Concurrent;
2252.1.1 by Olaf van der Spek
Common fwd
205
  class Placeholder; 
2252.1.2 by Olaf van der Spek
Common fwd
206
  class Singular; 
2252.1.25 by Olaf van der Spek
Common fwd
207
208
  namespace instance
209
  {
210
    class Shared;
211
  }
2252.1.1 by Olaf van der Spek
Common fwd
212
}
213
214
namespace type 
215
{ 
216
  class Decimal;
217
  class Time; 
2318.6.112 by Olaf van der Spek
Move type::Time typedefs to common_fwd
218
219
  typedef int64_t datetime_t;
220
  typedef int64_t date_t;
221
  typedef int64_t epoch_t;
222
  typedef uint32_t usec_t;
2252.1.1 by Olaf van der Spek
Common fwd
223
}
224
2252.1.2 by Olaf van der Spek
Common fwd
225
namespace util
226
{
227
  class Storable;
2252.1.25 by Olaf van der Spek
Common fwd
228
  struct insensitive_equal_to;
229
  struct insensitive_hash;
2252.1.8 by Olaf van der Spek
Common fwd
230
231
  namespace string
232
  {
233
    typedef boost::shared_ptr<const std::string> ptr;
234
    typedef boost::shared_ptr<std::string> mptr;
235
    typedef std::vector<std::string> vector;
236
  }
2252.1.2 by Olaf van der Spek
Common fwd
237
}
238
2252.1.1 by Olaf van der Spek
Common fwd
239
typedef struct my_locale_st MY_LOCALE;
2252.1.25 by Olaf van der Spek
Common fwd
240
typedef struct st_columndef MI_COLUMNDEF;
2252.1.1 by Olaf van der Spek
Common fwd
241
242
class AlterColumn;
243
class AlterDrop;
244
class AlterInfo;
245
class Arg_comparator;
2252.1.21 by Olaf van der Spek
Common fwd
246
class Cached_item;
2252.1.1 by Olaf van der Spek
Common fwd
247
class CachedDirectory;
2252.1.25 by Olaf van der Spek
Common fwd
248
class COND_EQUAL;
2252.1.1 by Olaf van der Spek
Common fwd
249
class CopyField;
2252.1.17 by Olaf van der Spek
Common fwd
250
class CopyInfo;
2252.1.21 by Olaf van der Spek
Common fwd
251
class Create_func;
2254 by Brian Aker
Shift CHARSET_INFO to charset_info_st
252
class CreateField;
2252.1.17 by Olaf van der Spek
Common fwd
253
class Cursor;
2252.1.1 by Olaf van der Spek
Common fwd
254
class Date;
255
class DateTime;
2252.1.2 by Olaf van der Spek
Common fwd
256
class Diagnostics_area;
2252.1.21 by Olaf van der Spek
Common fwd
257
class DRIZZLE_ERROR;
2252.1.1 by Olaf van der Spek
Common fwd
258
class DrizzleLock;
259
class DrizzleXid;
260
class Field;
261
class Field_blob;
2252.1.17 by Olaf van der Spek
Common fwd
262
class file_exchange;
2252.1.1 by Olaf van der Spek
Common fwd
263
class ForeignKeyInfo;
264
class Hybrid_type;
265
class Hybrid_type_traits;
2252.1.2 by Olaf van der Spek
Common fwd
266
class Identifier;
2252.1.18 by Olaf van der Spek
Common fwd
267
class Index_hint;
2252.1.1 by Olaf van der Spek
Common fwd
268
class Internal_error_handler;
269
class Item;
270
class Item_bool_func2;
2252.1.21 by Olaf van der Spek
Common fwd
271
class Item_cache;
2252.1.1 by Olaf van der Spek
Common fwd
272
class Item_equal;
273
class Item_field;
2252.1.17 by Olaf van der Spek
Common fwd
274
class Item_func;
2252.1.21 by Olaf van der Spek
Common fwd
275
class Item_func_not_all;
2252.1.16 by Olaf van der Spek
Common fwd
276
class Item_func_set_user_var;
2252.1.1 by Olaf van der Spek
Common fwd
277
class Item_ident;
2252.1.21 by Olaf van der Spek
Common fwd
278
class Item_in_optimizer;
2252.1.1 by Olaf van der Spek
Common fwd
279
class Item_in_subselect;
2252.1.21 by Olaf van der Spek
Common fwd
280
class Item_maxmin_subselect;
2252.1.25 by Olaf van der Spek
Common fwd
281
class Item_outer_ref;
2252.1.1 by Olaf van der Spek
Common fwd
282
class Item_row;
2252.1.18 by Olaf van der Spek
Common fwd
283
class Item_subselect;
2252.1.1 by Olaf van der Spek
Common fwd
284
class Item_sum;
2252.1.21 by Olaf van der Spek
Common fwd
285
class Item_sum_avg;
2252.1.1 by Olaf van der Spek
Common fwd
286
class Item_sum_hybrid;
2252.1.21 by Olaf van der Spek
Common fwd
287
class Item_sum_std;
288
class Item_sum_variance;
2252.1.1 by Olaf van der Spek
Common fwd
289
class Join;
290
class JoinTable;
2252.1.18 by Olaf van der Spek
Common fwd
291
class KeyInfo;
2252.1.1 by Olaf van der Spek
Common fwd
292
class LEX;
2252.1.25 by Olaf van der Spek
Common fwd
293
class Lex_Column;
2252.1.1 by Olaf van der Spek
Common fwd
294
class Lex_input_stream;
2318.8.14 by Olaf van der Spek
Merge trunk
295
class lex_string_t;
2252.1.21 by Olaf van der Spek
Common fwd
296
class Name_resolution_context;
2252.1.18 by Olaf van der Spek
Common fwd
297
class NamedSavepoint;
298
class Natural_join_column;
2252.1.2 by Olaf van der Spek
Common fwd
299
class ResourceContext;
2252.1.21 by Olaf van der Spek
Common fwd
300
class RorIntersectReadPlan; 
2252.1.1 by Olaf van der Spek
Common fwd
301
class SecurityContext;
302
class Select_Lex;
303
class Select_Lex_Unit;
2252.1.21 by Olaf van der Spek
Common fwd
304
class select_result;
305
class select_result_interceptor;
2252.1.18 by Olaf van der Spek
Common fwd
306
class select_union;
2252.1.1 by Olaf van der Spek
Common fwd
307
class SendField;
308
class Session;
309
class SortField;
310
class SortParam;
2252.1.18 by Olaf van der Spek
Common fwd
311
class StoredKey;
2252.1.25 by Olaf van der Spek
Common fwd
312
class st_lex_symbol;
2252.1.1 by Olaf van der Spek
Common fwd
313
class String;
2252.1.21 by Olaf van der Spek
Common fwd
314
class subselect_engine;
315
class subselect_hash_sj_engine;
316
class sys_var;
317
class sys_var_str;
318
class system_status_var;
2252.1.1 by Olaf van der Spek
Common fwd
319
class Table;
2252.1.21 by Olaf van der Spek
Common fwd
320
class Table_ident;
2252.1.1 by Olaf van der Spek
Common fwd
321
class TableList;
322
class TableShare;
323
class TableShareInstance;
2252.1.18 by Olaf van der Spek
Common fwd
324
class Temporal;
2252.1.25 by Olaf van der Spek
Common fwd
325
class TemporalInterval;
326
class TemporalIntervalDayOrLess;
327
class TemporalIntervalDayOrWeek;
328
class TemporalIntervalYear;
329
class TemporalIntervalYearMonth;
2252.1.1 by Olaf van der Spek
Common fwd
330
class Time;
2252.1.21 by Olaf van der Spek
Common fwd
331
class Time_zone;
2252.1.18 by Olaf van der Spek
Common fwd
332
class Timestamp;
333
class Tmp_Table_Param;
2252.1.21 by Olaf van der Spek
Common fwd
334
class TYPELIB;
335
class Unique;
2252.1.1 by Olaf van der Spek
Common fwd
336
class user_var_entry;
337
class var;
2252.1.25 by Olaf van der Spek
Common fwd
338
class XID;
2254 by Brian Aker
Shift CHARSET_INFO to charset_info_st
339
2252.1.1 by Olaf van der Spek
Common fwd
340
struct CacheField;
2252.1.2 by Olaf van der Spek
Common fwd
341
struct Ha_data;
2254 by Brian Aker
Shift CHARSET_INFO to charset_info_st
342
struct charset_info_st;
2252.1.1 by Olaf van der Spek
Common fwd
343
struct option;
344
struct Order;
345
2252.1.2 by Olaf van der Spek
Common fwd
346
typedef Item COND;
2252.1.16 by Olaf van der Spek
Common fwd
347
typedef uint64_t query_id_t;
2252.1.6 by Olaf van der Spek
Add namespace identifier
348
typedef int64_t session_id_t;
2252.1.2 by Olaf van der Spek
Common fwd
349
typedef uint64_t my_xid;
350
2252.1.1 by Olaf van der Spek
Common fwd
351
} // namespace drizzled