27 #include <drizzled/error.h>
28 #include <drizzled/charset.h>
29 #include <drizzled/function/str/strfunc.h>
30 #include <drizzled/item/func.h>
31 #include <drizzled/plugin/function.h>
33 #include <drizzled/type/ipv6.h>
42 void fix_length_and_dec()
44 max_length= (drizzled::type::IPv6::IPV6_BUFFER_LENGTH) * drizzled::system_charset_info->mbmaxlen;
46 const char *func_name()
const{
return "ipv6"; }
57 if (not ptr_address.inet_pton(result->c_str()))
59 drizzled::my_error(drizzled::ER_INVALID_IPV6_VALUE, MYF(ME_FATALERROR));
66 str->realloc(drizzled::type::IPv6::IPV6_BUFFER_LENGTH);
67 str->length(drizzled::type::IPv6::IPV6_BUFFER_LENGTH);
68 str->set_charset(drizzled::system_charset_info);
69 ipv6_string= (
char *) str->ptr();
71 if (not ptr_address.inet_ntop(ipv6_string))
73 drizzled::my_error(drizzled::ER_INVALID_IPV6_VALUE, MYF(ME_FATALERROR));
78 str->length(max_length);
93 DRIZZLE_DECLARE_PLUGIN
100 drizzled::PLUGIN_LICENSE_GPL,
105 DRIZZLE_DECLARE_PLUGIN_END;