~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item/create.cc

  • Committer: Brian Aker
  • Date: 2009-03-01 03:29:52 UTC
  • mfrom: (907.1.6 trunk-with-temporal)
  • Revision ID: brian@tangent.org-20090301032952-y210opnqxsfyhcla
Merge Jay's temporal

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
#include <drizzled/function/str/trim.h>
43
43
#include <drizzled/function/str/uuid.h>
44
44
 
45
 
#include <drizzled/function/time/add_time.h>
46
45
#include <drizzled/function/time/date_format.h>
47
46
#include <drizzled/function/time/dayname.h>
48
47
#include <drizzled/function/time/dayofmonth.h>
51
50
#include <drizzled/function/time/from_days.h>
52
51
#include <drizzled/function/time/last_day.h>
53
52
#include <drizzled/function/time/makedate.h>
54
 
#include <drizzled/function/time/maketime.h>
55
53
#include <drizzled/function/time/month.h>
56
54
#include <drizzled/function/time/period_add.h>
57
55
#include <drizzled/function/time/period_diff.h>
58
 
#include <drizzled/function/time/sec_to_time.h>
59
 
#include <drizzled/function/time/str_to_date.h>
60
 
#include <drizzled/function/time/time_to_sec.h>
61
 
#include <drizzled/function/time/timediff.h>
62
56
#include <drizzled/function/time/to_days.h>
63
57
#include <drizzled/function/time/typecast.h>
64
58
#include <drizzled/function/time/unix_timestamp.h>
306
300
  virtual ~Create_func_acos() {}
307
301
};
308
302
 
309
 
 
310
 
class Create_func_addtime : public Create_func_arg2
311
 
{
312
 
public:
313
 
  using Create_func_arg2::create;
314
 
 
315
 
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
316
 
 
317
 
  static Create_func_addtime s_singleton;
318
 
 
319
 
protected:
320
 
  Create_func_addtime() {}
321
 
  virtual ~Create_func_addtime() {}
322
 
};
323
 
 
324
 
 
325
303
class Create_func_asin : public Create_func_arg1
326
304
{
327
305
public:
1076
1054
  virtual ~Create_func_makedate() {}
1077
1055
};
1078
1056
 
1079
 
 
1080
 
class Create_func_maketime : public Create_func_arg3
1081
 
{
1082
 
public:
1083
 
  using Create_func_arg3::create;
1084
 
 
1085
 
  virtual Item *create(Session *session, Item *arg1, Item *arg2, Item *arg3);
1086
 
 
1087
 
  static Create_func_maketime s_singleton;
1088
 
 
1089
 
protected:
1090
 
  Create_func_maketime() {}
1091
 
  virtual ~Create_func_maketime() {}
1092
 
};
1093
 
 
1094
 
 
1095
1057
class Create_func_make_set : public Create_native_func
1096
1058
{
1097
1059
public:
1340
1302
  virtual ~Create_func_rtrim() {}
1341
1303
};
1342
1304
 
1343
 
 
1344
 
class Create_func_sec_to_time : public Create_func_arg1
1345
 
{
1346
 
public:
1347
 
  using Create_func_arg1::create;
1348
 
 
1349
 
  virtual Item *create(Session *session, Item *arg1);
1350
 
 
1351
 
  static Create_func_sec_to_time s_singleton;
1352
 
 
1353
 
protected:
1354
 
  Create_func_sec_to_time() {}
1355
 
  virtual ~Create_func_sec_to_time() {}
1356
 
};
1357
 
 
1358
 
 
1359
1305
class Create_func_sign : public Create_func_arg1
1360
1306
{
1361
1307
public:
1416
1362
};
1417
1363
 
1418
1364
 
1419
 
class Create_func_str_to_date : public Create_func_arg2
1420
 
{
1421
 
public:
1422
 
  using Create_func_arg2::create;
1423
 
 
1424
 
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1425
 
 
1426
 
  static Create_func_str_to_date s_singleton;
1427
 
 
1428
 
protected:
1429
 
  Create_func_str_to_date() {}
1430
 
  virtual ~Create_func_str_to_date() {}
1431
 
};
1432
 
 
1433
 
 
1434
1365
class Create_func_strcmp : public Create_func_arg2
1435
1366
{
1436
1367
public:
1461
1392
};
1462
1393
 
1463
1394
 
1464
 
class Create_func_subtime : public Create_func_arg2
1465
 
