~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/field.cc

Phase 1 - temporal changes

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
#include <drizzled/field/long.h>
43
43
#include <drizzled/field/int64_t.h>
44
44
#include <drizzled/field/num.h>
45
 
#include <drizzled/field/timetype.h>
46
45
#include <drizzled/field/timestamp.h>
47
46
#include <drizzled/field/datetime.h>
48
47
#include <drizzled/field/varstring.h>
75
74
    DRIZZLE_TYPE_VARCHAR,
76
75
    //DRIZZLE_TYPE_LONGLONG
77
76
    DRIZZLE_TYPE_LONGLONG,
78
 
    //DRIZZLE_TYPE_TIME
79
 
    DRIZZLE_TYPE_VARCHAR,
80
77
    //DRIZZLE_TYPE_DATETIME
81
78
    DRIZZLE_TYPE_VARCHAR,
82
79
    //DRIZZLE_TYPE_DATE
106
103
    DRIZZLE_TYPE_VARCHAR,
107
104
    //DRIZZLE_TYPE_LONGLONG
108
105
    DRIZZLE_TYPE_LONGLONG,
109
 
    //DRIZZLE_TYPE_TIME
110
 
    DRIZZLE_TYPE_VARCHAR,
111
106
    //DRIZZLE_TYPE_DATETIME
112
107
    DRIZZLE_TYPE_VARCHAR,
113
108
    //DRIZZLE_TYPE_DATE
137
132
    DRIZZLE_TYPE_VARCHAR,
138
133
    //DRIZZLE_TYPE_LONGLONG
139
134
    DRIZZLE_TYPE_DOUBLE,
140
 
    //DRIZZLE_TYPE_TIME
141
 
    DRIZZLE_TYPE_VARCHAR,
142
135
    //DRIZZLE_TYPE_DATETIME
143
136
    DRIZZLE_TYPE_VARCHAR,
144
137
    //DRIZZLE_TYPE_DATE
168
161
    DRIZZLE_TYPE_TIMESTAMP,
169
162
    //DRIZZLE_TYPE_LONGLONG
170
163
    DRIZZLE_TYPE_LONGLONG,
171
 
    //DRIZZLE_TYPE_TIME
172
 
    DRIZZLE_TYPE_TIME,
173
164
    //DRIZZLE_TYPE_DATETIME
174
165
    DRIZZLE_TYPE_DATETIME,
175
166
    //DRIZZLE_TYPE_DATE
199
190
    DRIZZLE_TYPE_TIMESTAMP,
200
191
    //DRIZZLE_TYPE_LONGLONG
201
192
    DRIZZLE_TYPE_VARCHAR,
202
 
    //DRIZZLE_TYPE_TIME
203
 
    DRIZZLE_TYPE_DATETIME,
204
193
    //DRIZZLE_TYPE_DATETIME
205
194
    DRIZZLE_TYPE_DATETIME,
206
195
    //DRIZZLE_TYPE_DATE
230
219
    DRIZZLE_TYPE_VARCHAR,
231
220
    //DRIZZLE_TYPE_LONGLONG
232
221
    DRIZZLE_TYPE_LONGLONG,
233
 
    //DRIZZLE_TYPE_TIME
234
 
    DRIZZLE_TYPE_VARCHAR,
235
222
    //DRIZZLE_TYPE_DATETIME
236
223
    DRIZZLE_TYPE_VARCHAR,
237
224
    //DRIZZLE_TYPE_DATE
247
234
    //DRIZZLE_TYPE_BLOB
248
235
    DRIZZLE_TYPE_BLOB,
249
236
  },
250
 
  /* DRIZZLE_TYPE_TIME -> */
