From 4cde011f27cd406804f05aa8fd1d28ed91a26738 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 1 Aug 2012 11:16:20 +0200 Subject: Add support for empty column names in composite value types --- odb/relational/common.cxx | 47 +++++++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 20 deletions(-) (limited to 'odb/relational/common.cxx') diff --git a/odb/relational/common.cxx b/odb/relational/common.cxx index 1e1009d..3916184 100644 --- a/odb/relational/common.cxx +++ b/odb/relational/common.cxx @@ -42,20 +42,23 @@ namespace relational // public name. // string alias; - - if (composite_wrapper (utype ((*id_member (c))))) { - string p (column_prefix (m, key_prefix_, default_name_)); + string n; + + if (composite_wrapper (utype (*id_member (c)))) + { + n = column_prefix (m, key_prefix_, default_name_); - if (p.empty ()) - p = public_name_db (m); + if (n.empty ()) + n = public_name_db (m); + else + n.resize (n.size () - 1); // Remove trailing underscore. + } else - p.resize (p.size () - 1); // Remove trailing underscore. + n = column_name (m, key_prefix_, default_name_); - alias = column_prefix_ + p; + alias = compose_name (column_prefix_, n); } - else - alias = column_prefix_ + column_name (m, key_prefix_, default_name_); generate (alias, c); } @@ -219,20 +222,23 @@ namespace relational // public name. // string alias; - - if (composite_wrapper (utype ((*id_member (c))))) { - string p (column_prefix (m, key_prefix_, default_name_)); + string n; + + if (composite_wrapper (utype (*id_member (c)))) + { + n = column_prefix (m, key_prefix_, default_name_); - if (p.empty ()) - p = public_name_db (m); + if (n.empty ()) + n = public_name_db (m); + else + n.resize (n.size () - 1); // Remove trailing underscore. + } else - p.resize (p.size () - 1); // Remove trailing underscore. + n = column_name (m, key_prefix_, default_name_); - alias = column_prefix_ + p; + alias = compose_name (column_prefix_, n); } - else - alias = column_prefix_ + column_name (m, key_prefix_, default_name_); string tag (escape (alias + "_alias_tag")); string const& fq_name (class_fq_name (c)); @@ -489,8 +495,9 @@ namespace relational // Simple id. // string type (t.fq_name (hint)); - string column (column_prefix_ + - column_name (m, key_prefix_, default_name_)); + string column ( + compose_name ( + column_prefix_, column_name (m, key_prefix_, default_name_))); // For pointer_query_columns generate normal column mapping. // -- cgit v1.1