summaryrefslogtreecommitdiff
path: root/odb/common.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/common.hxx')
-rw-r--r--odb/common.hxx18
1 files changed, 13 insertions, 5 deletions
diff --git a/odb/common.hxx b/odb/common.hxx
index 104351a..ef85a4b 100644
--- a/odb/common.hxx
+++ b/odb/common.hxx
@@ -278,10 +278,7 @@ public:
// value type, or an object pointer (with a simple or composite id).
//
virtual void
- traverse (semantics::data_member& m)
- {
- traverse (m, utype (m), string (), string ());
- }
+ traverse (semantics::data_member&);
virtual void
traverse (semantics::data_member& m, column_prefix const& cp)
@@ -293,6 +290,17 @@ public:
}
virtual void
+ traverse (data_member_path& mp)
+ {
+ data_member_path op (member_path_);
+ member_path_ = mp;
+ traverse (*mp.back (), column_prefix (mp));
+ member_path_ = op;
+ }
+
+ // Should only be used for containers.
+ //
+ virtual void
traverse (semantics::data_member&,
semantics::type&,
string const& key_prefix,
@@ -333,7 +341,7 @@ protected:
}
else
return context::column_type (
- member_path_, key_prefix_, (root_ != 0 && (root_id_ || root_op_)));
+ member_path_, key_prefix_, root_ != 0 && (root_id_ || root_op_));
}
bool