251
 
  {
252
 
    //DRIZZLE_TYPE_TINY
253
 
    DRIZZLE_TYPE_VARCHAR,
254
 
    //DRIZZLE_TYPE_LONG
255
 
    DRIZZLE_TYPE_VARCHAR,
256
 
    //DRIZZLE_TYPE_DOUBLE
257
 
    DRIZZLE_TYPE_VARCHAR,
258
 
    //DRIZZLE_TYPE_NULL
259
 
    DRIZZLE_TYPE_TIME,
260
 
    //DRIZZLE_TYPE_TIMESTAMP
261
 
    DRIZZLE_TYPE_DATETIME,
262
 
    //DRIZZLE_TYPE_LONGLONG
263
 
    DRIZZLE_TYPE_VARCHAR,
264
 
    //DRIZZLE_TYPE_TIME
265
 
    DRIZZLE_TYPE_TIME,
266
 
    //DRIZZLE_TYPE_DATETIME
267
 
    DRIZZLE_TYPE_DATETIME,
268
 
    //DRIZZLE_TYPE_DATE
269
 
    DRIZZLE_TYPE_DATE,
270
 
    //DRIZZLE_TYPE_VARCHAR
271
 
    DRIZZLE_TYPE_VARCHAR,
272
 
    //DRIZZLE_TYPE_VIRTUAL
273
 
    DRIZZLE_TYPE_VIRTUAL,
274
 
    //DRIZZLE_TYPE_NEWDECIMAL
275
 
    DRIZZLE_TYPE_VARCHAR,
276
 
    //DRIZZLE_TYPE_ENUM
277
 
    DRIZZLE_TYPE_VARCHAR,
278
 
    //DRIZZLE_TYPE_BLOB
279
 
    DRIZZLE_TYPE_BLOB,
280
 
  },
281
237
  /* DRIZZLE_TYPE_DATETIME -> */
282
238
  {
283
239
    //DRIZZLE_TYPE_TINY
292
248
    DRIZZLE_TYPE_DATETIME,
293
249
    //DRIZZLE_TYPE_LONGLONG
294
250
    DRIZZLE_TYPE_VARCHAR,
295
 
    //DRIZZLE_TYPE_TIME
296
 
    DRIZZLE_TYPE_DATETIME,
297
251
    //DRIZZLE_TYPE_DATETIME
298
252
    DRIZZLE_TYPE_DATETIME,
299
253
    //DRIZZLE_TYPE_DATE
323
277
    DRIZZLE_TYPE_DATETIME,
324
278
    //DRIZZLE_TYPE_LONGLONG
325
279
    DRIZZLE_TYPE_VARCHAR,
326
 
    //DRIZZLE_TYPE_TIME
327
 
    DRIZZLE_TYPE_DATETIME,
328
280
    //DRIZZLE_TYPE_DATETIME
329
281
    DRIZZLE_TYPE_DATETIME,
330
282
    //DRIZZLE_TYPE_DATE
354
306
    DRIZZLE_TYPE_VARCHAR,
355
307
    //DRIZZLE_TYPE_LONGLONG
356
308
    DRIZZLE_TYPE_VARCHAR,
357
 
    //DRIZZLE_TYPE_TIME
358
 
    DRIZZLE_TYPE_VARCHAR,
359
309
    //DRIZZLE_TYPE_DATETIME
360
310
    DRIZZLE_TYPE_VARCHAR,
361
311
    //DRIZZLE_TYPE_DATE
385
335
    DRIZZLE_TYPE_VIRTUAL,
386
336
    //DRIZZLE_TYPE_LONGLONG
387
337
    DRIZZLE_TYPE_VIRTUAL,
388
 
    //DRIZZLE_TYPE_TIME
389
 
    DRIZZLE_TYPE_VIRTUAL,
390
338
    //DRIZZLE_TYPE_DATETIME
391
339
    DRIZZLE_TYPE_VIRTUAL,
392
340
    //DRIZZLE_TYPE_DATE
416
364
    DRIZZLE_TYPE_VARCHAR,
417
365
    //DRIZZLE_TYPE_LONGLONG
418
366
    DRIZZLE_TYPE_NEWDECIMAL,
419
 
    //DRIZZLE_TYPE_TIME
420
 
    DRIZZLE_TYPE_VARCHAR,
421
367
    //DRIZZLE_TYPE_DATETIME
422
368
    DRIZZLE_TYPE_VARCHAR,
423
369
    //DRIZZLE_TYPE_DATE
447
393
    DRIZZLE_TYPE_VARCHAR,
448
394
    //DRIZZLE_TYPE_LONGLONG
449
395
    DRIZZLE_TYPE_VARCHAR,
450
 
    //DRIZZLE_TYPE_TIME
451
 
    DRIZZLE_TYPE_VARCHAR,
452
396
    //DRIZZLE_TYPE_DATETIME
453
397
    DRIZZLE_TYPE_VARCHAR,
454
398
    //DRIZZLE_TYPE_DATE
478
422
    DRIZZLE_TYPE_BLOB,
479
423
    //DRIZZLE_TYPE_LONGLONG
480
424
    DRIZZLE_TYPE_BLOB,
481
 
    //DRIZZLE_TYPE_TIME
482
 
    DRIZZLE_TYPE_BLOB,
483
425
    //DRIZZLE_TYPE_DATETIME
484
426
    DRIZZLE_TYPE_BLOB,
485
427
    //DRIZZLE_TYPE_DATE
530
472
  STRING_RESULT,
531
473
  //DRIZZLE_TYPE_LONGLONG
532
474
  INT_RESULT,
533
 
  //DRIZZLE_TYPE_TIME
534
 
  STRING_RESULT,
535
475
  //DRIZZLE_TYPE_DATETIME
536
476
  STRING_RESULT,
537
477
  //DRIZZLE_TYPE_DATE
540
480
  STRING_RESULT,
541
481
  //DRIZZLE_TYPE_VIRTUAL
542
482
  STRING_RESULT,
543
 
  //DRIZZLE_TYPE_NEWDECIMAL   DRIZZLE_TYPE_ENUM
544
 
  DECIMAL_RESULT,           STRING_RESULT,
 
483
  //DRIZZLE_TYPE_NEWDECIMAL   
 
484
  DECIMAL_RESULT,           
 
485
  //DRIZZLE_TYPE_ENUM
 
486
  STRING_RESULT,
545
487
  //DRIZZLE_TYPE_BLOB
546
488
  STRING_RESULT,
547
489
};
1531
1473
    case Item::PARAM_ITEM:
