~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/definition/table.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:
74
74
#include "drizzled/field/int64.h"
75
75
#include "drizzled/field/size.h"
76
76
#include "drizzled/field/num.h"
77
 
#include "drizzled/field/timestamp.h"
 
77
#include "drizzled/field/time.h"
 
78
#include "drizzled/field/epoch.h"
78
79
#include "drizzled/field/datetime.h"
79
80
#include "drizzled/field/varstring.h"
80
81
#include "drizzled/field/uuid.h"
242
243
  case message::Table::Field::DOUBLE:
243
244
    field_type= DRIZZLE_TYPE_DOUBLE;
244
245
    break;
245
 
  case message::Table::Field::TIMESTAMP:
 
246
  case message::Table::Field::EPOCH:
246
247
    field_type= DRIZZLE_TYPE_TIMESTAMP;
247
248
    break;
248
249
  case message::Table::Field::BIGINT:
269
270
  case message::Table::Field::UUID:
270
271
    field_type= DRIZZLE_TYPE_UUID;
271
272
    break;
 
273
  case message::Table::Field::TIME:
 
274
    field_type= DRIZZLE_TYPE_TIME;
 
275
    break;
272
276
  default:
273
277
    assert(0);
274
278
    abort(); // Programming error
309
313
    abort();
310
314
  case DRIZZLE_TYPE_TIMESTAMP:
311
315
  case DRIZZLE_TYPE_DATETIME:
 
316
  case DRIZZLE_TYPE_TIME:
312
317
  case DRIZZLE_TYPE_DATE:
313
318
  case DRIZZLE_TYPE_ENUM:
314
319
  case DRIZZLE_TYPE_UUID:
1236
1241
 
1237
1242
    uint32_t field_length= 0; //Assignment is for compiler complaint.
1238
1243
 
 
1244
    // We set field_length in this loop.
1239
1245
    switch (field_type)
1240
1246
    {
1241
1247
    case DRIZZLE_TYPE_BLOB:
1281
1287
                                                     false);
1282
1288
        break;
1283
1289
      }
1284
 
    case DRIZZLE_TYPE_TIMESTAMP:
1285
1290
    case DRIZZLE_TYPE_DATETIME:
1286
1291
      field_length= DateTime::MAX_STRING_LENGTH;
1287
1292
      break;
1319
1324
    case DRIZZLE_TYPE_UUID:
1320
1325
      field_length= field::Uuid::max_string_length();
1321
1326
      break;
 
1327
    case DRIZZLE_TYPE_TIMESTAMP:
 
1328
      field_length= field::Epoch::max_string_length();
 
1329
      break;
 
1330
    case DRIZZLE_TYPE_TIME:
 
1331
      field_length= field::Time::max_string_length();
 
1332
      break;
1322
1333
    case DRIZZLE_TYPE_NULL:
1323
1334
      abort(); // Programming error
1324
1335
    }
1325
1336
 
1326
 
    assert(enum_field_types_size == 12);
 
1337
    assert(enum_field_types_size == 13);
1327
1338
 
1328
1339
    Field* f= make_field(pfield,
1329
1340
                         record + field_offsets[fieldnr] + data_offset,
1348
1359
    case DRIZZLE_TYPE_DOUBLE:
1349
1360
    case DRIZZLE_TYPE_DECIMAL:
1350
1361
    case DRIZZLE_TYPE_TIMESTAMP:
 
1362
    case DRIZZLE_TYPE_TIME:
1351
1363
    case DRIZZLE_TYPE_DATETIME:
1352
1364
    case DRIZZLE_TYPE_DATE:
1353
1365
    case DRIZZLE_TYPE_ENUM:
1847
1859
    outparam.found_next_number_field=
1848
1860
      outparam.getField(positionFields(found_next_number_field));
1849
1861
  if (timestamp_field)
1850
 
    outparam.timestamp_field= (Field_timestamp*) outparam.getField(timestamp_field->position());
 
1862
    outparam.timestamp_field= (field::Epoch*) outparam.getField(timestamp_field->position());
1851
1863
 
1852
1864
  /* Fix key->name and key_part->field */
1853
1865
  if (key_parts)
2076
2088
  {
2077
2089
  case DRIZZLE_TYPE_ENUM:
2078
2090
    return new (&mem_root) Field_enum(ptr,
2079
 
                                 field_length,
2080
 
                                 null_pos,
2081
 
                                 null_bit,
2082
 
                                 field_name,
2083
 
                                 interval,
2084
 
                                 field_charset);
 
2091
                                      field_length,
 
2092
                                      null_pos,
 
2093
                                      null_bit,
 
2094
                                      field_name,
 
2095
                                      interval,
 
2096
                                      field_charset);
2085
2097
  case DRIZZLE_TYPE_VARCHAR:
2086
2098
    setVariableWidth();
2087
2099
    return new (&mem_root) Field_varstring(ptr,field_length,
2149
2161
                                          field_name);
2150
2162
    }
2151
2163
  case DRIZZLE_TYPE_TIMESTAMP:
2152
 
    return new (&mem_root) Field_timestamp(ptr,
2153
 
                                      field_length,
2154
 
                                      null_pos,
2155
 
                                      null_bit,
2156
 
                                      unireg_check,
2157
 
                                      field_name,
2158
 
                                      this,
2159
 
                                      field_charset);
 
2164
    return new (&mem_root) field::Epoch(ptr,
 
2165
                                        field_length,
 
2166
                                        null_pos,
 
2167
                                        null_bit,
 
2168
                                        unireg_check,
 
2169
                                        field_name,
 
2170
                                        this,
 
2171
                                        field_charset);
 
2172
  case DRIZZLE_TYPE_TIME:
 
2173
    return new (&mem_root) field::Time(ptr,
 
2174
                                       field_length,
 
2175
                                       null_pos,
 
2176
                                       null_bit,
 
2177
                                       field_name,
 
2178
                                       field_charset);
2160
2179
  case DRIZZLE_TYPE_DATE:
2161
2180
    return new (&mem_root) Field_date(ptr,
2162
2181
                                 null_pos,