~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item/create.cc

move LOG(), LOG2() and LOG10() functions into math_functions plugin

Show diffs side-by-side

added added

removed removed

Lines of Context:
78
78
#include <drizzled/function/last_insert.h>
79
79
#include <drizzled/function/math/ln.h>
80
80
#include <drizzled/function/locate.h>
81
 
#include <drizzled/function/math/log.h>
82
81
#include <drizzled/function/min_max.h>
83
82
#include <drizzled/function/num1.h>
84
83
#include <drizzled/function/num_op.h>
755
754
};
756
755
 
757
756
 
758
 
class Create_func_log : public Create_native_func
759
 
{
760
 
public:
761
 
  virtual Item *create_native(Session *session, LEX_STRING name, List<Item> *item_list);
762
 
 
763
 
  static Create_func_log s_singleton;
764
 
 
765
 
protected:
766
 
  Create_func_log() {}
767
 
  virtual ~Create_func_log() {}
768
 
};
769
 
 
770
 
 
771
 
class Create_func_log10 : public Create_func_arg1
772
 
{
773
 
public:
774
 
  using Create_func_arg1::create;
775
 
 
776
 
  virtual Item *create(Session *session, Item *arg1);
777
 
 
778
 
  static Create_func_log10 s_singleton;
779
 
 
780
 
protected:
781
 
  Create_func_log10() {}
782
 
  virtual ~Create_func_log10() {}
783
 
};
784
 
 
785
 
 
786
 
class Create_func_log2 : public Create_func_arg1
787
 
{
788
 
public:
789
 
  using Create_func_arg1::create;
790
 
 
791
 
  virtual Item *create(Session *session, Item *arg1);
792
 
 
793
 
  static Create_func_log2 s_singleton;
794
 
 
795
 
protected:
796
 
  Create_func_log2() {}
797
 
  virtual ~Create_func_log2() {}
798
 
};
799
 
 
800
 
 
801
757
class Create_func_lpad : public Create_func_arg3
802
758
{
803
759
public:
1947
1903
  return func;
1948
1904
}
1949
1905
 
1950
 
 
1951
 
Create_func_log Create_func_log::s_singleton;
1952
 
 
1953
 
Item*
1954
 
Create_func_log::create_native(Session *session, LEX_STRING name,
1955
 
                               List<Item> *item_list)
1956
 
{
1957
 
  Item *func= NULL;
1958
 
  int arg_count= 0;
1959
 
 
1960
 
  if (item_list != NULL)
1961
 
    arg_count= item_list->elements;
1962
 
 
1963
 
  switch (arg_count) {
1964
 
  case 1:
1965
 
  {
1966
 
    Item *param_1= item_list->pop();
1967
 
    func= new (session->mem_root) Item_func_log(param_1);
1968
 
    break;
1969
 
  }
1970
 
  case 2:
1971
 
  {
1972
 
    Item *param_1= item_list->pop();
1973
 
    Item *param_2= item_list->pop();
1974
 
    func= new (session->mem_root) Item_func_log(param_1, param_2);
1975
 
    break;
1976
 
  }
1977
 
  default:
1978
 
  {
1979
 
    my_error(ER_WRONG_PARAMCOUNT_TO_FUNCTION, MYF(0), name.str);
1980
 
    break;
1981
 
  }
1982
 
  }
1983
 
 
1984
 
  return func;
1985
 
}
1986
 
 
1987
 
 
1988
 
Create_func_log10 Create_func_log10::s_singleton;
1989
 
 
1990
 
Item*
1991
 
Create_func_log10::create(Session *session, Item *arg1)
1992
 
{
1993
 
  return new (session->mem_root) Item_func_log10(arg1);
1994
 
}
1995
 
 
1996
 
 
1997
 
Create_func_log2 Create_func_log2::s_singleton;
1998
 
 
1999
 
Item*
2000
 
Create_func_log2::create(Session *session, Item *arg1)
2001
 
{
2002
 
  return new (session->mem_root) Item_func_log2(arg1);
2003
 
}
2004
 
 
2005
 
 
2006
1906
Create_func_lpad Create_func_lpad::s_singleton;
2007
1907
 
2008
1908
Item*
2402
2302
  { { C_STRING_WITH_LEN("LN") }, BUILDER(Create_func_ln)},
2403
2303
  { { C_STRING_WITH_LEN("LOAD_FILE") }, BUILDER(Create_func_load_file)},
2404
2304
  { { C_STRING_WITH_LEN("LOCATE") }, BUILDER(Create_func_locate)},
2405
 
  { { C_STRING_WITH_LEN("LOG") }, BUILDER(Create_func_log)},
2406
 
  { { C_STRING_WITH_LEN("LOG10") }, BUILDER(Create_func_log10)},
2407
 
  { { C_STRING_WITH_LEN("LOG2") }, BUILDER(Create_func_log2)},
2408
2305
  { { C_STRING_WITH_LEN("LOWER") }, BUILDER(Create_func_lcase)},
2409
2306
  { { C_STRING_WITH_LEN("LPAD") }, BUILDER(Create_func_lpad)},
2410
2307
  { { C_STRING_WITH_LEN("LTRIM") }, BUILDER(Create_func_ltrim)},