mirror of
https://github.com/rbock/sqlpp11.git
synced 2026-01-07 13:41:11 -06:00
run_check and prepare_check now contain the serialize check
This commit is contained in:
@@ -321,36 +321,6 @@ namespace sqlpp
|
||||
template <typename T>
|
||||
using consistency_check_t = typename consistency_check<T>::type;
|
||||
|
||||
template <typename T, typename Enable = void>
|
||||
struct run_check
|
||||
{
|
||||
using type = assert_run_statement_or_prepared_t;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
struct run_check<T, typename std::enable_if<is_statement_t<T>::value or is_prepared_statement_t<T>::value>::type>
|
||||
{
|
||||
using type = typename T::_run_check;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
using run_check_t = typename run_check<T>::type;
|
||||
|
||||
template <typename T, typename Enable = void>
|
||||
struct prepare_check
|
||||
{
|
||||
using type = assert_prepare_statement_t;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
struct prepare_check<T, typename std::enable_if<is_statement_t<T>::value>::type>
|
||||
{
|
||||
using type = typename T::_prepare_check;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
using prepare_check_t = typename prepare_check<T>::type;
|
||||
|
||||
template <typename Context, typename T, typename Enable = void>
|
||||
struct serialize_check
|
||||
{
|
||||
@@ -366,6 +336,40 @@ namespace sqlpp
|
||||
template <typename Context, typename T>
|
||||
using serialize_check_t = typename serialize_check<Context, T>::type;
|
||||
|
||||
template <typename Context, typename T, typename Enable = void>
|
||||
struct run_check
|
||||
{
|
||||
using type = assert_run_statement_or_prepared_t;
|
||||
};
|
||||
|
||||
template <typename Context, typename T>
|
||||
struct run_check<Context,
|
||||
T,
|
||||
typename std::enable_if<is_statement_t<T>::value or is_prepared_statement_t<T>::value>::type>
|
||||
{
|
||||
using type =
|
||||
detail::get_first_if<is_inconsistent_t, consistent_t, typename T::_run_check, serialize_check_t<Context, T>>;
|
||||
};
|
||||
|
||||
template <typename Context, typename T>
|
||||
using run_check_t = typename run_check<Context, T>::type;
|
||||
|
||||
template <typename Context, typename T, typename Enable = void>
|
||||
struct prepare_check
|
||||
{
|
||||
using type = assert_prepare_statement_t;
|
||||
};
|
||||
|
||||
template <typename Context, typename T>
|
||||
struct prepare_check<Context, T, typename std::enable_if<is_statement_t<T>::value>::type>
|
||||
{
|
||||
using type = detail::
|
||||
get_first_if<is_inconsistent_t, consistent_t, typename T::_prepare_check, serialize_check_t<Context, T>>;
|
||||
};
|
||||
|
||||
template <typename Context, typename T>
|
||||
using prepare_check_t = typename prepare_check<Context, T>::type;
|
||||
|
||||
template <typename Statement, typename Enable = void>
|
||||
struct has_result_row_impl
|
||||
{
|
||||
|
||||
@@ -115,16 +115,13 @@ struct MockDbT : public sqlpp::connection
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
auto _run(const T& t, const std::false_type&) -> decltype(t._run(*this));
|
||||
auto _run(const T& t, const std::false_type&) -> void;
|
||||
|
||||
template <typename T>
|
||||
auto operator()(const T& t) -> decltype(t._run(*this))
|
||||
auto operator()(const T& t) -> decltype(this->_run(t, typename sqlpp::run_check_t<_serializer_context_t, T>::type{}))
|
||||
{
|
||||
sqlpp::run_check_t<T>::_();
|
||||
sqlpp::serialize_check_t<_serializer_context_t, T>::_();
|
||||
using _ok = sqlpp::logic::all_t<sqlpp::run_check_t<T>::type::value,
|
||||
sqlpp::serialize_check_t<_serializer_context_t, T>::type::value>;
|
||||
return _run(t, _ok{});
|
||||
sqlpp::run_check_t<_serializer_context_t, T>::_();
|
||||
return _run(t, typename sqlpp::run_check_t<_serializer_context_t, T>::type{});
|
||||
}
|
||||
|
||||
size_t execute(const std::string&)
|
||||
@@ -189,16 +186,14 @@ struct MockDbT : public sqlpp::connection
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
auto _prepare(const T& t, const std::false_type&) -> decltype(t._prepare(*this));
|
||||
auto _prepare(const T& t, const std::false_type&) -> void;
|
||||
|
||||
template <typename T>
|
||||
auto prepare(const T& t) -> decltype(t._prepare(*this))
|
||||
auto prepare(const T& t)
|
||||
-> decltype(this->_prepare(t, typename sqlpp::prepare_check_t<_serializer_context_t, T>::type{}))
|
||||
{
|
||||
sqlpp::prepare_check_t<T>::_();
|
||||
sqlpp::serialize_check_t<_serializer_context_t, T>::_();
|
||||
using _ok = sqlpp::logic::all_t<sqlpp::prepare_check_t<T>::type::value,
|
||||
sqlpp::serialize_check_t<_serializer_context_t, T>::type::value>;
|
||||
return _prepare(t, _ok{});
|
||||
sqlpp::prepare_check_t<_serializer_context_t, T>::_();
|
||||
return _prepare(t, typename sqlpp::prepare_check_t<_serializer_context_t, T>::type{});
|
||||
}
|
||||
|
||||
template <typename Statement>
|
||||
|
||||
Reference in New Issue
Block a user