~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item_func.h

code clean move Item_func_abs, Item_func_int_exp, Item_func_ln, Item_func_log to functions directory

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
#include <drizzled/functions/numhybrid.h>
45
45
#include <drizzled/functions/num_op.h>
46
46
#include <drizzled/functions/num1.h>
 
47
#include <drizzled/functions/abs.h>
47
48
#include <drizzled/functions/plus.h>
48
49
#include <drizzled/functions/real.h>
 
50
#include <drizzled/functions/dec.h>
 
51
#include <drizzled/functions/exp.h>
 
52
#include <drizzled/functions/ln.h>
 
53
#include <drizzled/functions/log.h>
49
54
#include <drizzled/functions/signed.h>
50
55
#include <drizzled/functions/unsigned.h>
51
56
 
52
 
class Item_func_abs :public Item_func_num1
53
 
{
54
 
public:
55
 
  Item_func_abs(Item *a) :Item_func_num1(a) {}
56
 
  double real_op();
57
 
  int64_t int_op();
58
 
  my_decimal *decimal_op(my_decimal *);
59
 
  const char *func_name() const { return "abs"; }
60
 
  void fix_length_and_dec();
61
 
};
62
 
 
63
 
// A class to handle logarithmic and trigonometric functions
64
 
 
65
 
class Item_dec_func :public Item_real_func
66
 
{
67
 
 public:
68
 
  Item_dec_func(Item *a) :Item_real_func(a) {}
69
 
  Item_dec_func(Item *a,Item *b) :Item_real_func(a,b) {}
70
 
  void fix_length_and_dec()
71
 
  {
72
 
    decimals=NOT_FIXED_DEC; max_length=float_length(decimals);
73
 
    maybe_null=1;
74
 
  }
75
 
};
76
 
 
77
 
class Item_func_exp :public Item_dec_func
78
 
{
79
 
public:
80
 
  Item_func_exp(Item *a) :Item_dec_func(a) {}
81
 
  double val_real();
82
 
  const char *func_name() const { return "exp"; }
83
 
};
84
 
 
85
 
 
86
 
class Item_func_ln :public Item_dec_func
87
 
{
88
 
public:
89
 
  Item_func_ln(Item *a) :Item_dec_func(a) {}
90
 
  double val_real();
91
 
  const char *func_name() const { return "ln"; }
92
 
};
93
 
 
94
 
 
95
 
class Item_func_log :public Item_dec_func
96
 
{
97
 
public:
98
 
  Item_func_log(Item *a) :Item_dec_func(a) {}
99
 
  Item_func_log(Item *a,Item *b) :Item_dec_func(a,b) {}
100
 
  double val_real();
101
 
  const char *func_name() const { return "log"; }
102
 
};
103
 
 
104
 
 
105
 
class Item_func_log2 :public Item_dec_func
106
 
{
107
 
public:
108
 
  Item_func_log2(Item *a) :Item_dec_func(a) {}
109
 
  double val_real();
110
 
  const char *func_name() const { return "log2"; }
111
 
};
112
 
 
113
 
 
114
 
class Item_func_log10 :public Item_dec_func
115
 
{
116
 
public:
117
 
  Item_func_log10(Item *a) :Item_dec_func(a) {}
118
 
  double val_real();
119
 
  const char *func_name() const { return "log10"; }
120
 
};
121
 
 
122
 
 
123
57
class Item_func_sqrt :public Item_dec_func
124
58
{
125
59
public: