aboutsummaryrefslogtreecommitdiff
path: root/odb/relational/mysql
diff options
context:
space:
mode:
Diffstat (limited to 'odb/relational/mysql')
-rw-r--r--odb/relational/mysql/common.cxx4
-rw-r--r--odb/relational/mysql/context.cxx9
2 files changed, 7 insertions, 6 deletions
diff --git a/odb/relational/mysql/common.cxx b/odb/relational/mysql/common.cxx
index a8f4668..af53a50 100644
--- a/odb/relational/mysql/common.cxx
+++ b/odb/relational/mysql/common.cxx
@@ -169,7 +169,7 @@ namespace relational
image_type (semantics::data_member& m)
{
type_.clear ();
- member_base::traverse (m);
+ member_base::traverse (m, true);
return type_;
}
@@ -314,7 +314,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/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;
}