2034
2034
startup only (before going multi-threaded)
2037
int item_create_init()
2041
Native_func_registry *func;
2042
for (func= func_array; func->builder != NULL; func++)
2044
func_name.assign(func->name.str, func->name.length);
2046
FunctionContainer::getMap()[func_name]= func->builder;
2054
find_native_function_builder(LEX_STRING name)
2056
Create_func *builder= NULL;
2058
string func_name(name.str, name.length);
2060
FunctionContainer::Map::iterator func_iter=
2061
FunctionContainer::getMap().find(func_name);
2063
if (func_iter != FunctionContainer::getMap().end())
2065
builder= (*func_iter).second;
2073
create_func_char_cast(Session *session, Item *a, int len, const charset_info_st * const cs)
2075
const charset_info_st * const real_cs= (cs ? cs : session->variables.getCollation());
2076
return new (session->mem_root) Item_char_typecast(a, len, real_cs);
2081
create_func_cast(Session *session, Item *a, Cast_target cast_type,
2037
void item_create_init()
2039
for (Native_func_registry* func= func_array; func->builder; func++)
2040
FunctionContainer::getMutableMap()[string(func->name.str, func->name.length)]= func->builder;
2043
Create_func* find_native_function_builder(LEX_STRING name)
2045
return find_ptr2(FunctionContainer::getMap(), string(name.str, name.length));
2048
Item* create_func_char_cast(Session *session, Item *a, int len, const charset_info_st * const cs)
2050
return new (session->mem_root) Item_char_typecast(a, len, cs ? cs : session->variables.getCollation());
2053
Item* create_func_cast(Session *session, Item *a, Cast_target cast_type,
2082
2054
const char *c_len, const char *c_dec,
2083
2055
const charset_info_st * const cs)