diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-08-28 11:39:17 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-08-28 14:15:45 +0200 |
commit | 475a7c89e1c858ae8fec466670af4628129a42d4 (patch) | |
tree | 371d7084250767ae927e685fb7a5da630626280f /odb/relational/pgsql/common.cxx | |
parent | 64d0ceffaaf5f57a3d24a5210bf0ad2a8474a618 (diff) |
Add wrapper support for containers
Diffstat (limited to 'odb/relational/pgsql/common.cxx')
-rw-r--r-- | odb/relational/pgsql/common.cxx | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/odb/relational/pgsql/common.cxx b/odb/relational/pgsql/common.cxx index d6ef9c3..e4d97cc 100644 --- a/odb/relational/pgsql/common.cxx +++ b/odb/relational/pgsql/common.cxx @@ -35,22 +35,23 @@ namespace relational semantics::type& t (type_override_ != 0 ? *type_override_ : m.type ()); - if (semantics::class_* comp = comp_value_wrapper (t)) + if (semantics::class_* c = comp_value_wrapper (t)) { // If t is a wrapper, pass the wrapped type. Also pass the // original, wrapper type. // - member_info mi ( - m, *comp, (wrapper (t) ? &t : 0), var, fq_type_override_); + member_info mi (m, *c, (wrapper (t) ? &t : 0), var, fq_type_override_); if (pre (mi)) { traverse_composite (mi); post (mi); } } - else if (container (t)) + else if (semantics::type* c = container_wrapper (t)) { - member_info mi (m, t, 0, var, fq_type_override_); + // The same unwrapping logic as for composite values. + // + member_info mi (m, *c, (wrapper (t) ? &t : 0), var, fq_type_override_); if (pre (mi)) { traverse_container (mi); |