diff options
author | Constantin Michael <constantin@codesynthesis.com> | 2011-10-17 09:04:27 +0200 |
---|---|---|
committer | Constantin Michael <constantin@codesynthesis.com> | 2011-10-21 11:47:14 +0200 |
commit | 33590ff77d991763d8dc6394a98c271bab19f56e (patch) | |
tree | 2abd34c14cc73e782377692eb64770cd3035f895 /odb/relational | |
parent | fdc9f349c4c9aa79d1a29b23f95fa439bff18498 (diff) |
Do not allocate a buffer for LOB images as connections now maintain one
Diffstat (limited to 'odb/relational')
-rw-r--r-- | odb/relational/oracle/header.cxx | 1 | ||||
-rw-r--r-- | odb/relational/oracle/source.cxx | 15 |
2 files changed, 6 insertions, 10 deletions
diff --git a/odb/relational/oracle/header.cxx b/odb/relational/oracle/header.cxx index 539498d..9e4bb1c 100644 --- a/odb/relational/oracle/header.cxx +++ b/odb/relational/oracle/header.cxx @@ -175,7 +175,6 @@ namespace relational "lob;" << "mutable oracle::lob_context " << mi.var << "context;" << "ub4 " << mi.var << "position_context;" - << "char " << mi.var << "buffer[4096];" << endl; } diff --git a/odb/relational/oracle/source.cxx b/odb/relational/oracle/source.cxx index e591234..25e3bc1 100644 --- a/odb/relational/oracle/source.cxx +++ b/odb/relational/oracle/source.cxx @@ -225,18 +225,15 @@ namespace relational { os << b << ".type = " << lob_buffer_types[mi.st->type - sql_type::BLOB] << ";" + << b << ".indicator = &" << arg << "." << mi.var << "indicator;" << b << ".callback = &" << arg << "." << mi.var << "callback;" - << b << ".indicator = &" << arg << "." << mi.var << "indicator;" - << b << ".size = " << "out" << endl - << "? reinterpret_cast<ub2*> (&" << arg << "." << mi.var << - "lob)" << endl - << ": reinterpret_cast<ub2*> (&" << arg << "." << mi.var << - "position_context);" << b << ".context = &" << arg << "." << mi.var << "context;" - << b << ".buffer = " << arg << "." << mi.var << "buffer;" - << b << ".capacity = static_cast<ub4> (sizeof (" << arg << "." << - mi.var << "buffer));" + << "if (out)" << endl + << b << ".buffer = &" << arg << "." << mi.var << "lob;" + << "else" << endl + << b << ".size = reinterpret_cast<ub2*> (&" << arg << "." << + mi.var << "position_context);" << endl; } |