cleanup: remove FixedBinTypeBundle

now the main class is the Type_handler_fbt.

It contains everything and generates objects of all other classes as
needed.
This commit is contained in:
Sergei Golubchik 2023-06-26 14:33:35 +02:00
parent 238cfcc729
commit c09b1583f5
4 changed files with 1083 additions and 1077 deletions

View File

@ -158,7 +158,7 @@ String *Item_func_inet6_aton::val_str(String *buffer)
return buffer;
}
Inet6Bundle::Fbt_null ipv6(*tmp.string());
Type_handler_inet6::Fbt_null ipv6(*tmp.string());
if (!ipv6.is_null())
{
ipv6.to_binary(buffer);
@ -197,7 +197,7 @@ String *Item_func_inet6_ntoa::val_str_ascii(String *buffer)
return buffer;
}
Inet6Bundle::Fbt_null ipv6(static_cast<const Binary_string&>(*tmp.string()));
Type_handler_inet6::Fbt_null ipv6(static_cast<const Binary_string&>(*tmp.string()));
if (!ipv6.is_null())
{
ipv6.to_string(buffer);
@ -221,10 +221,10 @@ longlong Item_func_is_ipv4::val_int()
return !tmp.is_null() && !Inet4_null(*tmp.string()).is_null();
}
class IP6 : public Inet6Bundle::Fbt_null
class IP6 : public Type_handler_inet6::Fbt_null
{
public:
IP6(Item* arg) : Inet6Bundle::Fbt_null(arg) {}
IP6(Item* arg) : Type_handler_inet6::Fbt_null(arg) {}
bool is_v4compat() const
{
static_assert(sizeof(in6_addr) == IN6_ADDR_SIZE, "unexpected in6_addr size");
@ -246,7 +246,7 @@ longlong Item_func_is_ipv6::val_int()
{
DBUG_ASSERT(fixed());
String_ptr_and_buffer<STRING_BUFFER_USUAL_SIZE> tmp(args[0]);
return !tmp.is_null() && !Inet6Bundle::Fbt_null(*tmp.string()).is_null();
return !tmp.is_null() && !Type_handler_inet6::Fbt_null(*tmp.string()).is_null();
}
/**

View File

@ -24,7 +24,7 @@
static struct st_mariadb_data_type plugin_descriptor_type_inet6=
{
MariaDB_DATA_TYPE_INTERFACE_VERSION,
Inet6Bundle::type_handler_fbt()
Type_handler_inet6::singleton()
};

View File

@ -44,7 +44,7 @@ public:
#include "sql_type_fixedbin.h"
typedef FixedBinTypeBundle<Inet6> Inet6Bundle;
typedef Type_handler_fbt<Inet6> Type_handler_inet6;
/***********************************************************************/

File diff suppressed because it is too large Load Diff