{
1466
 
public:
1467
 
  using Create_func_arg2::create;
1468
 
 
1469
 
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1470
 
 
1471
 
  static Create_func_subtime s_singleton;
1472
 
 
1473
 
protected:
1474
 
  Create_func_subtime() {}
1475
 
  virtual ~Create_func_subtime() {}
1476
 
};
1477
 
 
1478
 
 
1479
1395
class Create_func_tan : public Create_func_arg1
1480
1396
{
1481
1397
public:
1521
1437
};
1522
1438
 
1523
1439
 
1524
 
class Create_func_timediff : public Create_func_arg2
1525
 
{
1526
 
public:
1527
 
  using Create_func_arg2::create;
1528
 
 
1529
 
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1530
 
 
1531
 
  static Create_func_timediff s_singleton;
1532
 
 
1533
 
protected:
1534
 
  Create_func_timediff() {}
1535
 
  virtual ~Create_func_timediff() {}
1536
 
};
1537
 
 
1538
 
 
1539
1440
class Create_func_to_days : public Create_func_arg1
1540
1441
{
1541
1442
public:
1828
1729
  return new (session->mem_root) Item_func_acos(arg1);
1829
1730
}
1830
1731
 
1831
 
 
1832
 
Create_func_addtime Create_func_addtime::s_singleton;
1833
 
 
1834
 
Item*
1835
 
Create_func_addtime::create(Session *session, Item *arg1, Item *arg2)
1836
 
{
1837
 
  return new (session->mem_root) Item_func_add_time(arg1, arg2, 0, 0);
1838
 
}
1839
 
 
1840
 
 
1841
1732
Create_func_asin Create_func_asin::s_singleton;
1842
1733
 
1843
1734
Item*
2564
2455
}
2565
2456
 
2566
2457
 
2567
 
Create_func_maketime Create_func_maketime::s_singleton;
2568
 
 
2569
 
Item*
2570
 
Create_func_maketime::create(Session *session, Item *arg1, Item *arg2, Item *arg3)
2571
 
{
2572
 
  return new (session->mem_root) Item_func_maketime(arg1, arg2, arg3);
2573
 
}
2574
 
 
2575
 
 
2576
2458
Create_func_make_set Create_func_make_set::s_singleton;
2577
2459
 
2578
2460
Item*
2788
2670
}
2789
2671
 
2790
2672
 
2791
 
Create_func_sec_to_time Create_func_sec_to_time::s_singleton;
2792
 
 
2793
 
Item*
2794
 
Create_func_sec_to_time::create(Session *session, Item *arg1)
2795
 
{
2796
 
  return new (session->mem_root) Item_func_sec_to_time(arg1);
2797
 
}
2798
 
 
2799
 
 
2800
2673
Create_func_sign Create_func_sign::s_singleton;
2801
2674
 
2802
2675
Item*
2852
2725
}
2853
2726
 
2854
2727
 
2855
 
Create_func_str_to_date Create_func_str_to_date::s_singleton;
2856
 
 
2857
 
Item*
2858
 
Create_func_str_to_date::create(Session *session, Item *arg1, Item *arg2)
2859
 
{
2860
 
  return new (session->mem_root) Item_func_str_to_date(arg1, arg2);
2861
 
}
2862
 
 
2863
 
 
2864
2728
Create_func_strcmp Create_func_strcmp::s_singleton;
2865
2729
 
2866
2730
Item*
2878
2742
  return new (session->mem_root) Item_func_substr_index(arg1, arg2, arg3);
2879
2743
}
2880
2744
 
2881
 
 
2882
 
Create_func_subtime Create_func_subtime::s_singleton;
2883
 
 
2884
 
Item*
2885
 
Create_func_subtime::create(Session *session, Item *arg1, Item *arg2)
2886
 
{
2887
 
  return new (session->mem_root) Item_func_add_time(arg1, arg2, 0, 1);
2888
 
}
2889
 
 
2890
 
 
2891
2745
Create_func_tan Create_func_tan::s_singleton;
2892
2746
 
2893
2747
Item*
2905
2759
  return new (session->mem_root) Item_func_date_format(arg1, arg2, 1);
2906
2760
}
2907
2761
 
2908
 
 
2909
 
Create_func_time_to_sec Create_func_time_to_sec::s_singleton;
2910
 
 
2911
 
Item*
2912
 
Create_func_time_to_sec::create(Session *session, Item *arg1)
2913
 
{
2914
 
  return new (session->mem_root) Item_func_time_to_sec(arg1);
2915
 
}
2916
 
 
2917
 
 
2918
 
Create_func_timediff Create_func_timediff::s_singleton;
2919
 
 
2920
 
Item*
2921
 
Create_func_timediff::create(Session *session, Item *arg1, Item *arg2)
2922
 
