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/source.cxx | |
parent | 64d0ceffaaf5f57a3d24a5210bf0ad2a8474a618 (diff) |
Add wrapper support for containers
Diffstat (limited to 'odb/relational/pgsql/source.cxx')
-rw-r--r-- | odb/relational/pgsql/source.cxx | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/odb/relational/pgsql/source.cxx b/odb/relational/pgsql/source.cxx index 1bba68a..331463d 100644 --- a/odb/relational/pgsql/source.cxx +++ b/odb/relational/pgsql/source.cxx @@ -1003,7 +1003,7 @@ namespace relational container_traits (base const& x): base (x) {} virtual void - container_extra (semantics::data_member& m) + container_extra (semantics::data_member& m, semantics::type& t) { if (!c_.count ("object") || abstract (c_)) return; @@ -1039,8 +1039,7 @@ namespace relational semantics::data_member* inv_m (inverse (m, "value")); bool inv (inv_m != 0); - semantics::type& mt (m.type ()); - semantics::type& vt (container_vt (mt)); + semantics::type& vt (container_vt (t)); string id_oid (oids[column_sql_type (m, "id").type]); @@ -1055,7 +1054,7 @@ namespace relational { // many(i)-to-many // - if (context::container (inv_m->type ())) + if (container_wrapper (inv_m->type ())) os << oids[column_sql_type (*inv_m, "value").type]; // many(i)-to-one @@ -1080,7 +1079,7 @@ namespace relational { os << id_oid << ","; - switch (container_kind (mt)) + switch (container_kind (t)) { case ck_ordered: { @@ -1093,7 +1092,7 @@ namespace relational case ck_multimap: { if (semantics::class_* ktc = - comp_value_wrapper (container_kt (mt))) + comp_value_wrapper (container_kt (t))) { instance<statement_oids> st; st->traverse_composite (m, *ktc, "key", "key"); |