aboutsummaryrefslogtreecommitdiff
path: root/common/composite-id/test.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'common/composite-id/test.hxx')
-rw-r--r--common/composite-id/test.hxx54
1 files changed, 53 insertions, 1 deletions
diff --git a/common/composite-id/test.hxx b/common/composite-id/test.hxx
index 512c980..9c2b2b3 100644
--- a/common/composite-id/test.hxx
+++ b/common/composite-id/test.hxx
@@ -414,8 +414,60 @@ namespace test7
inline bool
operator== (const object& x, const object& y)
{
- return x.id == y.id && x.ver == y.ver && x.num == y.num ;
+ return x.id == y.id && x.ver == y.ver && x.num == y.num;
}
}
+// Test composite NULL pointers.
+//
+#pragma db namespace table("t8_")
+namespace test8
+{
+ #pragma db object
+ struct object1
+ {
+ object1 () {}
+ object1 (scomp const& i, unsigned long n): id (i), num (n) {}
+
+ #pragma db id
+ scomp id;
+
+ unsigned long num;
+ };
+
+ inline bool
+ operator== (const object1& x, const object1& y)
+ {
+ return x.id == y.id && x.num == y.num;
+ }
+
+ #pragma db object
+ struct object2
+ {
+ object2 (): o1 (0) {}
+ ~object2 () {delete o1;}
+
+ #pragma db id auto
+ unsigned long id;
+
+ object1* o1;
+ };
+
+ #pragma db object
+ struct object3
+ {
+ ~object3 ()
+ {
+ for (std::vector<object1*>::iterator i (o1.begin ());
+ i != o1.end (); ++i)
+ delete *i;
+ }
+
+ #pragma db id auto
+ unsigned long id;
+
+ std::vector<object1*> o1;
+ };
+}
+
#endif // TEST_HXX