Replaced recursive traits with local traits which are evaluated recursively

Ok, that sounds weird...

Earlier, each node in the SQL tree had a struct containing all recursive
traits. This is now gone. It only contains a reference to all sub nodes
and its own specific traits.
This commit is contained in:
rbock
2015-02-17 07:05:41 +01:00
parent 97de6fad7f
commit 436ef67072
69 changed files with 208 additions and 325 deletions

View File

@@ -42,17 +42,9 @@ namespace sqlpp
//FIXME: Need to add join functionality
using _traits = make_traits<value_type_of<Table>, tag::is_table, tag::is_alias, tag_if<tag::is_selectable, is_expression_t<Table>::value>>;
struct _recursive_traits
{
using _required_ctes = required_ctes_of<Table>;
using _provided_ctes = detail::type_set<>;
using _required_tables = detail::type_set<>;
using _provided_tables = detail::type_set<AliasProvider>;
using _provided_outer_tables = detail::type_set<>;
using _extra_tables = detail::type_set<>;
using _parameters = std::tuple<>;
using _tags = detail::type_set<>;
};
using _nodes = std::tuple<>;
using _required_ctes = required_ctes_of<Table>;
using _provided_tables = detail::type_set<AliasProvider>;
static_assert(required_tables_of<Table>::size::value == 0, "table aliases must not depend on external tables");