diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-11-27 15:27:00 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-11-27 15:27:00 +0200 |
commit | 5d969f916178eb5e223d658dd55f5f2bc9ab526d (patch) | |
tree | 5f4e8235a0e36cced937b7e01b66cce9293529c5 /odb/relational/sqlite | |
parent | 4fd2c107242fe9f8e6ba7ded2a789f4de2ccd040 (diff) |
Fix bug in handling section members that require growth
Diffstat (limited to 'odb/relational/sqlite')
-rw-r--r-- | odb/relational/sqlite/common.cxx | 4 | ||||
-rw-r--r-- | odb/relational/sqlite/context.cxx | 9 |
2 files changed, 7 insertions, 6 deletions
diff --git a/odb/relational/sqlite/common.cxx b/odb/relational/sqlite/common.cxx index 4ab8968..f884e83 100644 --- a/odb/relational/sqlite/common.cxx +++ b/odb/relational/sqlite/common.cxx @@ -85,7 +85,7 @@ namespace relational image_type (semantics::data_member& m) { type_.clear (); - member_base::traverse (m); + member_base::traverse (m, true); return type_; } @@ -148,7 +148,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/sqlite/context.cxx b/odb/relational/sqlite/context.cxx index a959477..2088d96 100644 --- a/odb/relational/sqlite/context.cxx +++ b/odb/relational/sqlite/context.cxx @@ -178,9 +178,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)); } @@ -226,7 +227,7 @@ namespace relational { bool r (false); has_grow_member mt (r); - mt.traverse (m); + mt.traverse (m, true); return r; } @@ -238,7 +239,7 @@ namespace relational { bool r (false); has_grow_member mt (r, 0, &t, ct, kp); - mt.traverse (m); + mt.traverse (m, true); return r; } |