0
0
mirror of https://github.com/rbock/sqlpp11.git synced 2024-11-16 04:47:18 +08:00

Cleaned up logic.h

all_t was not to be used as a type but as a value, thus, it should be `all`.
Same with any and none.
This commit is contained in:
Roland Bock 2024-08-17 19:57:21 +02:00
parent f04a597bf5
commit cc49ba1524
36 changed files with 71 additions and 106 deletions

View File

@ -141,7 +141,7 @@ namespace sqlpp
struct check_cte_union struct check_cte_union
{ {
using type = static_combined_check_t< using type = static_combined_check_t<
static_check_t<logic::all_t<is_statement_t<T>::value...>::value, assert_cte_union_args_are_statements_t>>; static_check_t<logic::all<is_statement_t<T>::value...>::value, assert_cte_union_args_are_statements_t>>;
}; };
template <typename... T> template <typename... T>
using check_cte_union_t = typename check_cte_union<T...>::type; using check_cte_union_t = typename check_cte_union<T...>::type;

View File

@ -93,7 +93,7 @@ namespace sqlpp
struct check_group_by struct check_group_by
{ {
using type = static_combined_check_t< using type = static_combined_check_t<
static_check_t<logic::all_t<is_group_by_column<Columns>::value...>::value, assert_group_by_args_are_columns_t>>; static_check_t<logic::all<is_group_by_column<Columns>::value...>::value, assert_group_by_args_are_columns_t>>;
}; };
template <typename... Columns> template <typename... Columns>
using check_group_by_t = typename check_group_by<Columns...>::type; using check_group_by_t = typename check_group_by<Columns...>::type;

View File

