Drizzled Public API Documentation

statement_transform.h
Go to the documentation of this file.
00001 /* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
00002  *  vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
00003  *
00004  *  Copyright (C) 2009 Sun Microsystems, Inc.
00005  *  Copyright (C) 2010 Jay Pipes <jaypipes@gmail.com>
00006  *
00007  *  Authors:
00008  *
00009  *    Jay Pipes <jaypipes@gmail.com>
00010  *
00011  *  This program is free software; you can redistribute it and/or modify
00012  *  it under the terms of the GNU General Public License as published by
00013  *  the Free Software Foundation; version 2 of the License.
00014  *
00015  *  This program is distributed in the hope that it will be useful,
00016  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018  *  GNU General Public License for more details.
00019  *
00020  *  You should have received a copy of the GNU General Public License
00021  *  along with this program; if not, write to the Free Software
00022  *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
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, /* A data segment without a header segment was found */
00057   MISSING_DATA= 2,   /* A header segment without a data segment was found */
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 } /* namespace message */
00494 } /* namespace drizzled */
00495