From da13cf5463a3d047c8b52c5b95b00b203e56eb2d Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sun, 29 Apr 2012 21:12:26 +0200 Subject: Factor TR1/C++11 shared_ptr test into separate object The current approach causes problems with foreign key constraints during table dropping. --- common/wrapper/test.hxx | 59 ++++++++++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 25 deletions(-) (limited to 'common/wrapper/test.hxx') diff --git a/common/wrapper/test.hxx b/common/wrapper/test.hxx index 399073d..f308409 100644 --- a/common/wrapper/test.hxx +++ b/common/wrapper/test.hxx @@ -20,46 +20,55 @@ using odb::nullable; +// Test 1: simple values. // -// Simple values. -// - -typedef nullable nullable_string; +#pragma db namespace table("t1_") +namespace test1 +{ + typedef nullable nullable_string; #ifdef HAVE_CXX11 -typedef std::unique_ptr num_uptr; -typedef std::unique_ptr str_uptr; -typedef std::shared_ptr str_sptr; + typedef std::unique_ptr num_uptr; + typedef std::unique_ptr str_uptr; + typedef std::shared_ptr str_sptr; #else -typedef std::auto_ptr num_uptr; -typedef std::auto_ptr str_uptr; + typedef std::auto_ptr num_uptr; + typedef std::auto_ptr str_uptr; # ifdef HAVE_TR1_MEMORY -typedef std::tr1::shared_ptr str_sptr; + typedef std::tr1::shared_ptr str_sptr; # endif #endif -#pragma db object table("obj") -struct object -{ - #pragma db id auto - unsigned long id_; + #pragma db object table("obj1") + struct object1 + { + #pragma db id auto + unsigned long id_; + + num_uptr num; - num_uptr num; + #pragma db null + str_uptr str; - #pragma db null - str_uptr str; + nullable_string nstr; + std::vector nstrs; + }; - nullable_string nstr; - std::vector nstrs; + #pragma db object + struct object2 + { + #pragma db id auto + unsigned long id_; #if defined(HAVE_CXX11) || defined(HAVE_TR1_MEMORY) - #pragma db null - str_sptr sstr; + #pragma db null + str_sptr sstr; - #pragma db value_null - std::vector sstrs; + #pragma db value_null + std::vector sstrs; #endif -}; + }; +} // // Composite values. -- cgit v1.1