From c3cb4c76130950bf461e9f8d802f45e97d4113a1 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 23 Jun 2014 11:57:26 +0200 Subject: Cut out pointer-to-id traversal so that we don't go into composite ids --- odb/relational/header.hxx | 6 ++++++ odb/relational/model.hxx | 6 ++++++ odb/relational/source.hxx | 12 ++++++++++++ 3 files changed, 24 insertions(+) diff --git a/odb/relational/header.hxx b/odb/relational/header.hxx index de152ca..0af9109 100644 --- a/odb/relational/header.hxx +++ b/odb/relational/header.hxx @@ -153,6 +153,12 @@ namespace relational } virtual void + traverse_pointer (semantics::data_member&, semantics::class_&) + { + // We don't want to traverse composite id. + } + + virtual void traverse_composite (semantics::data_member* m, semantics::class_& c) { if (object (c_)) diff --git a/odb/relational/model.hxx b/odb/relational/model.hxx index 3ff5e06..bb83e02 100644 --- a/odb/relational/model.hxx +++ b/odb/relational/model.hxx @@ -453,6 +453,12 @@ namespace relational } virtual void + traverse_pointer (semantics::data_member&, semantics::class_&) + { + // We don't want to traverse composite id. + } + + virtual void traverse_object (semantics::class_& c) { if (context::top_object != &c) diff --git a/odb/relational/source.hxx b/odb/relational/source.hxx index ac81bdf..b53b529 100644 --- a/odb/relational/source.hxx +++ b/odb/relational/source.hxx @@ -2207,6 +2207,12 @@ namespace relational } virtual void + traverse_pointer (semantics::data_member&, semantics::class_&) + { + // We don't want to traverse composite id. + } + + virtual void traverse_composite (semantics::data_member* m, semantics::class_& c) { if (object (c_)) @@ -3876,6 +3882,12 @@ namespace relational } virtual void + traverse_pointer (semantics::data_member&, semantics::class_&) + { + // We don't want to traverse composite id. + } + + virtual void traverse_composite_wrapper (semantics::data_member* m, semantics::class_& c, semantics::type* w) -- cgit v1.1