diff options
Diffstat (limited to 'odb/relational/pgsql/source.cxx')
-rw-r--r-- | odb/relational/pgsql/source.cxx | 49 |
1 files changed, 30 insertions, 19 deletions
diff --git a/odb/relational/pgsql/source.cxx b/odb/relational/pgsql/source.cxx index 23600d0..332e25b 100644 --- a/odb/relational/pgsql/source.cxx +++ b/odb/relational/pgsql/source.cxx @@ -295,7 +295,7 @@ namespace relational traverse_composite (member_info& mi) { os << "if (composite_value_traits< " << mi.fq_type () << - " >::grow (" << endl + ", id_pgsql >::grow (" << endl << "i." << mi.var << "value, t + " << index_ << "UL))" << "{" << "grew = true;" @@ -642,7 +642,7 @@ namespace relational string const& n (class_fq_name (c)); string const& fn (flat_name (n)); - string traits ("access::object_traits< " + n + " >"); + string traits ("access::object_traits_impl< " + n + ", id_pgsql >"); os << "const char " << traits << "::" << endl << "persist_statement_name[] = " << strlit (fn + "_persist") << ";" @@ -792,7 +792,7 @@ namespace relational { string const& n (class_fq_name (c)); string const& fn (flat_name (n)); - string traits ("access::view_traits< " + n + " >"); + string traits ("access::view_traits_impl< " + n + ", id_pgsql >"); os << "const char " << traits << "::" << endl << "query_statement_name[] = " << strlit (fn + "_query") << ";" @@ -800,14 +800,19 @@ namespace relational } virtual void - object_query_statement_ctor_args (type&) + object_query_statement_ctor_args (type&, string const& q, bool prep) { - os << "sts.connection ()," << endl - << "query_statement_name," << endl - << "query_statement + q.clause ()," << endl - << "q.parameter_types ()," << endl - << "q.parameter_count ()," << endl - << "q.parameters_binding ()," << endl + os << "sts.connection ()," << endl; + + if (prep) + os << "n," << endl; + else + os << "query_statement_name," << endl; + + os << "query_statement + " << q << ".clause ()," << endl + << q << ".parameter_types ()," << endl + << q << ".parameter_count ()," << endl + << q << ".parameters_binding ()," << endl << "imb"; } @@ -823,21 +828,27 @@ namespace relational } virtual void - view_query_statement_ctor_args (type&) + view_query_statement_ctor_args (type&, string const& q, bool prep) { - os << "sts.connection ()," << endl - << "query_statement_name," << endl - << "qs.clause ()," << endl - << "qs.parameter_types ()," << endl - << "qs.parameter_count ()," << endl - << "qs.parameters_binding ()," << endl + os << "sts.connection ()," << endl; + + if (prep) + os << "n," << endl; + else + os << "query_statement_name," << endl; + + os << q << ".clause ()," << endl + << q << ".parameter_types ()," << endl + << q << ".parameter_count ()," << endl + << q << ".parameters_binding ()," << endl << "imb"; } virtual void - post_query_ (type&) + post_query_ (type&, bool once_off) { - os << "st->deallocate ();"; + if (once_off) + os << "st->deallocate ();"; } }; entry<class_> class_entry_; |