29
32
#include <drizzled/functions/str/sysconst.h>
30
33
#include <drizzled/functions/str/database.h>
31
34
#include <drizzled/functions/str/trim.h>
33
class Item_func_user :public Item_func_sysconst
36
bool init (const char *user, const char *host);
41
str_value.set("", 0, system_charset_info);
43
String *val_str(String *)
46
return (null_value ? 0 : &str_value);
48
bool fix_fields(Session *session, Item **ref);
49
void fix_length_and_dec()
51
max_length= (USERNAME_CHAR_LENGTH + HOSTNAME_LENGTH + 1) *
52
system_charset_info->mbmaxlen;
54
const char *func_name() const { return "user"; }
55
const char *fully_qualified_func_name() const { return "user()"; }
56
int save_in_field(Field *field,
57
bool no_conversions __attribute__((unused)))
59
return save_str_value_in_field(field, &str_value);
64
class Item_func_current_user :public Item_func_user
66
Name_resolution_context *context;
69
Item_func_current_user(Name_resolution_context *context_arg)
70
: context(context_arg) {}
71
bool fix_fields(Session *session, Item **ref);
72
const char *func_name() const { return "current_user"; }
73
const char *fully_qualified_func_name() const { return "current_user()"; }
77
class Item_func_soundex :public Item_str_func
81
Item_func_soundex(Item *a) :Item_str_func(a) {}
82
String *val_str(String *);
83
void fix_length_and_dec();
84
const char *func_name() const { return "soundex"; }
88
class Item_func_elt :public Item_str_func
91
Item_func_elt(List<Item> &list) :Item_str_func(list) {}
94
String *val_str(String *str);
95
void fix_length_and_dec();
96
const char *func_name() const { return "elt"; }
100
class Item_func_make_set :public Item_str_func
106
Item_func_make_set(Item *a,List<Item> &list) :Item_str_func(list),item(a) {}
107
String *val_str(String *str);
108
bool fix_fields(Session *session, Item **ref)
111
return ((!item->fixed && item->fix_fields(session, &item)) ||
112
item->check_cols(1) ||
113
Item_func::fix_fields(session, ref));
115
void split_sum_func(Session *session, Item **ref_pointer_array, List<Item> &fields);
116
void fix_length_and_dec();
117
void update_used_tables();
118
const char *func_name() const { return "make_set"; }
120
bool walk(Item_processor processor, bool walk_subquery, unsigned char *arg)
122
return item->walk(processor, walk_subquery, arg) ||
123
Item_str_func::walk(processor, walk_subquery, arg);
125
Item *transform(Item_transformer transformer, unsigned char *arg);
126
virtual void print(String *str, enum_query_type query_type);
130
class Item_func_format :public Item_str_func
134
Item_func_format(Item *org, Item *dec);
135
String *val_str(String *);
136
void fix_length_and_dec();
137
const char *func_name() const { return "format"; }
138
virtual void print(String *str, enum_query_type query_type);
35
#include <drizzled/functions/str/user.h>
142
37
class Item_func_char :public Item_str_func