~linuxjedi/drizzle/drizzle-bug-647360

« back to all changes in this revision

Viewing changes to drizzled/item/create.cc

  • Committer: lbieber
  • Date: 2010-09-22 22:06:36 UTC
  • mfrom: (1786.1.3 build)
  • Revision ID: lbieber@orisndriz08-20100922220636-agrmqaqv2u7ln6ff
Merge Shrews - Add transaction log bulk tests
Merge Brian - Remove 3 byte indexes
Merge Stewart - Move string functions into plugin

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
#include <drizzled/function/str/binary.h>
31
31
#include <drizzled/function/str/concat.h>
32
32
#include <drizzled/function/str/conv.h>
33
 
#include <drizzled/function/str/elt.h>
34
33
#include <drizzled/function/str/export_set.h>
35
 
#include <drizzled/function/str/format.h>
36
34
#include <drizzled/function/str/load_file.h>
37
35
#include <drizzled/function/str/make_set.h>
38
36
#include <drizzled/function/str/pad.h>
64
62
 
65
63
#include <drizzled/function/func.h>
66
64
#include <drizzled/function/additive_op.h>
67
 
#include <drizzled/function/math/ceiling.h>
68
65
#include <drizzled/function/math/dec.h>
69
66
#include <drizzled/function/math/decimal_typecast.h>
70
 
#include <drizzled/function/math/exp.h>
71
67
#include <drizzled/function/field.h>
72
68
#include <drizzled/function/find_in_set.h>
73
 
#include <drizzled/function/math/floor.h>
74
69
#include <drizzled/function/found_rows.h>
75
70
#include <drizzled/function/get_system_var.h>
76
71
#include <drizzled/function/math/int_val.h>
81
76
#include <drizzled/function/num1.h>
82
77
#include <drizzled/function/num_op.h>
83
78
#include <drizzled/function/numhybrid.h>
84
 
#include <drizzled/function/math/ord.h>
85
79
#include <drizzled/function/math/real.h>
86
80
#include <drizzled/function/row_count.h>
87
81
#include <drizzled/function/set_user_var.h>
88
82
#include <drizzled/function/sign.h>
89
 
#include <drizzled/function/str/quote.h>
90
83
#include <drizzled/function/math/tan.h>
91
84
#include <drizzled/function/units.h>
92
85
 
262
255
  virtual ~Create_func_bin() {}
263
256
};
264
257
 
265
 
 
266
 
class Create_func_ceiling : public Create_func_arg1
267
 
{
268
 
public:
269
 
  using Create_func_arg1::create;
270
 
 
271
 
  virtual Item *create(Session *session, Item *arg1);
272
 
 
273
 
  static Create_func_ceiling s_singleton;
274
 
 
275
 
protected:
276
 
  Create_func_ceiling() {}
277
 
  virtual ~Create_func_ceiling() {}
278
 
};
279
 
 
280
258
class Create_func_concat : public Create_native_func
281
259
{
282
260
public:
450
428
  virtual ~Create_func_degrees() {}
451
429
};
452
430
 
453
 
 
454
 
class Create_func_elt : public Create_native_func
455
 
{
456
 
public:
457
 
  virtual Item *create_native(Session *session, LEX_STRING name, List<Item> *item_list);
458
 
 
459
 
  static Create_func_elt s_singleton;
460
 
 
461
 
protected:
462
 
  Create_func_elt() {}
463
 
  virtual ~Create_func_elt() {}
464
 
};
465
 
 
466
 
 
467
 
class Create_func_exp : public Create_func_arg1
468
 
{
469
 
public:
470
 
  using Create_func_arg1::create;
471
 
 
472
 
  virtual Item *create(Session *session, Item *arg1);
473
 
 
474
 
  static Create_func_exp s_singleton;
475
 
 
476
 
protected:
477
 
  Create_func_exp() {}
478
 
  virtual ~Create_func_exp() {}
479
 
};
480
 
 
481
 
 
482
431
class Create_func_export_set : public Create_native_func
483
432
{
484
433
 
520
469
  virtual ~Create_func_find_in_set() {}
521
470
};
522
471
 
523
 
 
524
 
class Create_func_floor : public Create_func_arg1
525
 
{
526
 
public:
527
 
  using Create_func_arg1::create;
528
 
 
529
 
  virtual Item *create(Session *session, Item *arg1);
530
 
 
531
 
  static Create_func_floor s_singleton;
532
 
 
533
 
protected:
534
 
  Create_func_floor() {}
535
 
  virtual ~Create_func_floor() {}
536
 
};
537
 
 
538
 
 
539
 
class Create_func_format : public Create_func_arg2
540
 
