diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2013-09-10 14:10:45 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2013-09-10 14:10:45 +0200 |
commit | 0ed9ceef3abbd9f4ff786f6a02fe8767780e8c2c (patch) | |
tree | 0bca6f9e302dd92eb4dc9136ab0b826f8fa61aff /odb/mysql/simple-object-result.txx | |
parent | 075f64ca84e4e1be22bad30e4974e9b675d12ec8 (diff) |
Schema versioning support
Diffstat (limited to 'odb/mysql/simple-object-result.txx')
-rw-r--r-- | odb/mysql/simple-object-result.txx | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/odb/mysql/simple-object-result.txx b/odb/mysql/simple-object-result.txx index f1b9bfa..f444688 100644 --- a/odb/mysql/simple-object-result.txx +++ b/odb/mysql/simple-object-result.txx @@ -38,10 +38,12 @@ namespace odb object_result_impl<T>:: object_result_impl (const query_base&, details::shared_ptr<select_statement> statement, - statements_type& statements) + statements_type& statements, + const schema_version_migration* svm) : base_type (statements.connection ()), statement_ (statement), statements_ (statements), + tc_ (svm), count_ (0) { } @@ -68,7 +70,7 @@ namespace odb object_traits::callback (this->db_, obj, callback_event::pre_load); typename object_traits::image_type& i (statements_.image ()); - object_traits::init (obj, i, &this->db_); + tc_.init (obj, i, &this->db_); // Initialize the id image and binding and load the rest of the object // (containers, etc). @@ -84,8 +86,8 @@ namespace odb idb.version++; } - object_traits::load_ (statements_, obj); - statements_.load_delayed (); + tc_.load_ (statements_, obj, false); + statements_.load_delayed (tc_.version ()); l.unlock (); object_traits::callback (this->db_, obj, callback_event::post_load); } @@ -147,7 +149,7 @@ namespace odb if (im.version != statements_.select_image_version ()) { binding& b (statements_.select_image_binding ()); - object_traits::bind (b.bind, im, statement_select); + tc_.bind (b.bind, im, statement_select); statements_.select_image_version (im.version); b.version++; } @@ -168,14 +170,13 @@ namespace odb typename object_traits::image_type& im (statements_.image ()); - if (object_traits::grow ( - im, statements_.select_image_truncated ())) + if (tc_.grow (im, statements_.select_image_truncated ())) im.version++; if (im.version != statements_.select_image_version ()) { binding& b (statements_.select_image_binding ()); - object_traits::bind (b.bind, im, statement_select); + tc_.bind (b.bind, im, statement_select); statements_.select_image_version (im.version); b.version++; statement_->refetch (); |