diff options
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 9705121..3c8c327 100644 --- a/odb/relational/validator.cxx +++ b/odb/relational/validator.cxx @@ -431,11 +431,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 |