~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item/create.cc

  • Committer: Brian Aker
  • Date: 2009-02-04 18:28:00 UTC
  • mfrom: (813.1.26 new-temporal)
  • Revision ID: brian@tangent.org-20090204182800-ra3p8rlu4zrs9fvn
Merge from Monty.

Show diffs side-by-side

added added

removed removed

Lines of Context:
62
62
#include <drizzled/function/time/to_days.h>
63
63
#include <drizzled/function/time/typecast.h>
64
64
#include <drizzled/function/time/unix_timestamp.h>
65
 
#include <drizzled/function/time/yearweek.h>
66
 
#include <drizzled/function/time/week.h>
67
65
#include <drizzled/function/time/weekday.h>
68
66
 
69
67
#include <drizzled/item/cmpfunc.h>
279
277
class Create_func_abs : public Create_func_arg1
280
278
{
281
279
public:
282
 
  using Create_func_arg1::create;
283
 
 
284
280
  virtual Item *create(Session *session, Item *arg1);
285
281
 
286
282
  static Create_func_abs s_singleton;
294
290
class Create_func_acos : public Create_func_arg1
295
291
{
296
292
public:
297
 
  using Create_func_arg1::create;
298
 
 
299
293
  virtual Item *create(Session *session, Item *arg1);
300
294
 
301
295
  static Create_func_acos s_singleton;
309
303
class Create_func_addtime : public Create_func_arg2
310
304
{
311
305
public:
312
 
  using Create_func_arg2::create;
313
 
 
314
306
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
315
307
 
316
308
  static Create_func_addtime s_singleton;
324
316
class Create_func_asin : public Create_func_arg1
325
317
{
326
318
public:
327
 
  using Create_func_arg1::create;
328
 
 
329
319
  virtual Item *create(Session *session, Item *arg1);
330
320
 
331
321
  static Create_func_asin s_singleton;
352
342
class Create_func_benchmark : public Create_func_arg2
353
343
{
354
344
public:
355
 
  using Create_func_arg2::create;
356
 
 
357
345
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
358
346
 
359
347
  static Create_func_benchmark s_singleton;
367
355
class Create_func_bin : public Create_func_arg1
368
356
{
369
357
public:
370
 
  using Create_func_arg1::create;
371
 
 
372
358
  virtual Item *create(Session *session, Item *arg1);
373
359
 
374
360
  static Create_func_bin s_singleton;
382
368
class Create_func_bit_count : public Create_func_arg1
383
369
{
384
370
public:
385
 
  using Create_func_arg1::create;
386
 
 
387
371
  virtual Item *create(Session *session, Item *arg1);
388
372
 
389
373
  static Create_func_bit_count s_singleton;
397
381
class Create_func_bit_length : public Create_func_arg1
398
382
{
399
383
public:
400
 
  using Create_func_arg1::create;
401
 
 
402
384
  virtual Item *create(Session *session, Item *arg1);
403
385
 
404
386
  static Create_func_bit_length s_singleton;
412
394
class Create_func_ceiling : public Create_func_arg1
413
395
{
414
396
public:
415
 
  using Create_func_arg1::create;
416
 
 
417
397
  virtual Item *create(Session *session, Item *arg1);
418
398
 
419
399
  static Create_func_ceiling s_singleton;
427
407
class Create_func_char_length : public Create_func_arg1
428
408
{
429
409
public:
430
 
  using Create_func_arg1::create;
431
 
 
432
410
  virtual Item *create(Session *session, Item *arg1);
433
411
 
434
412
  static Create_func_char_length s_singleton;
442
420
class Create_func_coercibility : public Create_func_arg1
443
421
{
444
422
public:
445
 
  using Create_func_arg1::create;
446
 
 
447
423
  virtual Item *create(Session *session, Item *arg1);
448
424
 
449
425
  static Create_func_coercibility s_singleton;
483
459
class Create_func_connection_id : public Create_func_arg0
484
460
{
485
461
public:
486
 
  using Create_func_arg0::create;
487
 
 
488
462
  virtual Item *create(Session *session);
489
463
 
490
464
  static Create_func_connection_id s_singleton;
498
472
class Create_func_conv : public Create_func_arg3
499
473
{
500
474
public:
501
 
  using Create_func_arg3::create;
502
 
 
503
475
  virtual Item *create(Session *session, Item *arg1, Item *arg2, Item *arg3);
504
476
 
505
477
  static Create_func_conv s_singleton;
513
485
class Create_func_cos : public Create_func_arg1
514
486
{
515
487
public:
516
 
  using Create_func_arg1::create;
517
 
 
518
488
  virtual Item *create(Session *session, Item *arg1);
519
489
 
520
490
  static Create_func_cos s_singleton;
528
498
class Create_func_cot : public Create_func_arg1
529
499
{
530
500
public:
531
 
  using Create_func_arg1::create;
532
 
 
533
501
  virtual Item *create(Session *session, Item *arg1);
534
502
 
535
503
  static Create_func_cot s_singleton;
542
510
class Create_func_date_format : public Create_func_arg2
543
511
{
544
512
public:
545
 
  using Create_func_arg2::create;
546
 
 
547
513
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
548
514
 
549
515
  static Create_func_date_format s_singleton;
557
523
class Create_func_datediff : public Create_func_arg2
558
524
{
559
525
public:
560
 
  using Create_func_arg2::create;
561
 
 
562
526
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
563
527
 
564
528
  static Create_func_datediff s_singleton;
572
536
class Create_func_dayname : public Create_func_arg1
573
537
{
574
538
public:
575
 
  using Create_func_arg1::create;
576
 
 
577
539
  virtual Item *create(Session *session, Item *arg1);
578
540
 
579
541
  static Create_func_dayname s_singleton;
587
549
class Create_func_dayofmonth : public Create_func_arg1
588
550
{
589
551
public:
590
 
  using Create_func_arg1::create;
591
 
 
592
552
  virtual Item *create(Session *session, Item *arg1);
593
553
 
594
554
  static Create_func_dayofmonth s_singleton;
602
562
class Create_func_dayofweek : public Create_func_arg1
603
563
{
604
564
public:
605
 
  using Create_func_arg1::create;
606
 
 
607
565
  virtual Item *create(Session *session, Item *arg1);
608
566
 
609
567
  static Create_func_dayofweek s_singleton;
617
575
class Create_func_dayofyear : public Create_func_arg1
618
576
{
619
577
public:
620
 
  using Create_func_arg1::create;
621
 
 
622
578
  virtual Item *create(Session *session, Item *arg1);
623
579
 
624
580
  static Create_func_dayofyear s_singleton;
632
588
class Create_func_decode : public Create_func_arg2
633
589
{
634
590
public:
635
 
  using Create_func_arg2::create;
636
 
 
637
591
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
638
592
 
639
593
  static Create_func_decode s_singleton;
647
601
class Create_func_degrees : public Create_func_arg1
648
602
{
649
603
public:
650
 
  using Create_func_arg1::create;
651
 
 
652
604
  virtual Item *create(Session *session, Item *arg1);
653
605
 
654
606
  static Create_func_degrees s_singleton;
675
627
class Create_func_exp : public Create_func_arg1
676
628
{
677
629
public:
678
 
  using Create_func_arg1::create;
679
 
 
680
630
  virtual Item *create(Session *session, Item *arg1);
681
631
 
682
632
  static Create_func_exp s_singleton;
716
666
class Create_func_find_in_set : public Create_func_arg2
717
667
{
718
668
public:
719
 
  using Create_func_arg2::create;
720
 
 
721
669
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
722
670
 
723
671
  static Create_func_find_in_set s_singleton;
731
679
class Create_func_floor : public Create_func_arg1
732
680
{
733
681
public:
734
 
  using Create_func_arg1::create;
735
 
 
736
682
  virtual Item *create(Session *session, Item *arg1);
737
683
 
738
684
  static Create_func_floor s_singleton;
746
692
class Create_func_format : public Create_func_arg2
747
693
{
748
694
public:
749
 
  using Create_func_arg2::create;
750
 
 
751
695
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
752
696
 
753
697
  static Create_func_format s_singleton;
761
705
class Create_func_found_rows : public Create_func_arg0
762
706
{
763
707
public:
764
 
  using Create_func_arg0::create;
765
 
 
766
708
  virtual Item *create(Session *session);
767
709
 
768
710
  static Create_func_found_rows s_singleton;
776
718
class Create_func_from_days : public Create_func_arg1
777
719
{
778
720
public:
779
 
  using Create_func_arg1::create;
780
 
 
781
721
  virtual Item *create(Session *session, Item *arg1);
782
722
 
783
723
  static Create_func_from_days s_singleton;
817
757
class Create_func_hex : public Create_func_arg1
818
758
{
819
759
public:
820
 
  using Create_func_arg1::create;
821
 
 
822
760
  virtual Item *create(Session *session, Item *arg1);
823
761
 
824
762
  static Create_func_hex s_singleton;
832
770
class Create_func_ifnull : public Create_func_arg2
833
771
{
834
772
public:
835
 
  using Create_func_arg2::create;
836
 
 
837
773
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
838
774
 
839
775
  static Create_func_ifnull s_singleton;
847
783
class Create_func_instr : public Create_func_arg2
848
784
{
849
785
public:
850
 
  using Create_func_arg2::create;
851
 
 
852
786
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
853
787
 
854
788
  static Create_func_instr s_singleton;
862
796
class Create_func_isnull : public Create_func_arg1
863
797
{
864
798
public:
865
 
  using Create_func_arg1::create;
866
 
 
867
799
  virtual Item *create(Session *session, Item *arg1);
868
800
 
869
801
  static Create_func_isnull s_singleton;
877
809
class Create_func_last_day : public Create_func_arg1
878
810
{
879
811
public:
880
 
  using Create_func_arg1::create;
881
 
 
882
812
  virtual Item *create(Session *session, Item *arg1);
883
813
 
884
814
  static Create_func_last_day s_singleton;
905
835
class Create_func_lcase : public Create_func_arg1
906
836
{
907
837
public:
908
 
  using Create_func_arg1::create;
909
 
 
910
838
  virtual Item *create(Session *session, Item *arg1);
911
839
 
912
840
  static Create_func_lcase s_singleton;
933
861
class Create_func_length : public Create_func_arg1
934
862
{
935
863
public:
936
 
  using Create_func_arg1::create;
937
 
 
938
864
  virtual Item *create(Session *session, Item *arg1);
939
865
 
940
866
  static Create_func_length s_singleton;
948
874
class Create_func_ln : public Create_func_arg1
949
875
{
950
876
public:
951
 
  using Create_func_arg1::create;
952
 
 
953
877
  virtual Item *create(Session *session, Item *arg1);
954
878
 
955
879
  static Create_func_ln s_singleton;
963
887
class Create_func_load_file : public Create_func_arg1
964
888
{
965
889
public:
966
 
  using Create_func_arg1::create;
967
 
 
968
890
  virtual Item *create(Session *session, Item *arg1);
969
891
 
970
892
  static Create_func_load_file s_singleton;
1004
926
class Create_func_log10 : public Create_func_arg1
1005
927
{
1006
928
public:
1007
 
  using Create_func_arg1::create;
1008
 
 
1009
929
  virtual Item *create(Session *session, Item *arg1);
1010
930
 
1011
931
  static Create_func_log10 s_singleton;
1019
939
class Create_func_log2 : public Create_func_arg1
1020
940
{
1021
941
public:
1022
 
  using Create_func_arg1::create;
1023
 
 
1024
942
  virtual Item *create(Session *session, Item *arg1);
1025
943
 
1026
944
  static Create_func_log2 s_singleton;
1034
952
class Create_func_lpad : public Create_func_arg3
1035
953
{
1036
954
public:
1037
 
  using Create_func_arg3::create;
1038
 
 
1039
955
  virtual Item *create(Session *session, Item *arg1, Item *arg2, Item *arg3);
1040
956
 
1041
957
  static Create_func_lpad s_singleton;
1049
965
class Create_func_ltrim : public Create_func_arg1
1050
966
{
1051
967
public:
1052
 
  using Create_func_arg1::create;
1053
 
 
1054
968
  virtual Item *create(Session *session, Item *arg1);
1055
969
 
1056
970
  static Create_func_ltrim s_singleton;
1064
978
class Create_func_makedate : public Create_func_arg2
1065
979
{
1066
980
public:
1067
 
  using Create_func_arg2::create;
1068
 
 
1069
981
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1070
982
 
1071
983
  static Create_func_makedate s_singleton;
1079
991
class Create_func_maketime : public Create_func_arg3
1080
992
{
1081
993
public:
1082
 
  using Create_func_arg3::create;
1083
 
 
1084
994
  virtual Item *create(Session *session, Item *arg1, Item *arg2, Item *arg3);
1085
995
 
1086
996
  static Create_func_maketime s_singleton;
1107
1017
class Create_func_monthname : public Create_func_arg1
1108
1018
{
1109
1019
public:
1110
 
  using Create_func_arg1::create;
1111
 
 
1112
1020
  virtual Item *create(Session *session, Item *arg1);
1113
1021
 
1114
1022
  static Create_func_monthname s_singleton;
1122
1030
class Create_func_name_const : public Create_func_arg2
1123
1031
{
1124
1032
public:
1125
 
  using Create_func_arg2::create;
1126
 
 
1127
1033
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1128
1034
 
1129
1035
  static Create_func_name_const s_singleton;
1137
1043
class Create_func_nullif : public Create_func_arg2
1138
1044
{
1139
1045
public:
1140
 
  using Create_func_arg2::create;
1141
 
 
1142
1046
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1143
1047
 
1144
1048
  static Create_func_nullif s_singleton;
1152
1056
class Create_func_oct : public Create_func_arg1
1153
1057
{
1154
1058
public:
1155
 
  using Create_func_arg1::create;
1156
 
 
1157
1059
  virtual Item *create(Session *session, Item *arg1);
1158
1060
 
1159
1061
  static Create_func_oct s_singleton;
1167
1069
class Create_func_ord : public Create_func_arg1
1168
1070
{
1169
1071
public:
1170
 
  using Create_func_arg1::create;
1171
 
 
1172
1072
  virtual Item *create(Session *session, Item *arg1);
1173
1073
 
1174
1074
  static Create_func_ord s_singleton;
1182
1082
class Create_func_period_add : public Create_func_arg2
1183
1083
{
1184
1084
public:
1185
 
  using Create_func_arg2::create;
1186
 
 
1187
1085
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1188
1086
 
1189
1087
  static Create_func_period_add s_singleton;
1197
1095
class Create_func_period_diff : public Create_func_arg2
1198
1096
{
1199
1097
public:
1200
 
  using Create_func_arg2::create;
1201
 
 
1202
1098
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1203
1099
 
1204
1100
  static Create_func_period_diff s_singleton;
1212
1108
class Create_func_pi : public Create_func_arg0
1213
1109
{
1214
1110
public:
1215
 
  using Create_func_arg0::create;
1216
 
 
1217
1111
  virtual Item *create(Session *session);
1218
1112
 
1219
1113
  static Create_func_pi s_singleton;
1227
1121
class Create_func_pow : public Create_func_arg2
1228
1122
{
1229
1123
public:
1230
 
  using Create_func_arg2::create;
1231
 
 
1232
1124
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1233
1125
 
1234
1126
  static Create_func_pow s_singleton;
1242
1134
class Create_func_quote : public Create_func_arg1
1243
1135
{
1244
1136
public:
1245
 
  using Create_func_arg1::create;
1246
 
 
1247
1137
  virtual Item *create(Session *session, Item *arg1);
1248
1138
 
1249
1139
  static Create_func_quote s_singleton;
1257
1147
class Create_func_radians : public Create_func_arg1
1258
1148
{
1259
1149
public:
1260
 
  using Create_func_arg1::create;
1261
 
 
1262
1150
  virtual Item *create(Session *session, Item *arg1);
1263
1151
 
1264
1152
  static Create_func_radians s_singleton;
1298
1186
class Create_func_row_count : public Create_func_arg0
1299
1187
{
1300
1188
public:
1301
 
  using Create_func_arg0::create;
1302
 
 
1303
1189
  virtual Item *create(Session *session);
1304
1190
 
1305
1191
  static Create_func_row_count s_singleton;
1313
1199
class Create_func_rpad : public Create_func_arg3
1314
1200
{
1315
1201
public:
1316
 
  using Create_func_arg3::create;
1317
 
 
1318
1202
  virtual Item *create(Session *session, Item *arg1, Item *arg2, Item *arg3);
1319
1203
 
1320
1204
  static Create_func_rpad s_singleton;
1328
1212
class Create_func_rtrim : public Create_func_arg1
1329
1213
{
1330
1214
public:
1331
 
  using Create_func_arg1::create;
1332
 
 
1333
1215
  virtual Item *create(Session *session, Item *arg1);
1334
1216
 
1335
1217
  static Create_func_rtrim s_singleton;
1343
1225
class Create_func_sec_to_time : public Create_func_arg1
1344
1226
{
1345
1227
public:
1346
 
  using Create_func_arg1::create;
1347
 
 
1348
1228
  virtual Item *create(Session *session, Item *arg1);
1349
1229
 
1350
1230
  static Create_func_sec_to_time s_singleton;
1358
1238
class Create_func_sign : public Create_func_arg1
1359
1239
{
1360
1240
public:
1361
 
  using Create_func_arg1::create;
1362
 
 
1363
1241
  virtual Item *create(Session *session, Item *arg1);
1364
1242
 
1365
1243
  static Create_func_sign s_singleton;
1373
1251
class Create_func_sin : public Create_func_arg1
1374
1252
{
1375
1253
public:
1376
 
  using Create_func_arg1::create;
1377
 
 
1378
1254
  virtual Item *create(Session *session, Item *arg1);
1379
1255
 
1380
1256
  static Create_func_sin s_singleton;
1388
1264
class Create_func_space : public Create_func_arg1
1389
1265
{
1390
1266
public:
1391
 
  using Create_func_arg1::create;
1392
 
 
1393
1267
  virtual Item *create(Session *session, Item *arg1);
1394
1268
 
1395
1269
  static Create_func_space s_singleton;
1403
1277
class Create_func_sqrt : public Create_func_arg1
1404
1278
{
1405
1279
public:
1406
 
  using Create_func_arg1::create;
1407
 
 
1408
1280
  virtual Item *create(Session *session, Item *arg1);
1409
1281
 
1410
1282
  static Create_func_sqrt s_singleton;
1418
1290
class Create_func_str_to_date : public Create_func_arg2
1419
1291
{
1420
1292
public:
1421
 
  using Create_func_arg2::create;
1422
 
 
1423
1293
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1424
1294
 
1425
1295
  static Create_func_str_to_date s_singleton;
1433
1303
class Create_func_strcmp : public Create_func_arg2
1434
1304
{
1435
1305
public:
1436
 
  using Create_func_arg2::create;
1437
 
 
1438
1306
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1439
1307
 
1440
1308
  static Create_func_strcmp s_singleton;
1448
1316
class Create_func_substr_index : public Create_func_arg3
1449
1317
{
1450
1318
public:
1451
 
  using Create_func_arg3::create;
1452
 
 
1453
1319
  virtual Item *create(Session *session, Item *arg1, Item *arg2, Item *arg3);
1454
1320
 
1455
1321
  static Create_func_substr_index s_singleton;
1463
1329
class Create_func_subtime : public Create_func_arg2
1464
1330
{
1465
1331
public:
1466
 
  using Create_func_arg2::create;
1467
 
 
1468
1332
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1469
1333
 
1470
1334
  static Create_func_subtime s_singleton;
1478
1342
class Create_func_tan : public Create_func_arg1
1479
1343
{
1480
1344
public:
1481
 
  using Create_func_arg1::create;
1482
 
 
1483
1345
  virtual Item *create(Session *session, Item *arg1);
1484
1346
 
1485
1347
  static Create_func_tan s_singleton;
1493
1355
class Create_func_time_format : public Create_func_arg2
1494
1356
{
1495
1357
public:
1496
 
  using Create_func_arg2::create;
1497
 
 
1498
1358
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1499
1359
 
1500
1360
  static Create_func_time_format s_singleton;
1508
1368
class Create_func_time_to_sec : public Create_func_arg1
1509
1369
{
1510
1370
public:
1511
 
  using Create_func_arg1::create;
1512
 
 
1513
1371
  virtual Item *create(Session *session, Item *arg1);
1514
1372
 
1515
1373
  static Create_func_time_to_sec s_singleton;
1523
1381
class Create_func_timediff : public Create_func_arg2
1524
1382
{
1525
1383
public:
1526
 
  using Create_func_arg2::create;
1527
 
 
1528
1384
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
1529
1385
 
1530
1386
  static Create_func_timediff s_singleton;
1538
1394
class Create_func_to_days : public Create_func_arg1
1539
1395
{
1540
1396
public:
1541
 
  using Create_func_arg1::create;
1542
 
 
1543
1397
  virtual Item *create(Session *session, Item *arg1);
1544
1398
 
1545
1399
  static Create_func_to_days s_singleton;
1553
1407
class Create_func_ucase : public Create_func_arg1
1554
1408
{
1555
1409
public:
1556
 
  using Create_func_arg1::create;
1557
 
 
1558
1410
  virtual Item *create(Session *session, Item *arg1);
1559
1411
 
1560
1412
  static Create_func_ucase s_singleton;
1568
1420
class Create_func_unhex : public Create_func_arg1
1569
1421
{
1570
1422
public:
1571
 
  using Create_func_arg1::create;
1572
 
 
1573
1423
  virtual Item *create(Session *session, Item *arg1);
1574
1424
 
1575
1425
  static Create_func_unhex s_singleton;
1596
1446
class Create_func_uuid : public Create_func_arg0
1597
1447
{
1598
1448
public:
1599
 
  using Create_func_arg0::create;
1600
 
 
1601
1449
  virtual Item *create(Session *session);
1602
1450
 
1603
1451
  static Create_func_uuid s_singleton;
1611
1459
class Create_func_version : public Create_func_arg0
1612
1460
{
1613
1461
public:
1614
 
  using Create_func_arg0::create;
1615
 
 
1616
1462
  virtual Item *create(Session *session);
1617
1463
 
1618
1464
  static Create_func_version s_singleton;
1626
1472
class Create_func_weekday : public Create_func_arg1
1627
1473
{
1628
1474
public:
1629
 
  using Create_func_arg1::create;
1630
 
 
1631
1475
  virtual Item *create(Session *session, Item *arg1);
1632
1476
 
1633
1477
  static Create_func_weekday s_singleton;
1637
1481
  virtual ~Create_func_weekday() {}
1638
1482
};
1639
1483
 
1640
 
 
1641
 
class Create_func_weekofyear : public Create_func_arg1
1642
 
{
1643
 
public:
1644
 
  using Create_func_arg1::create;
1645
 
 
1646
 
  virtual Item *create(Session *session, Item *arg1);
1647
 
 
1648
 
  static Create_func_weekofyear s_singleton;
1649
 
 
1650
 
protected:
1651
 
  Create_func_weekofyear() {}
1652
 
  virtual ~Create_func_weekofyear() {}
1653
 
};
1654
 
 
1655
 
 
1656
 
class Create_func_year_week : public Create_native_func
1657
 
{
1658
 
public:
1659
 
  virtual Item *create_native(Session *session, LEX_STRING name, List<Item> *item_list);
1660
 
 
1661
 
  static Create_func_year_week s_singleton;
1662
 
 
1663
 
protected:
1664
 
  Create_func_year_week() {}
1665
 
  virtual ~Create_func_year_week() {}
1666
 
};
1667
 
 
1668
 
 
1669
1484
/*
1670
1485
=============================================================================
1671
1486
  IMPLEMENTATION
3044
2859
  return new (session->mem_root) Item_func_weekday(arg1, 0);
3045
2860
}
3046
2861
 
3047
 
 
3048
 
Create_func_weekofyear Create_func_weekofyear::s_singleton;
3049
 
 
3050
 
Item*
3051
 
Create_func_weekofyear::create(Session *session, Item *arg1)
3052
 
{
3053
 
  Item *i1= new (session->mem_root) Item_int((char*) "0", 3, 1);
3054
 
  return new (session->mem_root) Item_func_week(arg1, i1);
3055
 
}
3056
 
 
3057
 
 
3058
 
Create_func_year_week Create_func_year_week::s_singleton;
3059
 
 
3060
 
Item*
3061
 
Create_func_year_week::create_native(Session *session, LEX_STRING name,
3062
 
                                     List<Item> *item_list)
3063
 
{
3064
 
  Item *func= NULL;
3065
 
  int arg_count= 0;
3066
 
 
3067
 
  if (item_list != NULL)
3068
 
    arg_count= item_list->elements;
3069
 
 
3070
 
  switch (arg_count) {
3071
 
  case 1:
3072
 
  {
3073
 
    Item *param_1= item_list->pop();
3074
 
    Item *i0= new (session->mem_root) Item_int((char*) "0", 0, 1);
3075
 
    func= new (session->mem_root) Item_func_yearweek(param_1, i0);
3076
 
    break;
3077
 
  }
3078
 
  case 2:
3079
 
  {
3080
 
    Item *param_1= item_list->pop();
3081
 
    Item *param_2= item_list->pop();
3082
 
    func= new (session->mem_root) Item_func_yearweek(param_1, param_2);
3083
 
    break;
3084
 
  }
3085
 
  default:
3086
 
  {
3087
 
    my_error(ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT, MYF(0), name.str);
3088
 
    break;
3089
 
  }
3090
 
  }
3091
 
 
3092
 
  return func;
3093
 
}
3094
 
 
3095
 
 
3096
2862
struct Native_func_registry
3097
2863
{
3098
2864
  LEX_STRING name;
3208
2974
  { { C_STRING_WITH_LEN("UUID") }, BUILDER(Create_func_uuid)},
3209
2975
  { { C_STRING_WITH_LEN("VERSION") }, BUILDER(Create_func_version)},
3210
2976
  { { C_STRING_WITH_LEN("WEEKDAY") }, BUILDER(Create_func_weekday)},
3211
 
  { { C_STRING_WITH_LEN("WEEKOFYEAR") }, BUILDER(Create_func_weekofyear)},
3212
 
  { { C_STRING_WITH_LEN("YEARWEEK") }, BUILDER(Create_func_year_week)},
3213
2977
 
3214
2978
  { {0, 0}, NULL}
3215
2979
};