@ -109,7 +109,7 @@ namespace sqlpp
template <typename... Exprs> template <typename... Exprs>
constexpr auto are_all_parameters_expressions() -> bool constexpr auto are_all_parameters_expressions() -> bool
{ {
return logic::all_t<is_expression_t<Exprs>::value...>::value; return logic::all<is_expression_t<Exprs>::value...>::value;
} }
// NO HAVING YET // NO HAVING YET
@ -135,7 +135,7 @@ namespace sqlpp
// workaround for msvc bug https://connect.microsoft.com/VisualStudio/Feedback/Details/2173269 // workaround for msvc bug https://connect.microsoft.com/VisualStudio/Feedback/Details/2173269
// template <typename... T> // template <typename... T>
// using _check = logic::all_t<is_expression_t<T>::value...>; // using _check = logic::all<is_expression_t<T>::value...>;
template <typename... T> template <typename... T>
struct _check : std::integral_constant<bool, are_all_parameters_expressions<T...>()> struct _check : std::integral_constant<bool, are_all_parameters_expressions<T...>()>
{ {

View File

@ -147,7 +147,7 @@ namespace sqlpp
template <typename... Assignments> template <typename... Assignments>
using check_insert_set_t = static_combined_check_t< using check_insert_set_t = static_combined_check_t<
static_check_t<logic::all_t<is_assignment<Assignments>::value...>::value, static_check_t<logic::all<is_assignment<Assignments>::value...>::value,
assert_insert_set_assignments_t>, assert_insert_set_assignments_t>,
static_check_t<not detail::has_duplicates<typename lhs<Assignments>::type...>::value, static_check_t<not detail::has_duplicates<typename lhs<Assignments>::type...>::value,
assert_insert_set_no_duplicates_t>, assert_insert_set_no_duplicates_t>,
@ -260,13 +260,13 @@ namespace sqlpp
template <typename... Assignments> template <typename... Assignments>
void add_values(Assignments... assignments) void add_values(Assignments... assignments)
{ {
static_assert(logic::all_t<is_assignment<Assignments>::value...>::value, static_assert(logic::all<is_assignment<Assignments>::value...>::value,
"add_values() arguments have to be assignments"); "add_values() arguments have to be assignments");
using _arg_value_tuple = std::tuple<insert_value_t<lhs_t<Assignments>>...>; using _arg_value_tuple = std::tuple<insert_value_t<lhs_t<Assignments>>...>;
using _args_correct = std::is_same<_arg_value_tuple, _value_tuple_t>; using _args_correct = std::is_same<_arg_value_tuple, _value_tuple_t>;
static_assert(_args_correct::value, "add_values() arguments do not match columns() arguments"); static_assert(_args_correct::value, "add_values() arguments do not match columns() arguments");
using ok = logic::all_t<logic::all_t<is_assignment<Assignments>::value...>::value, _args_correct::value>; using ok = logic::all<logic::all<is_assignment<Assignments>::value...>::value, _args_correct::value>;
_add_impl(ok(), assignments...); // dispatch to prevent compile messages after the static_assert _add_impl(ok(), assignments...); // dispatch to prevent compile messages after the static_assert
} }
@ -303,7 +303,7 @@ namespace sqlpp
struct check_insert_columns struct check_insert_columns
{ {
using type = static_combined_check_t< using type = static_combined_check_t<
static_check_t<logic::all_t<is_column_t<Columns>::value...>::value, assert_insert_columns_are_columns>>; static_check_t<logic::all<is_column_t<Columns>::value...>::value, assert_insert_columns_are_columns>>;
}; };
template <typename... Columns> template <typename... Columns>
using check_insert_columns_t = typename check_insert_columns<Columns...>::type; using check_insert_columns_t = typename check_insert_columns<Columns...>::type;

View File

@ -86,7 +86,7 @@ namespace sqlpp
template <typename... Exprs> template <typename... Exprs>
struct check_order_by struct check_order_by
{ {
using type = static_combined_check_t<static_check_t<logic::all_t<is_sort_order<Exprs>::value...>::value, using type = static_combined_check_t<static_check_t<logic::all<is_sort_order<Exprs>::value...>::value,
assert_order_by_args_are_sort_order_expressions_t>>; assert_order_by_args_are_sort_order_expressions_t>>;
}; };
template <typename... Exprs> template <typename... Exprs>

View File

@ -233,8 +233,8 @@ namespace sqlpp
: public std::integral_constant< : public std::integral_constant<
bool, bool,
(detail::type_vector_size<KnownAggregateColumns>::value == 0 and (detail::type_vector_size<KnownAggregateColumns>::value == 0 and
logic::none_t<contains_aggregate_function<remove_dynamic_t<remove_as_t<Columns>>>::value...>::value) or logic::none<contains_aggregate_function<remove_dynamic_t<remove_as_t<Columns>>>::value...>::value) or
logic::all_t<is_aggregate_expression<KnownAggregateColumns, logic::all<is_aggregate_expression<KnownAggregateColumns,
remove_dynamic_t<remove_as_t<Columns>>>::value...>::value> remove_dynamic_t<remove_as_t<Columns>>>::value...>::value>
{ {
}; };
@ -258,7 +258,7 @@ namespace sqlpp
struct check_selected_tuple<std::tuple<T...>> struct check_selected_tuple<std::tuple<T...>>
{ {
using type = static_combined_check_t< using type = static_combined_check_t<
static_check_t<logic::all_t<(select_column_has_value_type<T>::value and select_column_has_name<T>::value)...>::value, static_check_t<logic::all<(select_column_has_value_type<T>::value and select_column_has_name<T>::value)...>::value,
assert_selected_colums_are_selectable_t>>; assert_selected_colums_are_selectable_t>>;
}; };
template <typename T> template <typename T>

View File

@ -81,7 +81,7 @@ namespace sqlpp
struct check_select_flags struct check_select_flags
{ {
using type = static_combined_check_t< using type = static_combined_check_t<
static_check_t<logic::all_t<is_select_flag_t<Flags>::value...>::value, assert_select_flags_are_flags_t>>; static_check_t<logic::all<is_select_flag_t<Flags>::value...>::value, assert_select_flags_are_flags_t>>;
}; };
template <typename... Flags> template <typename... Flags>
using check_select_flags_t = typename check_select_flags<Flags...>::type; using check_select_flags_t = typename check_select_flags<Flags...>::type;

View File

@ -98,7 +98,7 @@ namespace sqlpp
struct check_union struct check_union
{ {
using type = static_combined_check_t< using type = static_combined_check_t<
static_check_t<logic::all_t<is_statement_t<T>::value...>::value, assert_union_args_are_statements_t>>; static_check_t<logic::all<is_statement_t<T>::value...>::value, assert_union_args_are_statements_t>>;
}; };
template <typename... T> template <typename... T>
using check_union_t = typename check_union<T...>::type; using check_union_t = typename check_union<T...>::type;

View File

@ -91,7 +91,7 @@ namespace sqlpp
template <typename... Assignments> template <typename... Assignments>
using check_update_set_t = static_combined_check_t< using check_update_set_t = static_combined_check_t<
static_check_t<logic::all_t<is_assignment<Assignments>::value...>::value, static_check_t<logic::all<is_assignment<Assignments>::value...>::value,
assert_update_set_assignments_t>, assert_update_set_assignments_t>,
static_check_t<not detail::has_duplicates<typename lhs<Assignments>::type...>::value, static_check_t<not detail::has_duplicates<typename lhs<Assignments>::type...>::value,
assert_update_set_no_duplicates_t>, assert_update_set_no_duplicates_t>,

View File

@ -79,7 +79,7 @@ namespace sqlpp
struct check_using struct check_using
{ {
using type = static_combined_check_t< using type = static_combined_check_t<
static_check_t<logic::all_t<is_table<Tables>::value...>::value, assert_using_args_are_tables_t>>; static_check_t<logic::all<is_table<Tables>::value...>::value, assert_using_args_are_tables_t>>;
}; };
template <typename... Tables> template <typename... Tables>
using check_using_t = typename check_using<Tables...>::type; using check_using_t = typename check_using<Tables...>::type;

View File

@ -117,9 +117,9 @@ namespace sqlpp
// https://connect.microsoft.com/VisualStudio/feedback/details/2173198 // https://connect.microsoft.com/VisualStudio/feedback/details/2173198
// template <typename... Expressions> // template <typename... Expressions>
// using check_where_t = static_combined_check_t< // using check_where_t = static_combined_check_t<
// static_check_t<logic::all_t<is_boolean<Expressions>::value...>::value, // static_check_t<logic::all<is_boolean<Expressions>::value...>::value,
// assert_where_arg_is_boolean_expression_t>, // assert_where_arg_is_boolean_expression_t>,
// static_check_t<logic::all_t<(not contains_aggregate_function<Expressions>::value)...>::value, // static_check_t<logic::all<(not contains_aggregate_function<Expressions>::value)...>::value,
// assert_where_arg_contains_no_aggregate_t>>; // assert_where_arg_contains_no_aggregate_t>>;
template <typename Expression> template <typename Expression>
struct check_where struct check_where

View File

@ -42,7 +42,7 @@ namespace sqlpp
template <typename... Expressions> template <typename... Expressions>
struct with_data_t struct with_data_t
{ {
using _is_recursive = logic::any_t<Expressions::_is_recursive...>; using _is_recursive = logic::any<Expressions::_is_recursive...>;
with_data_t(Expressions... expressions) : _expressions(expressions...) with_data_t(Expressions... expressions) : _expressions(expressions...)
{ {
@ -140,9 +140,9 @@ namespace sqlpp
template <typename... Expressions> template <typename... Expressions>
auto with(Expressions... cte) -> blank_with_t<Expressions...> auto with(Expressions... cte) -> blank_with_t<Expressions...>
{ {
static_assert(logic::all_t<is_cte_t<Expressions>::value...>::value, static_assert(logic::all<is_cte_t<Expressions>::value...>::value,
"at least one expression in with is not a common table expression"); "at least one expression in with is not a common table expression");
static_assert(logic::none_t<is_alias_t<Expressions>::value...>::value, static_assert(logic::none<is_alias_t<Expressions>::value...>::value,
"at least one expression in with is an incomplete common table expression"); "at least one expression in with is an incomplete common table expression");
return {{cte...}}; return {{cte...}};
} }

View File

@ -238,7 +238,7 @@ namespace sqlpp
struct make_intersect_set<type_set<LhsElements...>, type_set<RhsElements...>> struct make_intersect_set<type_set<LhsElements...>, type_set<RhsElements...>>
{ {
template <typename E> template <typename E>
using is_in_both = ::sqlpp::logic::all_t<type_set<LhsElements...>::template count<E>(), using is_in_both = ::sqlpp::logic::all<type_set<LhsElements...>::template count<E>(),
type_set<RhsElements...>::template count<E>()>; type_set<RhsElements...>::template count<E>()>;
using type = make_type_set_if_t<is_in_both, LhsElements...>; using type = make_type_set_if_t<is_in_both, LhsElements...>;
}; };

View File

@ -37,7 +37,7 @@ namespace sqlpp
struct type_vector struct type_vector
{ {
template<typename X> template<typename X>
using contains = std::integral_constant<bool, ::sqlpp::logic::any_t<std::is_same<T, X>::value...>::value>; using contains = std::integral_constant<bool, ::sqlpp::logic::any<std::is_same<T, X>::value...>::value>;
}; };
template <typename... T> template <typename... T>

View File

@ -1,7 +1,7 @@
#pragma once #pragma once
/* /*
* Copyright (c) 2013-2015, Roland Bock * Copyright (c) 2013, Roland Bock
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without modification, * Redistribution and use in source and binary forms, with or without modification,
@ -38,50 +38,22 @@ namespace sqlpp
// see http://lists.boost.org/Archives/boost/2014/05/212946.php :-) // see http://lists.boost.org/Archives/boost/2014/05/212946.php :-)
// workaround for msvc bug https://connect.microsoft.com/VisualStudio/Feedback/Details/2086629
template <bool... B> template <bool... B>
struct all struct all : public std::is_same<logic_helper<B...>, logic_helper<(B or true)...>>
{ {
using type = std::is_same<logic_helper<B...>, logic_helper<(B or true)...>>;
}; };
template <bool... B>
using all_t = std::is_same<logic_helper<B...>, logic_helper<(B or true)...>>;
// workaround for msvc bug https://connect.microsoft.com/VisualStudio/Feedback/Details/2086629
template <bool... B> template <bool... B>
struct any struct any
: public std::integral_constant<bool,
not std::is_same<logic_helper<B...>, logic_helper<(B and false)...>>::value>
{ {
using type =
std::integral_constant<bool, not std::is_same<logic_helper<B...>, logic_helper<(B and false)...>>::value>;
}; };
template <bool... B> template <bool... B>
using any_t = struct none : public std::is_same<logic_helper<B...>, logic_helper<(B and false)...>>
std::integral_constant<bool, not std::is_same<logic_helper<B...>, logic_helper<(B and false)...>>::value>;
template <bool... B>
using none_t = std::is_same<logic_helper<B...>, logic_helper<(B and false)...>>;
template <bool>
struct not_impl;
template <>
struct not_impl<true>
{ {
using type = std::false_type;
}; };
template <>
struct not_impl<false>
{
using type = std::true_type;
};
template <template <typename> class Predicate, typename T>
using not_t = typename not_impl<Predicate<T>::value>::type;
template <typename T>
using identity_t = T;
} // namespace logic } // namespace logic
} // namespace sqlpp } // namespace sqlpp

View File

@ -80,7 +80,7 @@ namespace sqlpp
template <typename L, typename... Args> template <typename L, typename... Args>
using check_in_args = using check_in_args =
::sqlpp::enable_if_t<(sizeof...(Args) != 0) and logic::all_t<values_are_comparable<L, Args>::value...>::value>; ::sqlpp::enable_if_t<(sizeof...(Args) != 0) and logic::all<values_are_comparable<L, Args>::value...>::value>;
template <typename L, typename Operator, typename R> template <typename L, typename Operator, typename R>
struct value_type_of<in_expression<L, Operator, std::vector<R>>> struct value_type_of<in_expression<L, Operator, std::vector<R>>>
@ -93,7 +93,7 @@ namespace sqlpp
template <typename L, typename Operator, typename... Args> template <typename L, typename Operator, typename... Args>
struct value_type_of<in_expression<L, Operator, std::tuple<Args...>>> struct value_type_of<in_expression<L, Operator, std::tuple<Args...>>>
: std::conditional<sqlpp::is_optional<value_type_of_t<L>>::value or : std::conditional<sqlpp::is_optional<value_type_of_t<L>>::value or
logic::any_t<sqlpp::is_optional<value_type_of_t<Args>>::value...>::value, logic::any<sqlpp::is_optional<value_type_of_t<Args>>::value...>::value,
::sqlpp::optional<boolean>, ::sqlpp::optional<boolean>,
boolean> boolean>
{ {

View File

@ -69,15 +69,11 @@ namespace sqlpp
template <typename Context> template <typename Context>
auto to_sql_string(Context& , const sort_type& t) -> std::string auto to_sql_string(Context& , const sort_type& t) -> std::string
{ {
switch (t) if (t == sort_type::asc)
{ {
case sort_type::asc:
return " ASC"; return " ASC";
break;
case sort_type::desc:
return " DESC";
break;
} }
return " DESC";
} }
template <typename Context, typename L> template <typename Context, typename L>

View File

@ -184,7 +184,7 @@ namespace sqlpp
result_row_t<RDb, RFields...>, result_row_t<RDb, RFields...>,
typename std::enable_if<sizeof...(LFields) == sizeof...(RFields)>::type> typename std::enable_if<sizeof...(LFields) == sizeof...(RFields)>::type>
{ {
static constexpr auto value = logic::all_t<is_field_compatible<LFields, RFields>::value...>::value; static constexpr auto value = logic::all<is_field_compatible<LFields, RFields>::value...>::value;
}; };

View File

@ -56,7 +56,7 @@ namespace sqlpp
template <typename... Policies> template <typename... Policies>
constexpr auto is_any_policy_missing() -> bool constexpr auto is_any_policy_missing() -> bool
{ {
return logic::any_t<is_missing_t<Policies>::value...>::value; return logic::any<is_missing_t<Policies>::value...>::value;
} }
template <typename... Policies> template <typename... Policies>
@ -88,25 +88,25 @@ namespace sqlpp
// workaround for msvc bug https://connect.microsoft.com/VisualStudio/Feedback/Details/2086629 // workaround for msvc bug https://connect.microsoft.com/VisualStudio/Feedback/Details/2086629
// template <typename... Expressions> // template <typename... Expressions>
// using _no_unknown_aggregates = // using _no_unknown_aggregates =
// logic::any_t<_all_provided_aggregates::size::value == 0, // logic::any<_all_provided_aggregates::size::value == 0,
// logic::all_t<is_aggregate_expression_t<_all_provided_aggregates, // logic::all<is_aggregate_expression_t<_all_provided_aggregates,
// Expressions>::value...>::value>; // Expressions>::value...>::value>;
template <typename... Expressions> template <typename... Expressions>
using _no_unknown_aggregates = using _no_unknown_aggregates =
logic::any_t<_all_provided_aggregates::size::value == 0, logic::any<_all_provided_aggregates::size::value == 0,
logic::all_t<detail::is_aggregate_expression_impl<_all_provided_aggregates, logic::all<detail::is_aggregate_expression_impl<_all_provided_aggregates,
Expressions>::type::value...>::value>; Expressions>::type::value...>::value>;
template <typename... Expressions> template <typename... Expressions>
using _all_aggregates = logic::any_t<logic::all_t< using _all_aggregates = logic::any<logic::all<
detail::is_aggregate_expression_impl<_all_provided_aggregates, Expressions>::type::value...>::value>; detail::is_aggregate_expression_impl<_all_provided_aggregates, Expressions>::type::value...>::value>;
template <typename... Expressions> template <typename... Expressions>
using _no_aggregates = logic::any_t<logic::all_t< using _no_aggregates = logic::any<logic::all<
detail::is_non_aggregate_expression_impl<_all_provided_aggregates, Expressions>::type::value...>::value>; detail::is_non_aggregate_expression_impl<_all_provided_aggregates, Expressions>::type::value...>::value>;
template <template <typename> class Predicate> template <template <typename> class Predicate>
using any_t = logic::any_t<Predicate<Policies>::value...>; using any_t = logic::any<Predicate<Policies>::value...>;
// The tables not covered by the from. // The tables not covered by the from.
using _required_tables = detail::make_difference_set_t<_all_required_tables, _all_provided_tables>; using _required_tables = detail::make_difference_set_t<_all_required_tables, _all_provided_tables>;
@ -135,13 +135,10 @@ namespace sqlpp
// then the statement cannot be used as a value // then the statement cannot be used as a value
value_type_of_t<_result_type_provider>>::type; value_type_of_t<_result_type_provider>>::type;
using _traits =
make_traits<_value_type, tag_if<tag::is_expression, not std::is_same<_value_type, no_value_t>::value>>;
using _nodes = detail::type_vector<>; using _nodes = detail::type_vector<>;
#warning: maybe need to make value type optional #warning: maybe need to make value type optional
/* /*
using _can_be_null = logic::any_t<can_be_null_t<_result_type_provider>::value, using _can_be_null = logic::any<can_be_null_t<_result_type_provider>::value,
detail::make_intersect_set_t<required_tables_of_t<_result_type_provider>, detail::make_intersect_set_t<required_tables_of_t<_result_type_provider>,
_all_provided_outer_tables>::size::value != 0>; _all_provided_outer_tables>::size::value != 0>;
*/ */
@ -201,11 +198,11 @@ namespace sqlpp
using _traits = using _traits =
make_traits<value_type_of_t<_policies_t>, make_traits<value_type_of_t<_policies_t>,
tag::is_statement, tag::is_statement,
tag_if<tag::is_select, logic::any_t<is_select_t<Policies>::value...>::value>, tag_if<tag::is_select, logic::any<is_select_t<Policies>::value...>::value>,
tag_if<tag::is_expression, is_expression_t<_policies_t>::value>, tag_if<tag::is_expression, is_expression_t<_policies_t>::value>,
tag_if<tag::is_selectable, is_expression_t<_policies_t>::value> tag_if<tag::is_selectable, is_expression_t<_policies_t>::value>
#warning: reactivate #warning: reactivate
//,tag_if<tag::is_return_value, logic::none_t<is_noop_t<_result_type_provider>::value>::value> //,tag_if<tag::is_return_value, logic::none<is_noop_t<_result_type_provider>::value>::value>
>; >;
using _name_tag_of = name_tag_of<_result_type_provider>; using _name_tag_of = name_tag_of<_result_type_provider>;
using _nodes = detail::type_vector<_policies_t>; using _nodes = detail::type_vector<_policies_t>;

View File

@ -369,7 +369,7 @@ namespace sqlpp
struct is_aggregate_expression_impl<KnownAggregates, type_vector<Nodes...>, void> struct is_aggregate_expression_impl<KnownAggregates, type_vector<Nodes...>, void>
{ {
using type = using type =
logic::all_t<sizeof...(Nodes) != 0, is_aggregate_expression_impl<KnownAggregates, Nodes>::type::value...>; logic::all<sizeof...(Nodes) != 0, is_aggregate_expression_impl<KnownAggregates, Nodes>::type::value...>;
}; };
} // namespace detail } // namespace detail
template <typename KnownAggregates, typename T> template <typename KnownAggregates, typename T>
@ -409,8 +409,8 @@ namespace sqlpp
struct is_non_aggregate_expression_impl<KnownAggregates, type_vector<Nodes...>, void> struct is_non_aggregate_expression_impl<KnownAggregates, type_vector<Nodes...>, void>
{ {
using type = using type =
logic::any_t<sizeof...(Nodes) == 0, logic::any<sizeof...(Nodes) == 0,
logic::all_t<sizeof...(Nodes) != 0, logic::all<sizeof...(Nodes) != 0,
is_non_aggregate_expression_impl<KnownAggregates, Nodes>::type::value...>::value>; is_non_aggregate_expression_impl<KnownAggregates, Nodes>::type::value...>::value>;
}; };
} // namespace detail } // namespace detail

View File

@ -56,7 +56,7 @@ namespace sqlpp
struct contains_aggregate_function<detail::type_vector<T...>> struct contains_aggregate_function<detail::type_vector<T...>>
: public std::integral_constant< : public std::integral_constant<
bool, bool,
logic::any_t<(is_aggregate_function<T>::value or contains_aggregate_function<T>::value)...>::value> logic::any<(is_aggregate_function<T>::value or contains_aggregate_function<T>::value)...>::value>
{ {
}; };

View File

@ -78,11 +78,11 @@ namespace sqlpp
template <typename... Assignments> template <typename... Assignments>
using check_on_conflict_do_update_set_t = static_combined_check_t< using check_on_conflict_do_update_set_t = static_combined_check_t<
static_check_t<logic::all_t<sqlpp::detail::is_assignment_impl<Assignments>::type::value...>::value, static_check_t<logic::all<sqlpp::detail::is_assignment_impl<Assignments>::type::value...>::value,
assert_on_conflict_do_update_set_assignments_t>, assert_on_conflict_do_update_set_assignments_t>,
static_check_t<not sqlpp::detail::has_duplicates<typename lhs<Assignments>::type...>::value, static_check_t<not sqlpp::detail::has_duplicates<typename lhs<Assignments>::type...>::value,
assert_on_conflict_do_update_set_no_duplicates_t>, assert_on_conflict_do_update_set_no_duplicates_t>,
static_check_t<logic::none_t<detail::lhs_must_not_update<Assignments>::value...>::value, static_check_t<logic::none<detail::lhs_must_not_update<Assignments>::value...>::value,
assert_on_conflict_do_update_set_allowed_t>, assert_on_conflict_do_update_set_allowed_t>,
static_check_t<sizeof...(Assignments) == 0 or sqlpp::detail::make_joined_set_t<required_tables_of_t< static_check_t<sizeof...(Assignments) == 0 or sqlpp::detail::make_joined_set_t<required_tables_of_t<
typename lhs<Assignments>::type>...>::size::value == 1, typename lhs<Assignments>::type>...>::size::value == 1,

View File

@ -239,7 +239,7 @@ namespace sqlpp
_data_t _data; _data_t _data;
template <typename... T> template <typename... T>
struct _check : logic::all_t<is_selectable_t<T>::value...> struct _check : logic::all<is_selectable_t<T>::value...>
{ {
}; };

View File

@ -52,7 +52,7 @@ namespace
static_assert(ExpectedCheckResult::value, "Unexpected check result"); static_assert(ExpectedCheckResult::value, "Unexpected check result");
using ReturnType = decltype(sqlpp::case_when(when)); using ReturnType = decltype(sqlpp::case_when(when));
using ExpectedReturnType = sqlpp::logic::all_t<Assert::value xor std::is_same<ReturnType, Assert>::value>; using ExpectedReturnType = sqlpp::logic::all<Assert::value xor std::is_same<ReturnType, Assert>::value>;
print_type_on_error<ReturnType>(ExpectedReturnType{}); print_type_on_error<ReturnType>(ExpectedReturnType{});
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");
} }
@ -66,7 +66,7 @@ namespace
static_assert(ExpectedCheckResult::value, "Unexpected check result"); static_assert(ExpectedCheckResult::value, "Unexpected check result");
using ReturnType = decltype(sqlpp::case_when(when).then(then)); using ReturnType = decltype(sqlpp::case_when(when).then(then));
using ExpectedReturnType = sqlpp::logic::all_t<Assert::value xor std::is_same<ReturnType, Assert>::value>; using ExpectedReturnType = sqlpp::logic::all<Assert::value xor std::is_same<ReturnType, Assert>::value>;
print_type_on_error<ReturnType>(ExpectedReturnType{}); print_type_on_error<ReturnType>(ExpectedReturnType{});
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");
} }
@ -80,7 +80,7 @@ namespace
static_assert(ExpectedCheckResult::value, "Unexpected check result"); static_assert(ExpectedCheckResult::value, "Unexpected check result");
using ReturnType = decltype(sqlpp::case_when(when).then(then).else_(else_)); using ReturnType = decltype(sqlpp::case_when(when).then(then).else_(else_));
using ExpectedReturnType = sqlpp::logic::all_t<Assert::value xor std::is_same<ReturnType, Assert>::value>; using ExpectedReturnType = sqlpp::logic::all<Assert::value xor std::is_same<ReturnType, Assert>::value>;
print_type_on_error<ReturnType>(ExpectedReturnType{}); print_type_on_error<ReturnType>(ExpectedReturnType{});
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");
} }

