From f3f682c074117fda84bf51a4ce9a378d950a04de Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 30 Aug 2013 06:06:26 +0200 Subject: Statement processing/optimization base work --- odb/relational/oracle/source.cxx | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'odb/relational/oracle') diff --git a/odb/relational/oracle/source.cxx b/odb/relational/oracle/source.cxx index 2fc2ad2..3a6b46a 100644 --- a/odb/relational/oracle/source.cxx +++ b/odb/relational/oracle/source.cxx @@ -595,30 +595,29 @@ namespace relational os << "st.stream_result ();"; } - virtual void + virtual string persist_statement_extra (type& c, relational::query_parameters& qp, persist_position p) { - if (p != persist_after_values) - return; + string r; - semantics::data_member* id (id_member (c)); + if (p == persist_after_values) + { + semantics::data_member* id (id_member (c)); - type* poly_root (polymorphic (c)); - bool poly_derived (poly_root != 0 && poly_root != &c); + type* poly_root (polymorphic (c)); + bool poly_derived (poly_root != 0 && poly_root != &c); - if (id != 0 && !poly_derived && id->count ("auto")) - { // Top-level auto id. // - os << endl - << strlit (" RETURNING " + - convert_from (column_qname (*id, column_prefix ()), - *id) + - " INTO " + - qp.next ()); + if (id != 0 && !poly_derived && id->count ("auto")) + r = "RETURNING " + + convert_from (column_qname (*id, column_prefix ()), *id) + + " INTO " + qp.next (); } + + return r; } }; entry class_entry_; -- cgit v1.1