{
2923
 
  return new (session->mem_root) Item_func_timediff(arg1, arg2);
2924
 
}
2925
 
 
2926
 
 
2927
2762
Create_func_to_days Create_func_to_days::s_singleton;
2928
2763
 
2929
2764
Item*
3035
2870
{
3036
2871
  { { C_STRING_WITH_LEN("ABS") }, BUILDER(Create_func_abs)},
3037
2872
  { { C_STRING_WITH_LEN("ACOS") }, BUILDER(Create_func_acos)},
3038
 
  { { C_STRING_WITH_LEN("ADDTIME") }, BUILDER(Create_func_addtime)},
3039
2873
  { { C_STRING_WITH_LEN("ASIN") }, BUILDER(Create_func_asin)},
3040
2874
  { { C_STRING_WITH_LEN("ATAN") }, BUILDER(Create_func_atan)},
3041
2875
  { { C_STRING_WITH_LEN("ATAN2") }, BUILDER(Create_func_atan)},
3091
2925
  { { C_STRING_WITH_LEN("LPAD") }, BUILDER(Create_func_lpad)},
3092
2926
  { { C_STRING_WITH_LEN("LTRIM") }, BUILDER(Create_func_ltrim)},
3093
2927
  { { C_STRING_WITH_LEN("MAKEDATE") }, BUILDER(Create_func_makedate)},
3094
 
  { { C_STRING_WITH_LEN("MAKETIME") }, BUILDER(Create_func_maketime)},
3095
2928
  { { C_STRING_WITH_LEN("MAKE_SET") }, BUILDER(Create_func_make_set)},
3096
2929
  { { C_STRING_WITH_LEN("MONTHNAME") }, BUILDER(Create_func_monthname)},
3097
2930
  { { C_STRING_WITH_LEN("NULLIF") }, BUILDER(Create_func_nullif)},
3110
2943
  { { C_STRING_WITH_LEN("ROW_COUNT") }, BUILDER(Create_func_row_count)},
3111
2944
  { { C_STRING_WITH_LEN("RPAD") }, BUILDER(Create_func_rpad)},
3112
2945
  { { C_STRING_WITH_LEN("RTRIM") }, BUILDER(Create_func_rtrim)},
3113
 
  { { C_STRING_WITH_LEN("SEC_TO_TIME") }, BUILDER(Create_func_sec_to_time)},
3114
2946
  { { C_STRING_WITH_LEN("SIGN") }, BUILDER(Create_func_sign)},
3115
2947
  { { C_STRING_WITH_LEN("SIN") }, BUILDER(Create_func_sin)},
3116
2948
  { { C_STRING_WITH_LEN("SPACE") }, BUILDER(Create_func_space)},
3117
2949
  { { C_STRING_WITH_LEN("SQRT") }, BUILDER(Create_func_sqrt)},
3118
2950
  { { C_STRING_WITH_LEN("STRCMP") }, BUILDER(Create_func_strcmp)},
3119
 
  { { C_STRING_WITH_LEN("STR_TO_DATE") }, BUILDER(Create_func_str_to_date)},
3120
2951
  { { C_STRING_WITH_LEN("SUBSTRING_INDEX") }, BUILDER(Create_func_substr_index)},
3121
 
  { { C_STRING_WITH_LEN("SUBTIME") }, BUILDER(Create_func_subtime)},
3122
2952
  { { C_STRING_WITH_LEN("TAN") }, BUILDER(Create_func_tan)},
3123
 
  { { C_STRING_WITH_LEN("TIMEDIFF") }, BUILDER(Create_func_timediff)},
3124
2953
  { { C_STRING_WITH_LEN("TIME_FORMAT") }, BUILDER(Create_func_time_format)},
3125
 
  { { C_STRING_WITH_LEN("TIME_TO_SEC") }, BUILDER(Create_func_time_to_sec)},
3126
2954
  { { C_STRING_WITH_LEN("TO_DAYS") }, BUILDER(Create_func_to_days)},
3127
2955
  { { C_STRING_WITH_LEN("UCASE") }, BUILDER(Create_func_ucase)},
3128
2956
  { { C_STRING_WITH_LEN("UNHEX") }, BUILDER(Create_func_unhex)},
3212
3040
  case ITEM_CAST_DATE:
3213
3041
    res= new (session->mem_root) Item_date_typecast(a);
3214
3042
    break;
3215
 
  case ITEM_CAST_TIME:
3216
 
    res= new (session->mem_root) Item_time_typecast(a);
3217
 
    break;
3218
3043
  case ITEM_CAST_DATETIME:
3219
3044
    res= new (session->mem_root) Item_datetime_typecast(a);
3220
3045
    break;