summaryrefslogtreecommitdiff
path: root/odb/relational/pgsql/source.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/relational/pgsql/source.cxx')
-rw-r--r--odb/relational/pgsql/source.cxx49
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_;