diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-11-02 09:35:02 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-11-02 09:35:02 +0200 |
commit | fb12544461cf4ea5fb331d726c96152c9389f995 (patch) | |
tree | 6c780a555d05db43a96c0da12b922603bedf3d3a | |
parent | 8bff3a2fc0ccce05abef7972beefadcd2534bdcd (diff) |
Optimize load_id(), load() sequence for SQLite and PostgreSQL
In these databases both of these functions load the data into the
object image. If there is no chance of image overwrite between
these calls, then we don't need to load the image the second time.
-rw-r--r-- | odb/sqlite/object-result.hxx | 2 | ||||
-rw-r--r-- | odb/sqlite/object-result.txx | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/odb/sqlite/object-result.hxx b/odb/sqlite/object-result.hxx index fb7865c..6953787 100644 --- a/odb/sqlite/object-result.hxx +++ b/odb/sqlite/object-result.hxx @@ -43,7 +43,7 @@ namespace odb object_statements<object_type>&); virtual void - load (object_type&); + load (object_type&, bool fetch); virtual id_type load_id (); diff --git a/odb/sqlite/object-result.txx b/odb/sqlite/object-result.txx index dc258cc..f400fe4 100644 --- a/odb/sqlite/object-result.txx +++ b/odb/sqlite/object-result.txx @@ -35,9 +35,10 @@ namespace odb template <typename T> void object_result_impl<T>:: - load (object_type& obj) + load (object_type& obj, bool fetch) { - load_image (); + if (fetch) + load_image (); // This is a top-level call so the statements cannot be locked. // |