00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00032 #pragma once
00033
00034 #include <drizzled/common_fwd.h>
00035 #include <drizzled/common.h>
00036 #include <drizzled/message/table.pb.h>
00037 #include <string>
00038 #include <vector>
00039
00040 namespace drizzled {
00041 namespace message {
00042
00044 enum TransformSqlVariant
00045 {
00046 ANSI,
00047 MYSQL_4,
00048 MYSQL_5,
00049 DRIZZLE
00050 };
00051
00053 enum TransformSqlError
00054 {
00055 NONE= 0,
00056 MISSING_HEADER= 1,
00057 MISSING_DATA= 2,
00058 UUID_MISMATCH= 3
00059 };
00060
00075 enum TransformSqlError
00076 transformStatementToSql(const Statement &source,
00077 std::vector<std::string> &sql_strings,
00078 enum TransformSqlVariant sql_variant= DRIZZLE,
00079 bool already_in_transaction= false);
00080
00103 enum TransformSqlError
00104 transformInsertStatementToSql(const InsertHeader &header,
00105 const InsertData &data,
00106 std::string &destination,
00107 enum TransformSqlVariant sql_variant= DRIZZLE);
00108
00124 enum TransformSqlError
00125 transformInsertRecordToSql(const InsertHeader &header,
00126 const InsertRecord &record,
00127 std::string &destination,
00128 enum TransformSqlVariant sql_variant= DRIZZLE);
00129
00143 enum TransformSqlError
00144 transformInsertHeaderToSql(const InsertHeader &header,
00145 std::string &destination,
00146 enum TransformSqlVariant sql_variant= DRIZZLE);
00147
00161 enum TransformSqlError
00162 transformUpdateHeaderToSql(const UpdateHeader &header,
00163 std::string &destination,
00164 enum TransformSqlVariant sql_variant= DRIZZLE);
00165
00181 enum TransformSqlError
00182 transformUpdateRecordToSql(const UpdateHeader &header,
00183 const UpdateRecord &record,
00184 std::string &destination,
00185 enum TransformSqlVariant sql_variant= DRIZZLE);
00186
00207 enum TransformSqlError
00208 transformDeleteStatementToSql(const DeleteHeader &header,
00209 const DeleteData &data,
00210 std::string &destination,
00211 enum TransformSqlVariant sql_variant= DRIZZLE);
00212
00228 enum TransformSqlError
00229 transformDeleteRecordToSql(const DeleteHeader &header,
00230 const DeleteRecord &record,
00231 std::string &destination,
00232 enum TransformSqlVariant sql_variant= DRIZZLE);
00233
00247 enum TransformSqlError
00248 transformDeleteHeaderToSql(const DeleteHeader &header,
00249 std::string &destination,
00250 enum TransformSqlVariant sql_variant= DRIZZLE);
00251
00266 enum TransformSqlError
00267 transformDropTableStatementToSql(const DropTableStatement &statement,
00268 std::string &destination,
00269 enum TransformSqlVariant sql_variant= DRIZZLE);
00270
00285 enum TransformSqlError
00286 transformTruncateTableStatementToSql(const TruncateTableStatement &statement,
00287 std::string &destination,
00288 enum TransformSqlVariant sql_variant= DRIZZLE);
00289
00304 enum TransformSqlError
00305 transformCreateSchemaStatementToSql(const CreateSchemaStatement &statement,
00306 std::string &destination,
00307 enum TransformSqlVariant sql_variant= DRIZZLE);
00308
00323 enum TransformSqlError
00324 transformDropSchemaStatementToSql(const DropSchemaStatement &statement,
00325 std::string &destination,
00326 enum TransformSqlVariant sql_variant= DRIZZLE);
00327
00342 enum TransformSqlError
00343 transformAlterSchemaStatementToSql(const AlterSchemaStatement &statement,
00344 std::string &destination,
00345 enum TransformSqlVariant sql_variant= DRIZZLE);
00346
00361 enum TransformSqlError
00362 transformSetVariableStatementToSql(const SetVariableStatement &statement,
00363 std::string &destination,
00364 enum TransformSqlVariant sql_variant= DRIZZLE);
00365
00371 enum TransformSqlError
00372 transformCreateTableStatementToSql(const CreateTableStatement &statement,
00373 std::string &destination,
00374 enum TransformSqlVariant sql_variant= DRIZZLE);
00375
00388 enum TransformSqlError
00389 transformTableDefinitionToSql(const Table &table,
00390 std::string &destination,
00391 enum TransformSqlVariant sql_variant= DRIZZLE,
00392 bool with_schema= true);
00393
00411 enum TransformSqlError
00412 transformTableOptionsToSql(const Table::TableOptions &table_options,
00413 std::string &destination,
00414 enum TransformSqlVariant sql_variant= DRIZZLE);
00415
00430 enum TransformSqlError
00431 transformIndexDefinitionToSql(const Table::Index &index,
00432 const Table &table,
00433 std::string &destination,
00434 enum TransformSqlVariant sql_variant= DRIZZLE);
00435
00450 enum TransformSqlError
00451 transformForeignKeyConstraintDefinitionToSql(const Table::ForeignKeyConstraint &fkey,
00452 const Table &table,
00453 std::string &destination,
00454 enum TransformSqlVariant sql_variant = DRIZZLE);
00455
00469 enum TransformSqlError
00470 transformFieldDefinitionToSql(const Table::Field &field,
00471 std::string &destination,
00472 enum TransformSqlVariant sql_variant= DRIZZLE);
00473
00480 bool shouldQuoteFieldValue(Table::Field::FieldType in_type);
00481
00482 drizzled::message::Table::Field::FieldType internalFieldTypeToFieldProtoType(enum enum_field_types type);
00483
00491 bool transactionContainsBulkSegment(const Transaction &transaction);
00492
00493 }
00494 }
00495