aboutsummaryrefslogtreecommitdiff
path: root/common/relationship
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-11-25 11:19:03 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-11-25 11:19:03 +0200
commitcd852a8be3a75b0be5bba9a7b6b454849231cd27 (patch)
treeea0e4ab1dff3ab0c369d49be35e7a14f82cc95ff /common/relationship
parent9e26a8a565aa4debe8b7eb86aa74ae39af9e7116 (diff)
Add support for object pointers in query
Diffstat (limited to 'common/relationship')
-rw-r--r--common/relationship/driver.cxx15
-rw-r--r--common/relationship/makefile3
2 files changed, 17 insertions, 1 deletions
diff --git a/common/relationship/driver.cxx b/common/relationship/driver.cxx
index 9266e2b..f7aa79e 100644
--- a/common/relationship/driver.cxx
+++ b/common/relationship/driver.cxx
@@ -96,6 +96,21 @@ main (int argc, char* argv[])
assert (*a1 == a);
}
+ // query
+ //
+ typedef odb::query<aggr> query;
+ typedef odb::result<aggr> result;
+
+ {
+ transaction t (db->begin ());
+
+ result r (db->query<aggr> (query::o1::str == "obj1"));
+ assert (r.size () == 1);
+ assert (r.begin ()->o1->id == a.o1->id);
+
+ t.commit ();
+ }
+
// test NULL pointer
//
delete a.o1;
diff --git a/common/relationship/makefile b/common/relationship/makefile
index a1c0a21..a3857d4 100644
--- a/common/relationship/makefile
+++ b/common/relationship/makefile
@@ -35,7 +35,8 @@ gen := $(addprefix $(out_base)/,$(genf))
$(gen): $(odb)
$(gen): odb := $(odb)
-$(gen) $(dist): export odb_options += --database $(db_id) --generate-schema
+$(gen) $(dist): export odb_options += --database $(db_id) --generate-schema \
+--generate-query
$(gen): cpp_options := -I$(out_base)
$(gen): $(common.l.cpp-options)