29
29
#include "drizzled/message/table.pb.h"
30
30
#include "drizzled/message/schema.pb.h"
31
33
#include <uuid/uuid.h>
33
35
namespace drizzled {
34
36
namespace message {
38
// These are used to generate strings for types
39
static const std::string VARCHAR("VARCHAR");
40
static const std::string DOUBLE("DOUBLE");
41
static const std::string BLOB("BLOB");
42
static const std::string ENUM("ENUM");
43
static const std::string INTEGER("INTEGER");
44
static const std::string BIGINT("BIGINT");
45
static const std::string DECIMAL("DECIMAL");
46
static const std::string DATE("DATE");
47
static const std::string TIMESTAMP("TIMESTAMP");
48
static const std::string DATETIME("DATETIME");
50
static const std::string UNDEFINED("UNDEFINED");
51
static const std::string RESTRICT("RESTRICT");
52
static const std::string CASCADE("CASCADE");
53
static const std::string SET_NULL("SET NULL");
54
static const std::string NO_ACTION("NO ACTION");
55
static const std::string DEFAULT("DEFAULT");
57
static const std::string YES("YES");
58
static const std::string NO("NO");
60
static const std::string UNKNOWN_INDEX("UNKNOWN_INDEX");
61
static const std::string BTREE("BTREE");
62
static const std::string RTREE("RTREE");
63
static const std::string HASH("HASH");
64
static const std::string FULLTEXT("FULLTEXT");
36
66
void init(drizzled::message::Table &arg, const std::string &name_arg, const std::string &schema_arg, const std::string &engine_arg)
38
68
arg.set_name(name_arg);
82
112
arg.set_update_timestamp(time(NULL));
115
const std::string &type(drizzled::message::Table::Field::FieldType type)
120
case message::Table::Field::VARCHAR:
122
case message::Table::Field::DOUBLE:
124
case message::Table::Field::BLOB:
126
case message::Table::Field::ENUM:
128
case message::Table::Field::INTEGER:
130
case message::Table::Field::BIGINT:
132
case message::Table::Field::DECIMAL:
134
case message::Table::Field::DATE:
136
case message::Table::Field::TIMESTAMP:
138
case message::Table::Field::DATETIME:
143
const std::string &type(drizzled::message::Table::ForeignKeyConstraint::ForeignKeyOption type)
148
case message::Table::ForeignKeyConstraint::OPTION_UNDEF:
150
case message::Table::ForeignKeyConstraint::OPTION_RESTRICT:
152
case message::Table::ForeignKeyConstraint::OPTION_CASCADE:
154
case message::Table::ForeignKeyConstraint::OPTION_SET_NULL:
156
case message::Table::ForeignKeyConstraint::OPTION_NO_ACTION:
158
case message::Table::ForeignKeyConstraint::OPTION_DEFAULT:
163
// This matches SQL standard of using YES/NO not the normal TRUE/FALSE
164
const std::string &type(bool type)
166
return type ? YES : NO;
169
const std::string &type(drizzled::message::Table::Index::IndexType type)
174
case message::Table::Index::UNKNOWN_INDEX:
175
return UNKNOWN_INDEX;
176
case message::Table::Index::BTREE:
178
case message::Table::Index::RTREE:
180
case message::Table::Index::HASH:
182
case message::Table::Index::FULLTEXT:
85
187
} /* namespace message */
86
188
} /* namespace drizzled */