#include <sqlpp/expressions/between_expression.hpp>
#include <sqlpp/expressions/numeric_constant.hpp>
#include <sqlpp/expressions/string_constant.hpp>
namespace sqlpp{
namespace expressions{
between_expression::between_expression(
expression_shared_ptr test_,
bool not_
)
:
m_test(test_),
m_not(not_)
{};
std::ostream& between_expression::get_expression(std::ostream& out_
, adaptors::database_adaptor_shared_ptr adaptor_) const
{
if (!m_test)
throw exceptions::sqlpp_exception("between: test is null");
if (!m_left)
throw exceptions::sqlpp_exception("between: left is null");
if (!m_right)
throw exceptions::sqlpp_exception("between: right is null");
m_test->get_expression( out_,adaptor_) ;
if (m_not)
out_<<" NOT";
out_<<" BETWEEN ";
m_left->get_expression(out_,adaptor_);
out_<<" AND ";
m_right->get_expression(out_,adaptor_);
return out_;
}
between_expression_shared_ptr between(
expression_shared_ptr test_
)
{
if (!test_)
throw exceptions::sqlpp_exception("between: test is null");
return between_expression_shared_ptr(
new between_expression(
test_,
false
)
);
};
between_expression_shared_ptr not_between(
expression_shared_ptr test_
)
{
if (!test_)
throw exceptions::sqlpp_exception("not_between: test is null");
return between_expression_shared_ptr(
new between_expression(
test_,
true
)
);
};
}; // expressions
};//sqlpp