diff --git a/src/PqxxExtension.hpp b/src/PqxxExtension.hpp index 530e2a1c68e9fdd9f0ff6a7a095358db42164753..bf2caebf4a7b5dae6503a15bb7b2eedefcb83a6d 100644 --- a/src/PqxxExtension.hpp +++ b/src/PqxxExtension.hpp @@ -208,11 +208,17 @@ public: // In case of image, unwrap the vector. assert(value.dim_x != 0); + assert(value.dim_x * value.dim_y <= value.size()); std::stringstream result; result << "{"; - for(std::size_t i = 0; i != value.size() % value.dim_x; ++i) + for(std::size_t i = 0; i != value.dim_y; ++i) { + if (i > 0) + { + result << ","; + } + result << "{" << separated_list(",", std::next(value.begin(), i * value.dim_x), std::next(value.begin(), (i+1) * value.dim_x)) << "}"; } result << "}";