From cd852a8be3a75b0be5bba9a7b6b454849231cd27 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 25 Nov 2010 11:19:03 +0200 Subject: Add support for object pointers in query --- common/inverse/driver.cxx | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'common/inverse') diff --git a/common/inverse/driver.cxx b/common/inverse/driver.cxx index e572be2..139c2b6 100644 --- a/common/inverse/driver.cxx +++ b/common/inverse/driver.cxx @@ -161,6 +161,47 @@ main (int argc, char* argv[]) delete *x4_2->o1.begin (); } + // query + // + { + // one(i)-to-one + // + typedef odb::query query; + typedef odb::result result; + + session s; + transaction t (db->begin ()); + + result r (db->query (query::o1::id == "obj1 1")); + assert (r.size () == 1); + assert (r.begin ()->id == o2->id); + assert (r.begin ()->o1->id == o1_1->id); + + t.commit (); + } + + { + // one(i)-to-many + // + typedef odb::query query; + typedef odb::result result; + + session s; + transaction t (db->begin ()); + + result r (db->query (query::o1::id == "obj1 1")); + + assert (r.size () == 2); + + for (result::iterator i (r.begin ()); i != r.end (); ++i) + { + assert (i->id == o3_1->id || i->id == o3_2->id); + assert (i->o1->id == o1_1->id); + } + + t.commit (); + } + delete o1_1; delete o1_2; } -- cgit v1.1