diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2013-06-08 15:07:11 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2013-06-08 15:07:11 +0200 |
commit | 70163be20183541e6fc26898d86b15b929d8b800 (patch) | |
tree | 681bbe1e1d88032d8ca84953b5d6e340c855a9b5 | |
parent | cf0f4f4de92faebaf3b6e4a5a7e5d7caf8cc3da8 (diff) |
Propagate custom column name to polymorphic id refs
-rw-r--r-- | odb/relational/processor.cxx | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/odb/relational/processor.cxx b/odb/relational/processor.cxx index 34c8e2d..5523b1e 100644 --- a/odb/relational/processor.cxx +++ b/odb/relational/processor.cxx @@ -208,6 +208,16 @@ namespace relational if (m.count ("polymorphic-ref")) { + // Copy the column name from the root's id member, if specified. + // + { + semantics::class_& r (*object_pointer (t)); + semantics::data_member& id (*id_member (r)); + + if (id.count ("column")) + m.set ("column", id.get<table_column> ("column")); + } + m.set ("not-null", true); m.set ("deferrable", sema_rel::deferrable (sema_rel::deferrable::not_deferrable)); |