diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2014-11-20 06:48:28 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2014-11-20 06:48:28 +0200 |
commit | 8fceda2b30ecfa4458159e3c765e0aac7004f2f6 (patch) | |
tree | fc35dedf7e5bc5cfc1bc8e7458d986d7d8802c97 /odb/relational/validator.cxx | |
parent | e85b07722107d00e4a3182ff4d33274a617bb55a (diff) | |
parent | 19ba3497c0788f02fc417f441d87c96ce23f9446 (diff) |
Merge branch 'master' into bulk
Diffstat (limited to 'odb/relational/validator.cxx')
-rw-r--r-- | odb/relational/validator.cxx | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/odb/relational/validator.cxx b/odb/relational/validator.cxx index f204a6d..6c3a6fd 100644 --- a/odb/relational/validator.cxx +++ b/odb/relational/validator.cxx @@ -491,11 +491,30 @@ namespace relational virtual void traverse_view (type& c) { + const view_query& vq (c.get<view_query> ("query")); + // Make sure we don't have any containers or object pointers. // view_members_.traverse (c); names (c, data_member_names_); + + // Allow certain kinds of empty views. + // + if (vq.kind != view_query::runtime && + vq.kind != view_query::complete_execute) + { + // Allow all the members to be deleted. + // + column_count_type const& cc (column_count (c)); + + if (cc.total == 0) + { + os << c.file () << ":" << c.line () << ":" << c.column () << ":" + << " error: no persistent data members in the class" << endl; + valid_ = false; + } + } } virtual void |