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/message/table.pb.h>
00035 #include <string>
00036 #include <vector>
00037
00038 #include <drizzled/common.h>
00039
00040 namespace drizzled
00041 {
00042 namespace message
00043 {
00044
00045 class Transaction;
00046 class Statement;
00047 class InsertHeader;
00048 class InsertData;
00049 class InsertRecord;
00050 class UpdateHeader;
00051 class UpdateData;
00052 class UpdateRecord;
00053 class DeleteHeader;
00054 class DeleteData;
00055 class DeleteRecord;
00056 class DropTableStatement;
00057 class CreateTableStatement;
00058 class TruncateTableStatement;
00059 class CreateSchemaStatement;
00060 class DropSchemaStatement;
00061 class AlterSchemaStatement;
00062 class SetVariableStatement;
00063
00065 enum TransformSqlVariant
00066 {
00067 ANSI,
00068 MYSQL_4,
00069 MYSQL_5,
00070 DRIZZLE
00071 };
00072
00074 enum TransformSqlError
00075 {
00076 NONE= 0,
00077 MISSING_HEADER= 1,
00078 MISSING_DATA= 2,
00079 UUID_MISMATCH= 3
00080 };
00081
00096 enum TransformSqlError
00097 transformStatementToSql(const Statement &source,
00098 std::vector<std::string> &sql_strings,
00099 enum TransformSqlVariant sql_variant= DRIZZLE,
00100 bool already_in_transaction= false);
00101
00124 enum TransformSqlError
00125 transformInsertStatementToSql(const InsertHeader &header,
00126 const InsertData &data,
00127 std::string &destination,
00128 enum TransformSqlVariant sql_variant= DRIZZLE);
00129
00145 enum TransformSqlError
00146 transformInsertRecordToSql(const InsertHeader &header,
00147 const InsertRecord &record,
00148 std::string &destination,
00149 enum TransformSqlVariant sql_variant= DRIZZLE);
00150
00164 enum TransformSqlError
00165 transformInsertHeaderToSql(const InsertHeader &header,
00166 std::string &destination,
00167 enum TransformSqlVariant sql_variant= DRIZZLE);
00168
00182 enum TransformSqlError
00183 transformUpdateHeaderToSql(const UpdateHeader &header,
00184 std::string &destination,
00185 enum TransformSqlVariant sql_variant= DRIZZLE);
00186
00202 enum TransformSqlError
00203 transformUpdateRecordToSql(const UpdateHeader &header,
00204 const UpdateRecord &record,
00205 std::string &destination,
00206 enum TransformSqlVariant sql_variant= DRIZZLE);
00207
00228 enum TransformSqlError
00229 transformDeleteStatementToSql(const DeleteHeader &header,
00230 const DeleteData &data,
00231 std::string &destination,
00232 enum TransformSqlVariant sql_variant= DRIZZLE);
00233
00249 enum TransformSqlError
00250 transformDeleteRecordToSql(const DeleteHeader &header,
00251 const DeleteRecord &record,
00252 std::string &destination,
00253 enum TransformSqlVariant sql_variant= DRIZZLE);
00254
00268 enum TransformSqlError
00269 transformDeleteHeaderToSql(const DeleteHeader &header,
00270 std::string &destination,
00271 enum TransformSqlVariant sql_variant= DRIZZLE);
00272
00287 enum TransformSqlError
00288 transformDropTableStatementToSql(const DropTableStatement &statement,
00289 std::string &destination,
00290 enum TransformSqlVariant sql_variant= DRIZZLE);
00291
00306 enum TransformSqlError
00307 transformTruncateTableStatementToSql(const TruncateTableStatement &statement,
00308 std::string &destination,
00309 enum TransformSqlVariant sql_variant= DRIZZLE);
00310
00325 enum TransformSqlError
00326 transformCreateSchemaStatementToSql(const CreateSchemaStatement &statement,
00327 std::string &destination,
00328 enum TransformSqlVariant sql_variant= DRIZZLE);
00329
00344 enum TransformSqlError
00345 transformDropSchemaStatementToSql(const DropSchemaStatement &statement,
00346 std::string &destination,
00347 enum TransformSqlVariant sql_variant= DRIZZLE);
00348
00363 enum TransformSqlError
00364 transformAlterSchemaStatementToSql(const AlterSchemaStatement &statement,
00365 std::string &destination,
00366 enum TransformSqlVariant sql_variant= DRIZZLE);
00367
00382 enum TransformSqlError
00383 transformSetVariableStatementToSql(const SetVariableStatement &statement,
00384 std::string &destination,
00385 enum TransformSqlVariant sql_variant= DRIZZLE);
00386
00392 enum TransformSqlError
00393 transformCreateTableStatementToSql(const CreateTableStatement &statement,
00394 std::string &destination,
00395 enum TransformSqlVariant sql_variant= DRIZZLE);
00396
00409 enum TransformSqlError
00410 transformTableDefinitionToSql(const Table &table,
00411 std::string &destination,
00412 enum TransformSqlVariant sql_variant= DRIZZLE,
00413 bool with_schema= true);
00414
00432 enum TransformSqlError
00433 transformTableOptionsToSql(const Table::TableOptions &table_options,
00434 std::string &destination,
00435 enum TransformSqlVariant sql_variant= DRIZZLE);
00436
00451 enum TransformSqlError
00452 transformIndexDefinitionToSql(const Table::Index &index,
00453 const Table &table,
00454 std::string &destination,
00455 enum TransformSqlVariant sql_variant= DRIZZLE);
00456
00471 enum TransformSqlError
00472 transformForeignKeyConstraintDefinitionToSql(const Table::ForeignKeyConstraint &fkey,
00473 const Table &table,
00474 std::string &destination,
00475 enum TransformSqlVariant sql_variant = DRIZZLE);
00476
00490 enum TransformSqlError
00491 transformFieldDefinitionToSql(const Table::Field &field,
00492 std::string &destination,
00493 enum TransformSqlVariant sql_variant= DRIZZLE);
00494
00501 bool shouldQuoteFieldValue(Table::Field::FieldType in_type);
00502
00503 drizzled::message::Table::Field::FieldType internalFieldTypeToFieldProtoType(enum enum_field_types type);
00504
00512 bool transactionContainsBulkSegment(const Transaction &transaction);
00513
00514 }
00515 }
00516