1532
1474
         my_error(ER_VIRTUAL_COLUMN_FUNCTION_IS_NOT_ALLOWED, MYF(0), field_name);
1533
1475
         return true;
 
1476
         break;
1534
1477
    default:
1535
1478
      // Continue with the field creation
1536
1479
      break;
1687
1630
  case DRIZZLE_TYPE_DATE:
1688
1631
    length= 10;
1689
1632
    break;
1690
 
  case DRIZZLE_TYPE_TIME:
1691
 
    length= 10;
1692
 
    break;
1693
1633
  case DRIZZLE_TYPE_DATETIME:
1694
1634
    length= MAX_DATETIME_WIDTH;
1695
1635
    break;
1752
1692
  switch (type) {
1753
1693
  case DRIZZLE_TYPE_VARCHAR:     return (length + (length < 256 ? 1: 2));
1754
1694
  case DRIZZLE_TYPE_TINY        : return 1;
1755
 
  case DRIZZLE_TYPE_DATE:
1756
 
  case DRIZZLE_TYPE_TIME:   return 3;
 
1695
  case DRIZZLE_TYPE_DATE: return 3;
1757
1696
  case DRIZZLE_TYPE_TIMESTAMP:
1758
1697
  case DRIZZLE_TYPE_LONG        : return 4;
1759
1698
  case DRIZZLE_TYPE_DOUBLE: return sizeof(double);
1763
1702
  case DRIZZLE_TYPE_BLOB:               return 4+portable_sizeof_char_ptr;
1764
1703
  case DRIZZLE_TYPE_ENUM:
1765
1704
  case DRIZZLE_TYPE_NEWDECIMAL:
1766
 
    abort();                          // This shouldn't happen
 
1705
    abort(); return 0;                          // This shouldn't happen
1767
1706
  default:
1768
1707
    return 0;
1769
1708
  }
1793
1732
                  TYPELIB *interval,
1794
1733
                  const char *field_name)
1795
1734
{
1796
 
 
1797
1735
  if(!root)
1798
1736
    root= current_mem_root();
1799
1737
 
1809
1747
 
1810
1748
  switch (field_type) {
1811
1749
  case DRIZZLE_TYPE_DATE:
1812
 
  case DRIZZLE_TYPE_TIME:
1813
1750
  case DRIZZLE_TYPE_DATETIME:
1814
1751
  case DRIZZLE_TYPE_TIMESTAMP:
1815
1752
    field_charset= &my_charset_bin;
1882
1819
  case DRIZZLE_TYPE_DATE:
1883
1820
    return new (root) Field_date(ptr,null_pos,null_bit,
1884
1821
                             unireg_check, field_name, field_charset);
1885
 
  case DRIZZLE_TYPE_TIME:
1886
 
    return new (root) Field_time(ptr,null_pos,null_bit,
1887
 
                          unireg_check, field_name, field_charset);
1888
1822
  case DRIZZLE_TYPE_DATETIME:
1889
1823
    return new (root) Field_datetime(ptr,null_pos,null_bit,
1890
1824
                              unireg_check, field_name, field_charset);