diff --git a/ormpp/mysql.hpp b/ormpp/mysql.hpp index afd9aac..a501577 100644 --- a/ormpp/mysql.hpp +++ b/ormpp/mysql.hpp @@ -270,7 +270,7 @@ class mysql { } else if constexpr (iguana::array_v) { auto &vec = mp[i]; - memcpy(value, vec.data(), vec.size()); + memcpy(value.data(), vec.data(), value.size()); } else if constexpr (std::is_same_v) { auto &vec = mp[i]; diff --git a/ormpp/postgresql.hpp b/ormpp/postgresql.hpp index 49574f5..0853e14 100644 --- a/ormpp/postgresql.hpp +++ b/ormpp/postgresql.hpp @@ -708,7 +708,7 @@ class postgresql { sprintf(temp.data(), "%f", value); param_values.push_back(std::move(temp)); } - else if constexpr (iguana::array_v || std::is_same_v) { + else if constexpr (std::is_same_v) { std::vector temp = {}; std::copy(value.data(), value.data() + value.size() + 1, std::back_inserter(temp)); @@ -719,6 +719,10 @@ class postgresql { std::copy(value, value + sizeof(U), std::back_inserter(temp)); param_values.push_back(std::move(temp)); } + else if constexpr (iguana::array_v) { + auto p = PQgetvalue(res_, row, i); + memcpy(value.data(), p, value.size()); + } else { static_assert(!sizeof(U), "this type has not supported yet"); }