diff options
-rw-r--r-- | odb/object-result.hxx | 8 | ||||
-rw-r--r-- | odb/object-result.txx | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/odb/object-result.hxx b/odb/object-result.hxx index e4d28ee..8b0b502 100644 --- a/odb/object-result.hxx +++ b/odb/object-result.hxx @@ -111,8 +111,14 @@ namespace odb } protected: + // The fetch argument is a hint to the implementation. If it is + // false then it means load_id() was already called (and presumably + // fetched the data into the object image) and the object image + // is still valid (so the implementation doesn't need to fetch + // the data again). + // virtual void - load (object_type&) = 0; + load (object_type&, bool fetch = true) = 0; virtual id_type load_id () = 0; diff --git a/odb/object-result.txx b/odb/object-result.txx index 843ec59..c84abe8 100644 --- a/odb/object-result.txx +++ b/odb/object-result.txx @@ -52,7 +52,7 @@ namespace odb object_type& obj (pointer_traits::get_ref (p)); current (p); - load (obj); + load (obj, false); ig.release (); } } @@ -106,7 +106,7 @@ namespace odb typename reference_cache_traits<object_type>::insert_guard ig ( reference_cache_traits<object_type>::insert ( res_->database (), res_->load_id (), obj)); - res_->load (obj); + res_->load (obj, false); ig.release (); } } |