View File

@ -56,7 +56,7 @@ namespace
decltype(t.someDayPoint != operand), decltype(t.someDayPoint >= operand), decltype(t.someDayPoint > operand), decltype(t.someDayPoint != operand), decltype(t.someDayPoint >= operand), decltype(t.someDayPoint > operand),
decltype(t.someDayPoint.in(operand)), decltype(t.someDayPoint.in(operand, operand)), decltype(t.someDayPoint.in(operand)), decltype(t.someDayPoint.in(operand, operand)),
decltype(t.someDayPoint.not_in(operand)), decltype(t.someDayPoint.not_in(operand, operand))>; decltype(t.someDayPoint.not_in(operand)), decltype(t.someDayPoint.not_in(operand, operand))>;
using ExpectedReturnType = sqlpp::logic::all_t< using ExpectedReturnType = sqlpp::logic::all<
Assert::value xor Assert::value xor
std::is_same<ReturnType, sqlpp::detail::type_set<sqlpp::bad_expression<sqlpp::boolean>>>::value>; std::is_same<ReturnType, sqlpp::detail::type_set<sqlpp::bad_expression<sqlpp::boolean>>>::value>;
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");

View File

@ -56,7 +56,7 @@ namespace
decltype(t.someTimePoint != operand), decltype(t.someTimePoint >= operand), decltype(t.someTimePoint > operand), decltype(t.someTimePoint != operand), decltype(t.someTimePoint >= operand), decltype(t.someTimePoint > operand),
decltype(t.someTimePoint.in(operand)), decltype(t.someTimePoint.in(operand, operand)), decltype(t.someTimePoint.in(operand)), decltype(t.someTimePoint.in(operand, operand)),
decltype(t.someTimePoint.not_in(operand)), decltype(t.someTimePoint.not_in(operand, operand))>; decltype(t.someTimePoint.not_in(operand)), decltype(t.someTimePoint.not_in(operand, operand))>;
using ExpectedReturnType = sqlpp::logic::all_t< using ExpectedReturnType = sqlpp::logic::all<
Assert::value xor Assert::value xor
std::is_same<ReturnType, sqlpp::detail::type_set<sqlpp::bad_expression<sqlpp::boolean>>>::value>; std::is_same<ReturnType, sqlpp::detail::type_set<sqlpp::bad_expression<sqlpp::boolean>>>::value>;
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");

