aboutsummaryrefslogtreecommitdiff
path: root/odb/relational/mysql/context.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2016-11-27 15:27:00 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-27 15:27:00 +0200
commit5d969f916178eb5e223d658dd55f5f2bc9ab526d (patch)
tree5f4e8235a0e36cced937b7e01b66cce9293529c5 /odb/relational/mysql/context.cxx
parent4fd2c107242fe9f8e6ba7ded2a789f4de2ccd040 (diff)
Fix bug in handling section members that require growth
Diffstat (limited to 'odb/relational/mysql/context.cxx')
-rw-r--r--odb/relational/mysql/context.cxx9
1 files changed, 5 insertions, 4 deletions
diff --git a/odb/relational/mysql/context.cxx b/odb/relational/mysql/context.cxx
index 4a5187a..c2f0df1 100644
--- a/odb/relational/mysql/context.cxx
+++ b/odb/relational/mysql/context.cxx
@@ -215,9 +215,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));
}
@@ -287,7 +288,7 @@ namespace relational
{
bool r (false);
has_grow_member mt (r);
- mt.traverse (m);
+ mt.traverse (m, true);
return r;
}
@@ -299,7 +300,7 @@ namespace relational
{
bool r (false);
has_grow_member mt (r, 0, &t, ct, kp);
- mt.traverse (m);
+ mt.traverse (m, true);
return r;
}