00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #pragma once
00021
00022 #include <drizzled/function/str/strfunc.h>
00023
00024 namespace drizzled
00025 {
00026
00027 class Item_func_binary :public Item_str_func
00028 {
00029 public:
00030 Item_func_binary(Item *a) :Item_str_func(a) {}
00031 String *val_str(String *a)
00032 {
00033 assert(fixed == 1);
00034 String *tmp=args[0]->val_str(a);
00035 null_value=args[0]->null_value;
00036 if (tmp)
00037 tmp->set_charset(&my_charset_bin);
00038 return tmp;
00039 }
00040 void fix_length_and_dec()
00041 {
00042 collation.set(&my_charset_bin);
00043 max_length=args[0]->max_length;
00044 }
00045 virtual void print(String *str);
00046 const char *func_name() const { return "cast_as_binary"; }
00047 };
00048
00049 }
00050