View File

@ -53,7 +53,7 @@ namespace
static_assert(ExpectedCheckResult::value, "Unexpected check result"); static_assert(ExpectedCheckResult::value, "Unexpected check result");
using ReturnType = decltype(select(t.id).from(expression)); using ReturnType = decltype(select(t.id).from(expression));
using ExpectedReturnType = sqlpp::logic::all_t<Assert::value xor std::is_same<ReturnType, Assert>::value>; using ExpectedReturnType = sqlpp::logic::all<Assert::value xor std::is_same<ReturnType, Assert>::value>;
print_type_on_error<ReturnType>(ExpectedReturnType{}); print_type_on_error<ReturnType>(ExpectedReturnType{});
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");
} }

View File

@ -53,7 +53,7 @@ namespace
static_assert(ExpectedCheckResult::value, "Unexpected check result"); static_assert(ExpectedCheckResult::value, "Unexpected check result");
using ReturnType = decltype(select(all_of(t)).from(t).unconditionally().group_by(t.id).having(expression)); using ReturnType = decltype(select(all_of(t)).from(t).unconditionally().group_by(t.id).having(expression));
using ExpectedReturnType = sqlpp::logic::all_t<Assert::value xor std::is_same<ReturnType, Assert>::value>; using ExpectedReturnType = sqlpp::logic::all<Assert::value xor std::is_same<ReturnType, Assert>::value>;
print_type_on_error<ReturnType>(ExpectedReturnType{}); print_type_on_error<ReturnType>(ExpectedReturnType{});
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");
} }

