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 | 4cca29a2d9085a495a198b252a4c0d18b3ff9c76 (patch) | |
tree | 579461dec3c8a787e46e8727a18d5814927670f9 | |
parent | b820128512133c443799b27265e28a27622497e6 (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/pgsql/object-result.hxx | 2 | ||||
-rw-r--r-- | odb/pgsql/object-result.txx | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/odb/pgsql/object-result.hxx b/odb/pgsql/object-result.hxx index 0fb68c1..53a4dbe 100644 --- a/odb/pgsql/object-result.hxx +++ b/odb/pgsql/object-result.hxx @@ -42,7 +42,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/pgsql/object-result.txx b/odb/pgsql/object-result.txx index 57a70d7..6459906 100644 --- a/odb/pgsql/object-result.txx +++ b/odb/pgsql/object-result.txx @@ -34,9 +34,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. // |