From 2c3dcfeee4fd2adb5a7dbd9af1c8ee02d4664d39 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 5 Sep 2013 13:02:10 +0200 Subject: Versioned section support --- evolution/soft-delete/model.hxx | 91 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) (limited to 'evolution/soft-delete/model.hxx') diff --git a/evolution/soft-delete/model.hxx b/evolution/soft-delete/model.hxx index 6abdd39..5defcac 100644 --- a/evolution/soft-delete/model.hxx +++ b/evolution/soft-delete/model.hxx @@ -10,6 +10,7 @@ #include #include +#include #include // DATABASE_XXX @@ -178,6 +179,68 @@ namespace MODEL_NAMESPACE(MODEL_VERSION) #endif } + // Test soft-deleted section member. + // + #pragma db namespace table("t7_") + namespace test7 + { + #pragma db object + struct object + { + object (unsigned long id = 0): id_ (id) {} + + #pragma db id + unsigned long id_; + + #pragma db load(lazy) update(change) + odb::section s; + + #pragma db section(s) + std::string str; + + unsigned long num; + + #pragma db section(s) + odb::vector vec; + }; + +#if MODEL_VERSION == 3 + #pragma db member(object::s) deleted(3) +#endif + } + + // Test soft-deleted members of a section. + // + #pragma db namespace table("t8_") + namespace test8 + { + #pragma db object + struct object + { + object (unsigned long id = 0): id_ (id) {} + + #pragma db id + unsigned long id_; + + #pragma db load(lazy) update(change) + odb::section s; + + #pragma db section(s) + std::string str; + + #pragma db section(s) + unsigned long num; + + #pragma db section(s) + odb::vector vec; + }; + +#if MODEL_VERSION == 3 + #pragma db member(object::str) deleted(3) + #pragma db member(object::vec) deleted(3) +#endif + } + #endif // DATABASE_SQLITE // Test soft-deleted container member in a non-versioned object. @@ -201,6 +264,34 @@ namespace MODEL_NAMESPACE(MODEL_VERSION) #pragma db member(object::vec) deleted(3) #endif } + + // Test soft-deleted container member in a non-versioned section. + // + #pragma db namespace table("t22_") + namespace test22 + { + #pragma db object + struct object + { + object (unsigned long id = 0): id_ (id) {} + + #pragma db id + unsigned long id_; + + #pragma db load(lazy) update(change) + odb::section s; + + #pragma db section(s) + unsigned long num; + + #pragma db section(s) + odb::vector vec; + }; + +#if MODEL_VERSION == 3 + #pragma db member(object::vec) deleted(3) +#endif + } } #undef MODEL_NAMESPACE -- cgit v1.1