View File

@ -54,7 +54,7 @@ namespace
using ReturnType = using ReturnType =
sqlpp::detail::make_type_set_t<decltype(expr.in(operands...)), decltype(expr.not_in(operands...))>; sqlpp::detail::make_type_set_t<decltype(expr.in(operands...)), decltype(expr.not_in(operands...))>;
using ExpectedReturnType = sqlpp::logic::all_t< using ExpectedReturnType = sqlpp::logic::all<
Assert::value xor Assert::value xor
std::is_same<ReturnType, sqlpp::detail::type_set<sqlpp::bad_expression<sqlpp::boolean>>>::value>; std::is_same<ReturnType, sqlpp::detail::type_set<sqlpp::bad_expression<sqlpp::boolean>>>::value>;
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");

View File

@ -53,7 +53,7 @@ namespace
static_assert(ExpectedCheckResult::value, "Unexpected check result"); static_assert(ExpectedCheckResult::value, "Unexpected check result");
using ReturnType = decltype(insert_into(t).set(assignments...)); using ReturnType = decltype(insert_into(t).set(assignments...));
using ExpectedReturnType = sqlpp::logic::all_t<Assert::value xor std::is_same<ReturnType, Assert>::value>; using ExpectedReturnType = sqlpp::logic::all<Assert::value xor std::is_same<ReturnType, Assert>::value>;
print_type_on_error<ReturnType>(ExpectedReturnType{}); print_type_on_error<ReturnType>(ExpectedReturnType{});
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");
} }

