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 | d3ec68714365046a30379a410cdff52e5f5ae066 (patch) | |
tree | 36b971dd06626cc39b51eb0ec6e7f4f3ca40fcba /odb/mssql/simple-object-statements.hxx | |
parent | 88f3f0282bad25c962783defa1e34dcbec60a07c (diff) |
Schema versioning support
Diffstat (limited to 'odb/mssql/simple-object-statements.hxx')
-rw-r--r-- | odb/mssql/simple-object-statements.hxx | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/odb/mssql/simple-object-statements.hxx b/odb/mssql/simple-object-statements.hxx index 9cbd69c..ab43439 100644 --- a/odb/mssql/simple-object-statements.hxx +++ b/odb/mssql/simple-object-statements.hxx @@ -243,8 +243,10 @@ namespace odb // Delayed loading. // - typedef void (*loader_function) ( - odb::database&, const id_type&, object_type&); + typedef void (*loader_function) (odb::database&, + const id_type&, + object_type&, + const schema_version_migration*); void delay_load (const id_type& id, @@ -256,12 +258,12 @@ namespace odb } void - load_delayed () + load_delayed (const schema_version_migration* svm) { assert (locked ()); if (!delayed_.empty ()) - load_delayed_ (); + load_delayed_<object_statements> (svm); } void @@ -349,6 +351,7 @@ namespace odb new (details::shared) insert_statement_type ( conn_, object_traits::persist_statement, + object_traits::versioned, // Process if versioned. insert_image_binding_, object_traits::auto_id, object_traits::rowversion, @@ -365,6 +368,8 @@ namespace odb new (details::shared) select_statement_type ( conn_, object_traits::find_statement, + object_traits::versioned, // Process if versioned. + false, // Don't optimize. id_image_binding_, select_image_binding_, false)); @@ -380,6 +385,7 @@ namespace odb new (details::shared) update_statement_type ( conn_, object_traits::update_statement, + object_traits::versioned, // Process if versioned. update_image_binding_, object_traits::rowversion, false)); @@ -458,14 +464,15 @@ namespace odb object_statements (const object_statements&); object_statements& operator= (const object_statements&); - private: + protected: + template <typename STS> void - load_delayed_ (); + load_delayed_ (const schema_version_migration*); void clear_delayed_ (); - private: + protected: template <typename T1> friend class polymorphic_derived_object_statements; |