From 8f59ca1a8d7093655f8f7d61f101abc6df3839d5 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 24 Mar 2011 12:35:08 +0200 Subject: Generalization work for MySQL and SQLite support --- odb/common.cxx | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'odb/common.cxx') diff --git a/odb/common.cxx b/odb/common.cxx index 1115565..f82d3d9 100644 --- a/odb/common.cxx +++ b/odb/common.cxx @@ -149,6 +149,11 @@ traverse (semantics::data_member& m) // void object_columns_base:: +flush () +{ +} + +void object_columns_base:: composite (semantics::data_member&, semantics::class_& c) { inherits (c); @@ -178,6 +183,9 @@ traverse_composite (semantics::data_member& m, } composite (m, c); + + if (!member_.first_) + flush (); } void object_columns_base:: @@ -190,6 +198,11 @@ traverse (semantics::class_& c) if (!(obj || context::comp_value (c))) return; + bool f (top_level_); + + if (top_level_) + top_level_ = false; + semantics::class_* prev; if (obj) { @@ -202,6 +215,9 @@ traverse (semantics::class_& c) if (obj) object = prev; + + if (f && !member_.first_) + flush (); } void object_columns_base::member:: @@ -243,9 +259,10 @@ traverse (semantics::data_member& m) } else { - oc_.column (m, prefix_ + column_name (m), first_); - - if (first_) - first_ = false; + if (oc_.column (m, prefix_ + column_name (m), first_)) + { + if (first_) + first_ = false; + } } } -- cgit v1.1