diff --git a/TODO.txt b/TODO.txt index c2457c15..097c7db6 100644 --- a/TODO.txt +++ b/TODO.txt @@ -32,3 +32,4 @@ Technical debt Force the same number of values in each row as in fields() CMake exporting? Integration test for network errors (e.g. host unreachable) + Refactor file structucture for serialization and tests diff --git a/include/mysql/impl/binary_serialization.ipp b/include/mysql/impl/binary_serialization.ipp index 67a82965..d78a86f3 100644 --- a/include/mysql/impl/binary_serialization.ipp +++ b/include/mysql/impl/binary_serialization.ipp @@ -22,7 +22,6 @@ template <> struct get_serializable_type { using type = int8_signe template <> struct get_serializable_type { using type = value_holder; }; template <> struct get_serializable_type { using type = value_holder; }; template <> struct get_serializable_type { using type = string_lenenc; }; -template <> struct get_serializable_type { using type = int2; }; template <> struct get_serializable_type { using type = dummy_serializable; }; template @@ -31,11 +30,6 @@ inline get_serializable_type_t to_serializable_type(T input) noexcept return get_serializable_type_t(input); } -template <> -inline get_serializable_type_t to_serializable_type(year input) noexcept -{ - return get_serializable_type_t(static_cast(input)); -} inline Error deserialize_binary_date(date& output, std::uint8_t length, DeserializationContext& ctx) noexcept { diff --git a/include/mysql/impl/messages.ipp b/include/mysql/impl/messages.ipp index 04405be6..16aa6961 100644 --- a/include/mysql/impl/messages.ipp +++ b/include/mysql/impl/messages.ipp @@ -29,7 +29,6 @@ inline protocol_field_type get_protocol_field_type( constexpr auto operator()(date) const noexcept { return protocol_field_type::date; } constexpr auto operator()(datetime) const noexcept { return protocol_field_type::datetime; } constexpr auto operator()(time) const noexcept { return protocol_field_type::time; } - constexpr auto operator()(year) const noexcept { return protocol_field_type::short_; } constexpr auto operator()(std::nullptr_t) const noexcept { return protocol_field_type::null; } }; return std::visit(visitor(), input); @@ -45,8 +44,7 @@ inline bool is_unsigned( return std::visit([](auto v) { using type = decltype(v); return std::is_same_v || - std::is_same_v || - std::is_same_v; + std::is_same_v; }, input); } diff --git a/include/mysql/impl/text_deserialization.hpp b/include/mysql/impl/text_deserialization.hpp index a6e33089..aafb5255 100644 --- a/include/mysql/impl/text_deserialization.hpp +++ b/include/mysql/impl/text_deserialization.hpp @@ -5,7 +5,6 @@ #include "mysql/error.hpp" #include "mysql/value.hpp" #include "mysql/metadata.hpp" -#include "mysql/value.hpp" #include namespace mysql diff --git a/include/mysql/impl/text_deserialization.ipp b/include/mysql/impl/text_deserialization.ipp index 5b58dfe1..b5f0bfd1 100644 --- a/include/mysql/impl/text_deserialization.ipp +++ b/include/mysql/impl/text_deserialization.ipp @@ -113,15 +113,6 @@ inline Error deserialize_text_value_impl(std::string_view from, std::string_view return Error::ok; } -inline Error deserialize_text_value_impl(std::string_view from, year& to) -{ - int value; - auto err = deserialize_text_value_impl(from, value); - if (err != Error::ok) return err; - to = year(value); - return to.ok() ? Error::ok : Error::protocol_value_error; -} - template Error deserialize_text_value_to_variant(std::string_view from, value& to, Args&&... args) { @@ -166,6 +157,7 @@ inline mysql::Error mysql::detail::deserialize_text_value( case protocol_field_type::short_: case protocol_field_type::int24: case protocol_field_type::long_: + case protocol_field_type::year: return meta.is_unsigned() ? deserialize_text_value_to_variant(from, output) : deserialize_text_value_to_variant(from, output); @@ -184,8 +176,6 @@ inline mysql::Error mysql::detail::deserialize_text_value( return deserialize_text_value_to_variant(from, output); case protocol_field_type::time: return deserialize_text_value_to_variant