{
541
 
public:
542
 
  using Create_func_arg2::create;
543
 
 
544
 
  virtual Item *create(Session *session, Item *arg1, Item *arg2);
545
 
 
546
 
  static Create_func_format s_singleton;
547
 
 
548
 
protected:
549
 
  Create_func_format() {}
550
 
  virtual ~Create_func_format() {}
551
 
};
552
 
 
553
 
 
554
472
class Create_func_found_rows : public Create_func_arg0
555
473
{
556
474
public:
851
769
  virtual ~Create_func_oct() {}
852
770
};
853
771
 
854
 
 
855
 
class Create_func_ord : public Create_func_arg1
856
 
{
857
 
public:
858
 
  using Create_func_arg1::create;
859
 
 
860
 
  virtual Item *create(Session *session, Item *arg1);
861
 
 
862
 
  static Create_func_ord s_singleton;
863
 
 
864
 
protected:
865
 
  Create_func_ord() {}
866
 
  virtual ~Create_func_ord() {}
867
 
};
868
 
 
869
 
 
870
772
class Create_func_period_add : public Create_func_arg2
871
773
{
872
774
public:
911
813
  virtual ~Create_func_pi() {}
912
814
};
913
815
 
914
 
class Create_func_quote : public Create_func_arg1
915
 
{
916
 
public:
917
 
  using Create_func_arg1::create;
918
 
 
919
 
  virtual Item *create(Session *session, Item *arg1);
920
 
 
921
 
  static Create_func_quote s_singleton;
922
 
 
923
 
protected:
924
 
  Create_func_quote() {}
925
 
  virtual ~Create_func_quote() {}
926
 
};
927
 
 
928
 
 
929
816
class Create_func_radians : public Create_func_arg1
930
817
{
931
818
public:
1333
1220
  return new (session->mem_root) Item_func_conv(arg1, i10, i2);
1334
1221
}
1335
1222
 
1336
 
 
1337
 
Create_func_ceiling Create_func_ceiling::s_singleton;
1338
 
 
1339
 
Item*
1340
 
Create_func_ceiling::create(Session *session, Item *arg1)
1341
 
{
1342
 
  return new (session->mem_root) Item_func_ceiling(arg1);
1343
 
}
1344
 
 
1345
1223
Create_func_concat Create_func_concat::s_singleton;
1346
1224
 
1347
1225
Item*
1469
1347
                                             180/M_PI, 0.0);
1470
1348
}
1471
1349
 
1472
 
 
1473
 
Create_func_elt Create_func_elt::s_singleton;
1474
 
 
1475
 
Item*
1476
 
Create_func_elt::create_native(Session *session, LEX_STRING name,
1477
 
                               List<Item> *item_list)
1478
 
{
1479
 
  int arg_count= 0;
1480
 
 
1481
 
  if (item_list != NULL)
1482
 
    arg_count= item_list->elements;
1483
 
 
1484
 
  if (arg_count < 2)
1485
 
  {
1486
 
    my_error(ER_WRONG_PARAMCOUNT_TO_FUNCTION, MYF(0), name.str);
1487
 
    return NULL;
1488
 
  }
1489
 
 
1490
 
  return new (session->mem_root) Item_func_elt(*item_list);
1491
 
}
1492
 
 
1493
 
 
1494
 
Create_func_exp Create_func_exp::s_singleton;
1495
 
 
1496
 
Item*
1497
 
Create_func_exp::create(Session *session, Item *arg1)
1498
 
{
1499
 
  return new (session->mem_root) Item_func_exp(arg1);
1500
 
}
1501
 
 
1502
 
 
1503
1350
Create_func_export_set Create_func_export_set::s_singleton;
1504
1351
 
1505
1352
Item*
1582
1429
  return new (session->mem_root) Item_func_find_in_set(arg1, arg2);
1583
1430
}
1584
1431
 
1585
 
 
1586
 
Create_func_floor Create_func_floor::s_singleton;
1587
 
 
1588
 
Item*
1589
 
Create_func_floor::create(Session *session, Item *arg1)
1590
 
{
1591
 
  return new (session->mem_root) Item_func_floor(arg1);
1592
 
}
1593
 
 
1594
 
 
1595
 
Create_func_format Create_func_format::s_singleton;
1596
 
 
1597
 
Item*
1598
 
Create_func_format::create(Session *session, Item *arg1, Item *arg2)
1599
 
{
1600
 
  return new (session->mem_root) Item_func_format(arg1, arg2);
1601
 
}
1602
 
 
1603
 
 
1604
1432
Create_func_found_rows Create_func_found_rows::s_singleton;
1605
1433
 
1606
1434
Item*
1903
1731
  return new (session->mem_root) Item_func_conv(arg1, i10, i8);
1904
1732
}
1905
1733
 
1906
 
 
1907
 