View File

@ -58,7 +58,7 @@ namespace
using RightOuterJoinType = decltype(sqlpp::right_outer_join(lhs, rhs)); using RightOuterJoinType = decltype(sqlpp::right_outer_join(lhs, rhs));
using OuterJoinType = decltype(sqlpp::outer_join(lhs, rhs)); using OuterJoinType = decltype(sqlpp::outer_join(lhs, rhs));
using CrossJoinType = decltype(sqlpp::cross_join(lhs, rhs)); using CrossJoinType = decltype(sqlpp::cross_join(lhs, rhs));
using ExpectedReturnType = sqlpp::logic::all_t< using ExpectedReturnType = sqlpp::logic::all<
(Assert::value and sqlpp::is_pre_join_t<JoinType>::value and sqlpp::is_pre_join_t<InnerJoinType>::value and (Assert::value and sqlpp::is_pre_join_t<JoinType>::value and sqlpp::is_pre_join_t<InnerJoinType>::value and
sqlpp::is_pre_join_t<LeftOuterJoinType>::value and sqlpp::is_pre_join_t<RightOuterJoinType>::value and sqlpp::is_pre_join_t<LeftOuterJoinType>::value and sqlpp::is_pre_join_t<RightOuterJoinType>::value and
sqlpp::is_pre_join_t<OuterJoinType>::value and sqlpp::is_join_t<CrossJoinType>::value) xor sqlpp::is_pre_join_t<OuterJoinType>::value and sqlpp::is_join_t<CrossJoinType>::value) xor
@ -83,7 +83,7 @@ namespace
static_assert(ExpectedCheckResult::value, "Unexpected check result"); static_assert(ExpectedCheckResult::value, "Unexpected check result");
using ResultType = decltype(lhs.on(rhs)); using ResultType = decltype(lhs.on(rhs));
using ExpectedReturnType = sqlpp::logic::all_t<(Assert::value and sqlpp::is_join_t<ResultType>::value) xor using ExpectedReturnType = sqlpp::logic::all<(Assert::value and sqlpp::is_join_t<ResultType>::value) xor
std::is_same<ResultType, Assert>::value>; std::is_same<ResultType, Assert>::value>;
print_type_on_error<ResultType>(ExpectedReturnType{}); print_type_on_error<ResultType>(ExpectedReturnType{});
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");

