~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/message.cc

  • Committer: Brian Aker
  • Date: 2010-12-22 16:10:11 UTC
  • mfrom: (2017.1.2 clean)
  • Revision ID: brian@tangent.org-20101222161011-dwdhckv8ptmo471c
Rollup of build.

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
 
40
40
// These are used to generate strings for types
41
41
static const std::string VARCHAR("VARCHAR");
 
42
static const std::string VARBINARY("VARBINARY");
42
43
static const std::string DOUBLE("DOUBLE");
 
44
static const std::string TEXT("TEXT");
43
45
static const std::string BLOB("BLOB");
44
46
static const std::string ENUM("ENUM");
45
47
static const std::string INTEGER("INTEGER");
46
48
static const std::string BIGINT("BIGINT");
47
49
static const std::string DECIMAL("DECIMAL");
48
50
static const std::string DATE("DATE");
 
51
static const std::string EPOCH("EPOCH");
49
52
static const std::string TIMESTAMP("TIMESTAMP");
50
53
static const std::string DATETIME("DATETIME");
 
54
static const std::string TIME("TIME");
51
55
static const std::string UUID("UUID");
52
56
 
53
57
static const std::string UNDEFINED("UNDEFINED");
119
123
  arg.set_update_timestamp(time(NULL));
120
124
}
121
125
 
 
126
bool is_numeric(const message::Table::Field &field)
 
127
{
 
128
  message::Table::Field::FieldType type= field.type();
 
129
 
 
130
  switch (type)
 
131
  {
 
132
  case message::Table::Field::DOUBLE:
 
133
  case message::Table::Field::INTEGER:
 
134
  case message::Table::Field::BIGINT:
 
135
  case message::Table::Field::DECIMAL:
 
136
    return true;
 
137
  case message::Table::Field::BLOB:
 
138
  case message::Table::Field::VARCHAR:
 
139
  case message::Table::Field::ENUM:
 
140
  case message::Table::Field::DATE:
 
141
  case message::Table::Field::EPOCH:
 
142
  case message::Table::Field::DATETIME:
 
143
  case message::Table::Field::TIME:
 
144
  case message::Table::Field::UUID:
 
145
    break;
 
146
  }
 
147
 
 
148
  return false;
 
149
}
 
150
 
 
151
const std::string &type(const message::Table::Field &field)
 
152
{
 
153
  message::Table::Field::FieldType type= field.type();
 
154
 
 
155
  switch (type)
 
156
  {
 
157
  case message::Table::Field::VARCHAR:
 
158
    return field.string_options().collation().compare("binary") ? VARCHAR : VARBINARY;
 
159
  case message::Table::Field::DOUBLE:
 
160
    return DOUBLE;
 
161
  case message::Table::Field::BLOB:
 
162
    return field.string_options().collation().compare("binary") ? TEXT : BLOB;
 
163
  case message::Table::Field::ENUM:
 
164
    return ENUM;
 
165
  case message::Table::Field::INTEGER:
 
166
    return INTEGER;
 
167
  case message::Table::Field::BIGINT:
 
168
    return BIGINT;
 
169
  case message::Table::Field::DECIMAL:
 
170
    return DECIMAL;
 
171
  case message::Table::Field::DATE:
 
172
    return DATE;
 
173
  case message::Table::Field::EPOCH:
 
174
    return TIMESTAMP;
 
175
  case message::Table::Field::DATETIME:
 
176
    return DATETIME;
 
177
  case message::Table::Field::TIME:
 
178
    return TIME;
 
179
  case message::Table::Field::UUID:
 
180
    return UUID;
 
181
  }
 
182
 
 
183
  abort();
 
184
}
 
185
 
122
186
const std::string &type(drizzled::message::Table::Field::FieldType type)
123
187
{
124
188
  switch (type)
139
203
    return DECIMAL;
140
204
  case message::Table::Field::DATE:
141
205
    return DATE;
142
 
  case message::Table::Field::TIMESTAMP:
143
 
    return TIMESTAMP;
 
206
  case message::Table::Field::EPOCH:
 
207
    return EPOCH;
144
208
  case message::Table::Field::DATETIME:
145
209
    return DATETIME;
 
210
  case message::Table::Field::TIME:
 
211
    return TIME;
146
212
  case message::Table::Field::UUID:
147
213
    return UUID;
148
214
  }
149
215
 
150
 
  assert(0);
151
 
  return PROGRAM_ERROR;
 
216
  abort();
152
217
}
153
218
 
154
219
const std::string &type(drizzled::message::Table::ForeignKeyConstraint::ForeignKeyOption type)