00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #pragma once
00019
00020 #include <boost/shared_ptr.hpp>
00021 #include <boost/thread/condition_variable.hpp>
00022 #include <boost/thread/mutex.hpp>
00023 #include <cstring>
00024 #include <drizzled/visibility.h>
00025 #include <drizzled/util/data_ref.h>
00026 #include <string>
00027 #include <vector>
00028
00029 namespace drizzled {
00030
00031 namespace catalog
00032 {
00033 class Instance;
00034
00035 namespace lock
00036 {
00037 class Create;
00038 class Erase;
00039 }
00040 }
00041
00042 namespace field
00043 {
00044 class Epoch;
00045 class TableShare;
00046 }
00047
00048 namespace generator
00049 {
00050 class TableDefinitionCache;
00051
00052 namespace catalog
00053 {
00054 class Cache;
00055 class Instance;
00056 }
00057 }
00058
00059 namespace internal
00060 {
00061 struct io_cache_st;
00062 struct st_my_thread_var;
00063 }
00064
00065 namespace identifier
00066 {
00067 class Catalog;
00068 class Schema;
00069 class Table;
00070 class User;
00071
00072 typedef int64_t Session;
00073
00074 namespace catalog
00075 {
00076 typedef std::vector<Catalog> vector;
00077 }
00078
00079 namespace schema
00080 {
00081 typedef std::vector<Schema> vector;
00082 }
00083
00084 namespace table
00085 {
00086
00087 typedef std::vector<Table> vector;
00088 }
00089
00090 namespace user
00091 {
00092 typedef boost::shared_ptr<const User> ptr;
00093 typedef boost::shared_ptr<User> mptr;
00094 }
00095 }
00096
00097 namespace item
00098 {
00099 class Boolean;
00100 class False;
00101 class True;
00102 }
00103
00104 namespace memory
00105 {
00106 class Root;
00107 }
00108
00109 namespace message
00110 {
00111 class AlterSchemaStatement;
00112 class AlterTable;
00113 class CreateSchemaStatement;
00114 class CreateTableStatement;
00115 class DeleteData;
00116 class DeleteHeader;
00117 class DeleteRecord;
00118 class DropSchemaStatement;
00119 class DropTableStatement;
00120 class InsertData;
00121 class InsertHeader;
00122 class InsertRecord;
00123 class Resultset;
00124 class Schema;
00125 class SetVariableStatement;
00126 class Statement;
00127 class Table;
00128 class Transaction;
00129 class TruncateTableStatement;
00130 class UpdateData;
00131 class UpdateHeader;
00132 class UpdateRecord;
00133 }
00134
00135 namespace module
00136 {
00137 class Graph;
00138 class Library;
00139 class Manifest;
00140 class Module;
00141 class option_map;
00142 class Registry;
00143 class VertexHandle;
00144 }
00145
00146 namespace plugin
00147 {
00148 class Catalog;
00149 class Client;
00150 class EventData;
00151 class EventObserver;
00152 class EventObserverList;
00153 class Function;
00154 class Listen;
00155 class MonitoredInTransaction;
00156 class NullClient;
00157 class Scheduler;
00158 class StorageEngine;
00159 class TransactionApplier;
00160 class TransactionReplicator;
00161 class TransactionalStorageEngine;
00162 class XaResourceManager;
00163 class XaStorageEngine;
00164 }
00165
00166 namespace optimizer
00167 {
00168 class compare_functor;
00169 class CostVector;
00170 class Parameter;
00171 class Position;
00172 class QuickRange;
00173 class QuickRangeSelect;
00174 class RangeParameter;
00175 class RorScanInfo;
00176 class SEL_ARG;
00177 class SEL_IMERGE;
00178 class SEL_TREE;
00179 class SqlSelect;
00180 struct st_qsel_param;
00181 }
00182
00183 namespace session
00184 {
00185 class State;
00186 class TableMessages;
00187 class Times;
00188 class Transactions;
00189 }
00190
00191 namespace sql
00192 {
00193 class ResultSet;
00194 }
00195
00196 namespace statement
00197 {
00198 class Statement;
00199 }
00200
00201 namespace table
00202 {
00203 class Cache;
00204 class Concurrent;
00205 class Placeholder;
00206 class Singular;
00207
00208 namespace instance
00209 {
00210 class Shared;
00211 }
00212 }
00213
00214 namespace type
00215 {
00216 class Decimal;
00217 class Time;
00218
00219 typedef int64_t datetime_t;
00220 typedef int64_t date_t;
00221 typedef int64_t epoch_t;
00222 typedef uint32_t usec_t;
00223 }
00224
00225 namespace util
00226 {
00227 class Storable;
00228 struct insensitive_equal_to;
00229 struct insensitive_hash;
00230
00231 namespace string
00232 {
00233 typedef boost::shared_ptr<const std::string> ptr;
00234 typedef boost::shared_ptr<std::string> mptr;
00235 typedef std::vector<std::string> vector;
00236 }
00237 }
00238
00239 typedef struct my_locale_st MY_LOCALE;
00240 typedef struct st_columndef MI_COLUMNDEF;
00241
00242 class AlterColumn;
00243 class AlterDrop;
00244 class AlterInfo;
00245 class Arg_comparator;
00246 class Cached_item;
00247 class CachedDirectory;
00248 class COND_EQUAL;
00249 class CopyField;
00250 class CopyInfo;
00251 class Create_func;
00252 class CreateField;
00253 class Cursor;
00254 class Date;
00255 class DateTime;
00256 class Diagnostics_area;
00257 class DRIZZLE_ERROR;
00258 class DrizzleLock;
00259 class DrizzleXid;
00260 class Field;
00261 class Field_blob;
00262 class file_exchange;
00263 class ForeignKeyInfo;
00264 class Hybrid_type;
00265 class Hybrid_type_traits;
00266 class Identifier;
00267 class Index_hint;
00268 class Internal_error_handler;
00269 class Item;
00270 class Item_bool_func2;
00271 class Item_cache;
00272 class Item_equal;
00273 class Item_field;
00274 class Item_func;
00275 class Item_func_not_all;
00276 class Item_func_set_user_var;
00277 class Item_ident;
00278 class Item_in_optimizer;
00279 class Item_in_subselect;
00280 class Item_maxmin_subselect;
00281 class Item_outer_ref;
00282 class Item_row;
00283 class Item_subselect;
00284 class Item_sum;
00285 class Item_sum_avg;
00286 class Item_sum_hybrid;
00287 class Item_sum_std;
00288 class Item_sum_variance;
00289 class Join;
00290 class JoinTable;
00291 class KeyInfo;
00292 class LEX;
00293 class Lex_Column;
00294 class Lex_input_stream;
00295 class lex_string_t;
00296 class Name_resolution_context;
00297 class NamedSavepoint;
00298 class Natural_join_column;
00299 class ResourceContext;
00300 class RorIntersectReadPlan;
00301 class SecurityContext;
00302 class Select_Lex;
00303 class Select_Lex_Unit;
00304 class select_result;
00305 class select_result_interceptor;
00306 class select_union;
00307 class SendField;
00308 class Session;
00309 class SortField;
00310 class SortParam;
00311 class StoredKey;
00312 class st_lex_symbol;
00313 class String;
00314 class subselect_engine;
00315 class subselect_hash_sj_engine;
00316 class sys_var;
00317 class sys_var_str;
00318 class system_status_var;
00319 class Table;
00320 class Table_ident;
00321 class TableList;
00322 class TableShare;
00323 class TableShareInstance;
00324 class Temporal;
00325 class TemporalInterval;
00326 class TemporalIntervalDayOrLess;
00327 class TemporalIntervalDayOrWeek;
00328 class TemporalIntervalYear;
00329 class TemporalIntervalYearMonth;
00330 class Time;
00331 class Time_zone;
00332 class Timestamp;
00333 class Tmp_Table_Param;
00334 class TYPELIB;
00335 class Unique;
00336 class user_var_entry;
00337 class var;
00338 class XID;
00339
00340 struct CacheField;
00341 struct Ha_data;
00342 struct charset_info_st;
00343 struct option;
00344 struct Order;
00345
00346 typedef Item COND;
00347 typedef uint64_t query_id_t;
00348 typedef int64_t session_id_t;
00349 typedef uint64_t my_xid;
00350
00351 }