View File

@ -54,7 +54,7 @@ namespace
using ReturnType = sqlpp::detail::make_type_set_t<decltype(operand < operand), decltype(operand <= operand), using ReturnType = sqlpp::detail::make_type_set_t<decltype(operand < operand), decltype(operand <= operand),
decltype(operand == operand), decltype(operand != operand), decltype(operand == operand), decltype(operand != operand),
decltype(operand >= operand), decltype(operand > operand)>; decltype(operand >= operand), decltype(operand > operand)>;
using ExpectedReturnType = sqlpp::logic::all_t< using ExpectedReturnType = sqlpp::logic::all<
Assert::value xor Assert::value xor
std::is_same<ReturnType, sqlpp::detail::type_set<sqlpp::bad_expression<sqlpp::boolean>>>::value>; std::is_same<ReturnType, sqlpp::detail::type_set<sqlpp::bad_expression<sqlpp::boolean>>>::value>;
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");

View File

@ -56,7 +56,7 @@ namespace
decltype(t.someString != operand), decltype(t.someString >= operand), decltype(t.someString > operand), decltype(t.someString != operand), decltype(t.someString >= operand), decltype(t.someString > operand),
decltype(t.someString.in(operand)), decltype(t.someString.in(operand, operand)), decltype(t.someString.in(operand)), decltype(t.someString.in(operand, operand)),
decltype(t.someString.not_in(operand)), decltype(t.someString.not_in(operand, operand))>; decltype(t.someString.not_in(operand)), decltype(t.someString.not_in(operand, operand))>;
using ExpectedReturnType = sqlpp::logic::all_t< using ExpectedReturnType = sqlpp::logic::all<
Assert::value xor Assert::value xor
std::is_same<ReturnType, sqlpp::detail::type_set<sqlpp::bad_expression<sqlpp::boolean>>>::value>; std::is_same<ReturnType, sqlpp::detail::type_set<sqlpp::bad_expression<sqlpp::boolean>>>::value>;
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");

