From 5d969f916178eb5e223d658dd55f5f2bc9ab526d Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sun, 27 Nov 2016 15:27:00 +0200 Subject: Fix bug in handling section members that require growth --- odb/relational/pgsql/common.cxx | 4 ++-- odb/relational/pgsql/context.cxx | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'odb/relational/pgsql') diff --git a/odb/relational/pgsql/common.cxx b/odb/relational/pgsql/common.cxx index 43adb6a..0a06019 100644 --- a/odb/relational/pgsql/common.cxx +++ b/odb/relational/pgsql/common.cxx @@ -147,7 +147,7 @@ namespace relational image_type (semantics::data_member& m) { type_.clear (); - member_base::traverse (m); + member_base::traverse (m, true); return type_; } @@ -266,7 +266,7 @@ namespace relational database_type_id (type& m) { type_id_.clear (); - member_base::traverse (m); + member_base::traverse (m, true); return type_id_; } diff --git a/odb/relational/pgsql/context.cxx b/odb/relational/pgsql/context.cxx index cd73cf9..dc04285 100644 --- a/odb/relational/pgsql/context.cxx +++ b/odb/relational/pgsql/context.cxx @@ -171,9 +171,10 @@ namespace relational pre (member_info& mi) { // If we have a key prefix (container), then it can't be in a - // section (while mi.m can). + // section (while mi.m can). The same for top-level -- if we got + // called, then we shouldn't ignore it. // - return !key_prefix_.empty () || + return !key_prefix_.empty () || top_level_ || (section_ == 0 && !separate_load (mi.m)) || (section_ != 0 && *section_ == section (mi.m)); } @@ -231,7 +232,7 @@ namespace relational { bool r (false); has_grow_member mt (r); - mt.traverse (m); + mt.traverse (m, true); return r; } @@ -243,7 +244,7 @@ namespace relational { bool r (false); has_grow_member mt (r, 0, &t, ct, kp); - mt.traverse (m); + mt.traverse (m, true); return r; } -- cgit v1.1