Create_func_ord Create_func_ord::s_singleton;
1908
 
 
1909
 
Item*
1910
 
Create_func_ord::create(Session *session, Item *arg1)
1911
 
{
1912
 
  return new (session->mem_root) Item_func_ord(arg1);
1913
 
}
1914
 
 
1915
 
 
1916
1734
Create_func_period_add Create_func_period_add::s_singleton;
1917
1735
 
1918
1736
Item*
1939
1757
  return new (session->mem_root) Item_static_float_func("pi()", M_PI, 6, 8);
1940
1758
}
1941
1759
 
1942
 
 
1943
 
Create_func_quote Create_func_quote::s_singleton;
1944
 
 
1945
 
Item*
1946
 
Create_func_quote::create(Session *session, Item *arg1)
1947
 
{
1948
 
  return new (session->mem_root) Item_func_quote(arg1);
1949
 
}
1950
 
 
1951
 
 
1952
1760
Create_func_radians Create_func_radians::s_singleton;
1953
1761
 
1954
1762
Item*
2162
1970
static Native_func_registry func_array[] =
2163
1971
{
2164
1972
  { { C_STRING_WITH_LEN("BIN") }, BUILDER(Create_func_bin)},
2165
 
  { { C_STRING_WITH_LEN("CEIL") }, BUILDER(Create_func_ceiling)},
2166
 
  { { C_STRING_WITH_LEN("CEILING") }, BUILDER(Create_func_ceiling)},
2167
1973
  { { C_STRING_WITH_LEN("CONCAT") }, BUILDER(Create_func_concat)},
2168
1974
  { { C_STRING_WITH_LEN("CONCAT_WS") }, BUILDER(Create_func_concat_ws)},
2169
1975
  { { C_STRING_WITH_LEN("CONV") }, BUILDER(Create_func_conv)},
2175
1981
  { { C_STRING_WITH_LEN("DAYOFWEEK") }, BUILDER(Create_func_dayofweek)},
2176
1982
  { { C_STRING_WITH_LEN("DAYOFYEAR") }, BUILDER(Create_func_dayofyear)},
2177
1983
  { { C_STRING_WITH_LEN("DEGREES") }, BUILDER(Create_func_degrees)},
2178
 
  { { C_STRING_WITH_LEN("ELT") }, BUILDER(Create_func_elt)},
2179
 
  { { C_STRING_WITH_LEN("EXP") }, BUILDER(Create_func_exp)},
2180
1984
  { { C_STRING_WITH_LEN("EXPORT_SET") }, BUILDER(Create_func_export_set)},
2181
1985
  { { C_STRING_WITH_LEN("FIELD") }, BUILDER(Create_func_field)},
2182
1986
  { { C_STRING_WITH_LEN("FIND_IN_SET") }, BUILDER(Create_func_find_in_set)},
2183
 
  { { C_STRING_WITH_LEN("FLOOR") }, BUILDER(Create_func_floor)},
2184
 
  { { C_STRING_WITH_LEN("FORMAT") }, BUILDER(Create_func_format)},
2185
1987
  { { C_STRING_WITH_LEN("FOUND_ROWS") }, BUILDER(Create_func_found_rows)},
2186
1988
  { { C_STRING_WITH_LEN("FROM_DAYS") }, BUILDER(Create_func_from_days)},
2187
1989
  { { C_STRING_WITH_LEN("FROM_UNIXTIME") }, BUILDER(Create_func_from_unixtime)},
2203
2005
  { { C_STRING_WITH_LEN("MONTHNAME") }, BUILDER(Create_func_monthname)},
2204
2006
  { { C_STRING_WITH_LEN("NULLIF") }, BUILDER(Create_func_nullif)},
2205
2007
  { { C_STRING_WITH_LEN("OCT") }, BUILDER(Create_func_oct)},
2206
 
  { { C_STRING_WITH_LEN("ORD") }, BUILDER(Create_func_ord)},
2207
2008
  { { C_STRING_WITH_LEN("PERIOD_ADD") }, BUILDER(Create_func_period_add)},
2208
2009
  { { C_STRING_WITH_LEN("PERIOD_DIFF") }, BUILDER(Create_func_period_diff)},
2209
2010
  { { C_STRING_WITH_LEN("PI") }, BUILDER(Create_func_pi)},
2210
 
  { { C_STRING_WITH_LEN("QUOTE") }, BUILDER(Create_func_quote)},
2211
2011
  { { C_STRING_WITH_LEN("RADIANS") }, BUILDER(Create_func_radians)},
2212
2012
  { { C_STRING_WITH_LEN("ROUND") }, BUILDER(Create_func_round)},
2213
2013
  { { C_STRING_WITH_LEN("ROW_COUNT") }, BUILDER(Create_func_row_count)},