aboutsummaryrefslogtreecommitdiff
path: root/common/erase-query/driver.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-08-25 11:02:20 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-08-25 11:02:20 +0200
commit18dc4c5a4cb46f01ebdd49fbb6baa3c48d8f3b3d (patch)
tree600125a04797d7261e748507c4c3d8eea5eadbf2 /common/erase-query/driver.cxx
parentff3950866c0f756a5b6f379b9f95f01fff4a9ec7 (diff)
Add experimental code (commented out) for DELETE JOIN support
This would be needed to support object relationships in the erase_query() functionality.
Diffstat (limited to 'common/erase-query/driver.cxx')
-rw-r--r--common/erase-query/driver.cxx35
1 files changed, 34 insertions, 1 deletions
diff --git a/common/erase-query/driver.cxx b/common/erase-query/driver.cxx
index 67d4e8d..2137377 100644
--- a/common/erase-query/driver.cxx
+++ b/common/erase-query/driver.cxx
@@ -63,7 +63,8 @@ main (int argc, char* argv[])
{
transaction t (db->begin ());
- assert (db->erase_query<object> ("id < 3") == 2);
+ assert (db->erase_query<object> (
+ "common_erase_query_object.id < 3") == 2);
db->erase_query<object> ();
t.commit ();
}
@@ -79,6 +80,38 @@ main (int argc, char* argv[])
t.commit ();
}
+ // Test predicates involving object pointers (DELETE JOIN).
+ //
+ /*
+ {
+ object o11 (1);
+ object o12 (2);
+ object o13 (3);
+ object2 o2;
+
+ o11.o2 = &o2;
+ o2.num = 123;
+
+ o12.o1 = &o13;
+ o13.num = 123;
+
+ transaction t (db->begin ());
+ db->persist (o2);
+ db->persist (o13);
+ db->persist (o12);
+ db->persist (o11);
+ t.commit ();
+ }
+
+ {
+ transaction t (db->begin ());
+ assert (db->erase_query<object> (query::o1::num == 123) == 1);
+ assert (db->erase_query<object> (query::o2::num == 123) == 1);
+ db->erase_query<object> ();
+ t.commit ();
+ }
+ */
+
// Make sure container data is deleted.
//
{