63
63
/* Function declarations */
65
65
#include <drizzled/function/func.h>
66
#include <drizzled/function/math/abs.h>
67
#include <drizzled/function/math/acos.h>
68
66
#include <drizzled/function/additive_op.h>
69
#include <drizzled/function/math/asin.h>
70
#include <drizzled/function/math/atan.h>
71
67
#include <drizzled/function/math/ceiling.h>
72
#include <drizzled/function/math/cos.h>
73
68
#include <drizzled/function/math/dec.h>
74
69
#include <drizzled/function/math/decimal_typecast.h>
75
70
#include <drizzled/function/math/exp.h>
83
78
#include <drizzled/function/last_insert.h>
84
79
#include <drizzled/function/math/ln.h>
85
80
#include <drizzled/function/locate.h>
86
#include <drizzled/function/math/log.h>
87
81
#include <drizzled/function/min_max.h>
88
82
#include <drizzled/function/num1.h>
89
83
#include <drizzled/function/num_op.h>
90
84
#include <drizzled/function/numhybrid.h>
91
85
#include <drizzled/function/math/ord.h>
92
#include <drizzled/function/math/pow.h>
93
86
#include <drizzled/function/math/real.h>
94
87
#include <drizzled/function/row_count.h>
95
88
#include <drizzled/function/set_user_var.h>
96
89
#include <drizzled/function/sign.h>
97
#include <drizzled/function/math/sin.h>
98
90
#include <drizzled/function/math/sqrt.h>
99
91
#include <drizzled/function/str/quote.h>
100
92
#include <drizzled/function/math/tan.h>
257
249
it helps to compare code between versions, and helps with merges conflicts.
260
class Create_func_abs : public Create_func_arg1
263
using Create_func_arg1::create;
265
virtual Item *create(Session *session, Item *arg1);
267
static Create_func_abs s_singleton;
271
virtual ~Create_func_abs() {}
275
class Create_func_acos : public Create_func_arg1
278
using Create_func_arg1::create;
280
virtual Item *create(Session *session, Item *arg1);
282
static Create_func_acos s_singleton;
285
Create_func_acos() {}
286
virtual ~Create_func_acos() {}
289
class Create_func_asin : public Create_func_arg1
292
using Create_func_arg1::create;
294
virtual Item *create(Session *session, Item *arg1);
296
static Create_func_asin s_singleton;
299
Create_func_asin() {}
300
virtual ~Create_func_asin() {}
304
class Create_func_atan : public Create_native_func
307
virtual Item *create_native(Session *session, LEX_STRING name, List<Item> *item_list);
309
static Create_func_atan s_singleton;
312
Create_func_atan() {}
313
virtual ~Create_func_atan() {}
316
253
class Create_func_bin : public Create_func_arg1
382
319
virtual ~Create_func_conv() {}
386
class Create_func_cos : public Create_func_arg1
389
using Create_func_arg1::create;
391
virtual Item *create(Session *session, Item *arg1);
393
static Create_func_cos s_singleton;
397
virtual ~Create_func_cos() {}
401
322
class Create_func_cot : public Create_func_arg1
834
class Create_func_log : public Create_native_func
837
virtual Item *create_native(Session *session, LEX_STRING name, List<Item> *item_list);
839
static Create_func_log s_singleton;
843
virtual ~Create_func_log() {}
847
class Create_func_log10 : public Create_func_arg1
850
using Create_func_arg1::create;
852
virtual Item *create(Session *session, Item *arg1);
854
static Create_func_log10 s_singleton;
857
Create_func_log10() {}
858
virtual ~Create_func_log10() {}
862
class Create_func_log2 : public Create_func_arg1
865
using Create_func_arg1::create;
867
virtual Item *create(Session *session, Item *arg1);
869
static Create_func_log2 s_singleton;
872
Create_func_log2() {}
873
virtual ~Create_func_log2() {}
877
755
class Create_func_lpad : public Create_func_arg3
1050
928
virtual ~Create_func_pi() {}
1054
class Create_func_pow : public Create_func_arg2
1057
using Create_func_arg2::create;
1059
virtual Item *create(Session *session, Item *arg1, Item *arg2);
1061
static Create_func_pow s_singleton;
1064
Create_func_pow() {}
1065
virtual ~Create_func_pow() {}
1069
931
class Create_func_quote : public Create_func_arg1
1167
1029
virtual ~Create_func_sign() {}
1171
class Create_func_sin : public Create_func_arg1
1174
using Create_func_arg1::create;
1176
virtual Item *create(Session *session, Item *arg1);
1178
static Create_func_sin s_singleton;
1181
Create_func_sin() {}
1182
virtual ~Create_func_sin() {}
1186
1032
class Create_func_space : public Create_func_arg1
1510
1356
return create(session, param_1, param_2, param_3);
1514
Create_func_abs Create_func_abs::s_singleton;
1517
Create_func_abs::create(Session *session, Item *arg1)
1519
return new (session->mem_root) Item_func_abs(arg1);
1523
Create_func_acos Create_func_acos::s_singleton;
1526
Create_func_acos::create(Session *session, Item *arg1)
1528
return new (session->mem_root) Item_func_acos(arg1);
1531
Create_func_asin Create_func_asin::s_singleton;
1534
Create_func_asin::create(Session *session, Item *arg1)
1536
return new (session->mem_root) Item_func_asin(arg1);
1540
Create_func_atan Create_func_atan::s_singleton;
1543
Create_func_atan::create_native(Session *session, LEX_STRING name,
1544
List<Item> *item_list)
1549
if (item_list != NULL)
1550
arg_count= item_list->elements;
1552
switch (arg_count) {
1555
Item *param_1= item_list->pop();
1556
func= new (session->mem_root) Item_func_atan(param_1);
1561
Item *param_1= item_list->pop();
1562
Item *param_2= item_list->pop();
1563
func= new (session->mem_root) Item_func_atan(param_1, param_2);
1568
my_error(ER_WRONG_PARAMCOUNT_TO_FUNCTION, MYF(0), name.str);
1576
1359
Create_func_bin Create_func_bin::s_singleton;
1643
1426
return new (session->mem_root) Item_func_conv(arg1, arg2, arg3);
1647
Create_func_cos Create_func_cos::s_singleton;
1650
Create_func_cos::create(Session *session, Item *arg1)
1652
return new (session->mem_root) Item_func_cos(arg1);
1656
1429
Create_func_cot Create_func_cot::s_singleton;
2100
Create_func_log Create_func_log::s_singleton;
2103
Create_func_log::create_native(Session *session, LEX_STRING name,
2104
List<Item> *item_list)
2109
if (item_list != NULL)
2110
arg_count= item_list->elements;
2112
switch (arg_count) {
2115
Item *param_1= item_list->pop();
2116
func= new (session->mem_root) Item_func_log(param_1);
2121
Item *param_1= item_list->pop();
2122
Item *param_2= item_list->pop();
2123
func= new (session->mem_root) Item_func_log(param_1, param_2);
2128
my_error(ER_WRONG_PARAMCOUNT_TO_FUNCTION, MYF(0), name.str);
2137
Create_func_log10 Create_func_log10::s_singleton;
2140
Create_func_log10::create(Session *session, Item *arg1)
2142
return new (session->mem_root) Item_func_log10(arg1);
2146
Create_func_log2 Create_func_log2::s_singleton;
2149
Create_func_log2::create(Session *session, Item *arg1)
2151
return new (session->mem_root) Item_func_log2(arg1);
2155
1872
Create_func_lpad Create_func_lpad::s_singleton;
2269
Create_func_pow Create_func_pow::s_singleton;
2272
Create_func_pow::create(Session *session, Item *arg1, Item *arg2)
2274
return new (session->mem_root) Item_func_pow(arg1, arg2);
2278
1986
Create_func_quote Create_func_quote::s_singleton;
2366
2074
return new (session->mem_root) Item_func_sign(arg1);
2370
Create_func_sin Create_func_sin::s_singleton;
2373
Create_func_sin::create(Session *session, Item *arg1)
2375
return new (session->mem_root) Item_func_sin(arg1);
2379
2077
Create_func_space Create_func_space::s_singleton;
2517
2215
static Native_func_registry func_array[] =
2519
{ { C_STRING_WITH_LEN("ABS") }, BUILDER(Create_func_abs)},
2520
{ { C_STRING_WITH_LEN("ACOS") }, BUILDER(Create_func_acos)},
2521
{ { C_STRING_WITH_LEN("ASIN") }, BUILDER(Create_func_asin)},
2522
{ { C_STRING_WITH_LEN("ATAN") }, BUILDER(Create_func_atan)},
2523
{ { C_STRING_WITH_LEN("ATAN2") }, BUILDER(Create_func_atan)},
2524
2217
{ { C_STRING_WITH_LEN("BIN") }, BUILDER(Create_func_bin)},
2525
2218
{ { C_STRING_WITH_LEN("CEIL") }, BUILDER(Create_func_ceiling)},
2526
2219
{ { C_STRING_WITH_LEN("CEILING") }, BUILDER(Create_func_ceiling)},
2527
2220
{ { C_STRING_WITH_LEN("CONCAT") }, BUILDER(Create_func_concat)},
2528
2221
{ { C_STRING_WITH_LEN("CONCAT_WS") }, BUILDER(Create_func_concat_ws)},
2529
2222
{ { C_STRING_WITH_LEN("CONV") }, BUILDER(Create_func_conv)},
2530
{ { C_STRING_WITH_LEN("COS") }, BUILDER(Create_func_cos)},
2531
2223
{ { C_STRING_WITH_LEN("COT") }, BUILDER(Create_func_cot)},
2532
2224
{ { C_STRING_WITH_LEN("DATEDIFF") }, BUILDER(Create_func_datediff)},
2533
2225
{ { C_STRING_WITH_LEN("DATE_FORMAT") }, BUILDER(Create_func_date_format)},
2557
2249
{ { C_STRING_WITH_LEN("LN") }, BUILDER(Create_func_ln)},
2558
2250
{ { C_STRING_WITH_LEN("LOAD_FILE") }, BUILDER(Create_func_load_file)},
2559
2251
{ { C_STRING_WITH_LEN("LOCATE") }, BUILDER(Create_func_locate)},
2560
{ { C_STRING_WITH_LEN("LOG") }, BUILDER(Create_func_log)},
2561
{ { C_STRING_WITH_LEN("LOG10") }, BUILDER(Create_func_log10)},
2562
{ { C_STRING_WITH_LEN("LOG2") }, BUILDER(Create_func_log2)},
2563
2252
{ { C_STRING_WITH_LEN("LOWER") }, BUILDER(Create_func_lcase)},
2564
2253
{ { C_STRING_WITH_LEN("LPAD") }, BUILDER(Create_func_lpad)},
2565
2254
{ { C_STRING_WITH_LEN("LTRIM") }, BUILDER(Create_func_ltrim)},
2572
2261
{ { C_STRING_WITH_LEN("PERIOD_ADD") }, BUILDER(Create_func_period_add)},
2573
2262
{ { C_STRING_WITH_LEN("PERIOD_DIFF") }, BUILDER(Create_func_period_diff)},
2574
2263
{ { C_STRING_WITH_LEN("PI") }, BUILDER(Create_func_pi)},
2575
{ { C_STRING_WITH_LEN("POW") }, BUILDER(Create_func_pow)},
2576
{ { C_STRING_WITH_LEN("POWER") }, BUILDER(Create_func_pow)},
2577
2264
{ { C_STRING_WITH_LEN("QUOTE") }, BUILDER(Create_func_quote)},
2578
2265
{ { C_STRING_WITH_LEN("RADIANS") }, BUILDER(Create_func_radians)},
2579
2266
{ { C_STRING_WITH_LEN("ROUND") }, BUILDER(Create_func_round)},
2581
2268
{ { C_STRING_WITH_LEN("RPAD") }, BUILDER(Create_func_rpad)},
2582
2269
{ { C_STRING_WITH_LEN("RTRIM") }, BUILDER(Create_func_rtrim)},
2583
2270
{ { C_STRING_WITH_LEN("SIGN") }, BUILDER(Create_func_sign)},
2584
{ { C_STRING_WITH_LEN("SIN") }, BUILDER(Create_func_sin)},
2585
2271
{ { C_STRING_WITH_LEN("SPACE") }, BUILDER(Create_func_space)},
2586
2272
{ { C_STRING_WITH_LEN("SQRT") }, BUILDER(Create_func_sqrt)},
2587
2273
{ { C_STRING_WITH_LEN("STRCMP") }, BUILDER(Create_func_strcmp)},