summaryrefslogtreecommitdiff
path: root/odb/relational/oracle/source.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2015-07-15 18:43:03 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2015-07-15 18:44:22 +0200
commit8f6a9c51bc64226d7c296e4b0172f9e56a7eea3b (patch)
tree3274ba7b223cd330e7d6bd29844ad5cabfadc82a /odb/relational/oracle/source.cxx
parent4d134880196e85e06d5ff4e83a26a3b15027706a (diff)
Implement SQLite incremental BLOB/TEXT I/O
Diffstat (limited to 'odb/relational/oracle/source.cxx')
-rw-r--r--odb/relational/oracle/source.cxx16
1 files changed, 11 insertions, 5 deletions
diff --git a/odb/relational/oracle/source.cxx b/odb/relational/oracle/source.cxx
index 802bc99..b69b291 100644
--- a/odb/relational/oracle/source.cxx
+++ b/odb/relational/oracle/source.cxx
@@ -22,7 +22,7 @@ namespace relational
query_parameters (base const& x): base (x), i_ (0) {}
virtual string
- next ()
+ next (semantics::data_member&, const string&, const string&)
{
ostringstream ss;
ss << ":" << ++i_;
@@ -31,7 +31,7 @@ namespace relational
}
virtual string
- auto_id ()
+ auto_id (semantics::data_member&, const string&, const string&)
{
return quote_id (sequence_name (table_)) + ".nextval";
}
@@ -612,9 +612,15 @@ namespace relational
// Top-level auto id.
//
if (id != 0 && !poly_derived && auto_ (*id))
- r = "RETURNING " +
- convert_from (column_qname (*id), *id->back ()) +
- " INTO " + qp.next ();
+ {
+ semantics::data_member& idb (*id->back ());
+
+ const string& name (column_qname (*id));
+ const string& type (column_type (idb));
+
+ r = "RETURNING " + convert_from (name, type, idb) +
+ " INTO " + qp.next (idb, name, type);
+ }
}
return r;