View File

@ -53,7 +53,7 @@ namespace
{ {
using ReturnType = decltype(lhs and rhs); using ReturnType = decltype(lhs and rhs);
using ExpectedReturnType = using ExpectedReturnType =
sqlpp::logic::all_t<Assert::value xor std::is_same<ReturnType, sqlpp::bad_expression<sqlpp::boolean>>::value>; sqlpp::logic::all<Assert::value xor std::is_same<ReturnType, sqlpp::bad_expression<sqlpp::boolean>>::value>;
print_type_on_error<ReturnType>(ExpectedReturnType{}); print_type_on_error<ReturnType>(ExpectedReturnType{});
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");
} }
@ -63,7 +63,7 @@ namespace
{ {
using ReturnType = decltype(lhs or rhs); using ReturnType = decltype(lhs or rhs);
using ExpectedReturnType = using ExpectedReturnType =
sqlpp::logic::all_t<Assert::value xor std::is_same<ReturnType, sqlpp::bad_expression<sqlpp::boolean>>::value>; sqlpp::logic::all<Assert::value xor std::is_same<ReturnType, sqlpp::bad_expression<sqlpp::boolean>>::value>;
print_type_on_error<ReturnType>(ExpectedReturnType{}); print_type_on_error<ReturnType>(ExpectedReturnType{});
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");
} }
@ -73,7 +73,7 @@ namespace
{ {
using ReturnType = decltype(not lhs); using ReturnType = decltype(not lhs);
using ExpectedReturnType = using ExpectedReturnType =
sqlpp::logic::all_t<Assert::value xor std::is_same<ReturnType, sqlpp::bad_expression<sqlpp::boolean>>::value>; sqlpp::logic::all<Assert::value xor std::is_same<ReturnType, sqlpp::bad_expression<sqlpp::boolean>>::value>;
print_type_on_error<ReturnType>(ExpectedReturnType{}); print_type_on_error<ReturnType>(ExpectedReturnType{});
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");
} }
@ -82,7 +82,7 @@ namespace
void where_check(const Condition& condition) void where_check(const Condition& condition)
{ {
using ReturnType = decltype(sqlpp::where(condition)); using ReturnType = decltype(sqlpp::where(condition));
using ExpectedReturnType = sqlpp::logic::all_t<Assert::value xor std::is_same<ReturnType, Assert>::value>; using ExpectedReturnType = sqlpp::logic::all<Assert::value xor std::is_same<ReturnType, Assert>::value>;
print_type_on_error<ReturnType>(ExpectedReturnType{}); print_type_on_error<ReturnType>(ExpectedReturnType{});
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");
} }

View File

@ -53,7 +53,7 @@ namespace
static_assert(ExpectedCheckResult::value, "Unexpected check result"); static_assert(ExpectedCheckResult::value, "Unexpected check result");
using ReturnType = decltype(update(t).set(expressions...)); using ReturnType = decltype(update(t).set(expressions...));
using ExpectedReturnType = sqlpp::logic::all_t<Assert::value xor std::is_same<ReturnType, Assert>::value>; using ExpectedReturnType = sqlpp::logic::all<Assert::value xor std::is_same<ReturnType, Assert>::value>;
print_type_on_error<ReturnType>(ExpectedReturnType{}); print_type_on_error<ReturnType>(ExpectedReturnType{});
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");
} }

View File

@ -52,7 +52,7 @@ namespace
static_assert(ExpectedCheckResult::value, "Unexpected check result"); static_assert(ExpectedCheckResult::value, "Unexpected check result");
using ReturnType = decltype(remove_from(t).where(expression)); using ReturnType = decltype(remove_from(t).where(expression));
using ExpectedReturnType = sqlpp::logic::all_t<Assert::value xor std::is_same<ReturnType, Assert>::value>; using ExpectedReturnType = sqlpp::logic::all<Assert::value xor std::is_same<ReturnType, Assert>::value>;
print_type_on_error<ReturnType>(ExpectedReturnType{}); print_type_on_error<ReturnType>(ExpectedReturnType{});
static_assert(ExpectedReturnType::value, "Unexpected return type"); static_assert(ExpectedReturnType::value, "Unexpected return type");
} }