summaryrefslogtreecommitdiff
path: root/odb/common.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-02-04 17:23:54 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-02-04 17:23:54 +0200
commit8e69f40ab32dc8604b68f360ae30fa961ba036ee (patch)
tree5448cea6c20f7e6c5cd80ae752b49e1a696bcd6e /odb/common.cxx
parent36920a538c7b207c0b36b2270108a717479e0ed1 (diff)
Implement object loading views
See section 10.2 in the manual for details.
Diffstat (limited to 'odb/common.cxx')
-rw-r--r--odb/common.cxx6
1 files changed, 4 insertions, 2 deletions
diff --git a/odb/common.cxx b/odb/common.cxx
index b75d323..ed586c9 100644
--- a/odb/common.cxx
+++ b/odb/common.cxx
@@ -18,7 +18,8 @@ traverse_simple (semantics::data_member&)
void object_members_base::
traverse_pointer (semantics::data_member& m, semantics::class_& c)
{
- traverse_member (m, utype (*id_member (c)));
+ if (!view_member (m)) // Not really "as if" pointed-to id member.
+ traverse_member (m, utype (*id_member (c)));
}
void object_members_base::
@@ -244,7 +245,8 @@ traverse_column (semantics::data_member&, string const&, bool)
void object_columns_base::
traverse_pointer (semantics::data_member& m, semantics::class_& c)
{
- traverse_member (m, utype (*id_member (c)));
+ if (!view_member (m)) // Not really "as if" pointed-to id column.
+ traverse_member (m, utype (*id_member (c)));
}
void object_columns_base::