relx 0.1.0
A Modern C++23 Type-Safe SQL Query Builder
Loading...
Searching...
No Matches
condition.hpp File Reference
#include "column_expression.hpp"
#include "core.hpp"
#include "schema_adapter.hpp"
#include <memory>
#include <sstream>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

class  relx::query::BinaryCondition< Left, Right >
 Generic binary condition expression. More...
 
class  relx::query::TypedInCondition< Expr, Range >
 IN condition (col IN (values)) with type checking. More...
 
class  relx::query::InCondition< Expr, Range >
 Original IN condition for backward compatibility. More...
 
class  relx::query::LikeCondition< Expr >
 LIKE condition (col LIKE pattern) More...
 
class  relx::query::BetweenCondition< Expr >
 BETWEEN condition (col BETWEEN lower AND upper) More...
 
class  relx::query::IsNullCondition< Expr >
 IS NULL condition. More...
 
class  relx::query::IsNotNullCondition< Expr >
 IS NOT NULL condition. More...
 
class  relx::query::NotCondition< Expr >
 Negation condition (NOT expr) More...
 

Namespaces

namespace  relx
 relx database connection
 
namespace  relx::query
 

Functions

template<SqlExpr Left, SqlExpr Right>
auto relx::query::operator== (Left left, Right right)
 Equality condition (col = value)
 
template<SqlExpr Left, SqlExpr Right>
auto relx::query::operator!= (Left left, Right right)
 Inequality condition (col != value)
 
template<SqlExpr Left, SqlExpr Right>
auto relx::query::operator> (Left left, Right right)
 Greater than condition (col > value)
 
template<SqlExpr Left, SqlExpr Right>
auto relx::query::operator< (Left left, Right right)
 Less than condition (col < value)
 
template<SqlExpr Left, SqlExpr Right>
auto relx::query::operator>= (Left left, Right right)
 Greater than or equal condition (col >= value)
 
template<SqlExpr Left, SqlExpr Right>
auto relx::query::operator<= (Left left, Right right)
 Less than or equal condition (col <= value)
 
template<SqlExpr Left, SqlExpr Right>
auto relx::query::operator&& (Left left, Right right)
 Logical AND condition.
 
template<SqlExpr Left, SqlExpr Right>
auto relx::query::operator|| (Left left, Right right)
 Logical OR condition.
 
template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, std::ranges::range Range>
requires std::convertible_to<std::ranges::range_value_t<Range>, std::string>
auto relx::query::in (const schema::column< TableT, Name, T, Modifiers... > &col, Range values)
 Create an IN condition with type checking for columns.
 
template<SqlExpr Expr, std::ranges::range Range>
requires std::convertible_to<std::ranges::range_value_t<Range>, std::string>
auto relx::query::in (Expr expr, Range values)
 Create an IN condition for expressions.
 
template<SqlExpr Expr>
auto relx::query::like (Expr expr, std::string pattern)
 Create a LIKE condition.
 
template<SqlExpr Expr>
auto relx::query::between (Expr expr, std::string lower, std::string upper)
 Create a BETWEEN condition.
 
template<SqlExpr Expr>
auto relx::query::is_null (Expr expr)
 Create an IS NULL condition.
 
template<SqlExpr Expr>
auto relx::query::is_not_null (Expr expr)
 Create an IS NOT NULL condition.
 
template<SqlExpr Expr>
auto relx::query::operator! (Expr expr)
 Logical NOT operator.