|
relx 0.1.0
A Modern C++23 Type-Safe SQL Query Builder
|
#include "../query/condition.hpp"#include "../query/date_concepts.hpp"#include "../query/function.hpp"#include "../query/meta.hpp"#include "../query/schema_adapter.hpp"#include "../query/value.hpp"#include "../schema/column.hpp"#include <chrono>#include <iostream>#include <optional>#include <string>#include <type_traits>#include <vector>Go to the source code of this file.
Classes | |
| struct | relx::type_checking::remove_optional< T > |
| Helper to extract the underlying type from optional. More... | |
| struct | relx::type_checking::remove_optional< std::optional< T > > |
| struct | relx::query::meta::is_specialization< T, Template > |
| struct | relx::query::meta::is_specialization< Template< Args... >, Template > |
Namespaces | |
| namespace | relx |
| relx database connection | |
| namespace | relx::type_checking |
| Type compatibility utilities for column comparisons. | |
| namespace | relx::schema |
| namespace | relx::query |
| namespace | relx::query::meta |
Concepts | |
| concept | relx::type_checking::StringCompatible |
| Check if two types are string-compatible. | |
| concept | relx::type_checking::OptionalCompatible |
| Check if optional types are compatible with each other or their underlying types. | |
| concept | relx::type_checking::TypeCompatible |
| Check if column type is compatible with value type. | |
Typedefs | |
| template<typename T > | |
| using | relx::type_checking::remove_optional_t = typename remove_optional< T >::type |
Functions | |
| template<typename TableT , fixed_string Name, typename T , typename... Modifiers, typename ValueType > | |
| auto | relx::schema::operator== (const column< TableT, Name, T, Modifiers... > &col, const ValueType &value) |
| template<typename TableT , fixed_string Name, typename T , typename... Modifiers, typename ValueType > | |
| auto | relx::schema::operator!= (const column< TableT, Name, T, Modifiers... > &col, const ValueType &value) |
| template<typename TableT , fixed_string Name, typename T , typename... Modifiers, typename ValueType > | |
| auto | relx::schema::operator> (const column< TableT, Name, T, Modifiers... > &col, const ValueType &value) |
| template<typename TableT , fixed_string Name, typename T , typename... Modifiers, typename ValueType > | |
| auto | relx::schema::operator< (const column< TableT, Name, T, Modifiers... > &col, const ValueType &value) |
| template<typename TableT , fixed_string Name, typename T , typename... Modifiers, typename ValueType > | |
| auto | relx::schema::operator>= (const column< TableT, Name, T, Modifiers... > &col, const ValueType &value) |
| template<typename TableT , fixed_string Name, typename T , typename... Modifiers, typename ValueType > | |
| auto | relx::schema::operator<= (const column< TableT, Name, T, Modifiers... > &col, const ValueType &value) |
| template<typename TableT1 , fixed_string Name1, typename T1 , typename... Modifiers1, typename TableT2 , fixed_string Name2, typename T2 , typename... Modifiers2> | |
| auto | relx::schema::operator== (const column< TableT1, Name1, T1, Modifiers1... > &col1, const column< TableT2, Name2, T2, Modifiers2... > &col2) |
| template<typename TableT1 , fixed_string Name1, typename T1 , typename... Modifiers1, typename TableT2 , fixed_string Name2, typename T2 , typename... Modifiers2> | |
| auto | relx::schema::operator!= (const column< TableT1, Name1, T1, Modifiers1... > &col1, const column< TableT2, Name2, T2, Modifiers2... > &col2) |
| template<typename TableT1 , fixed_string Name1, typename T1 , typename... Modifiers1, typename TableT2 , fixed_string Name2, typename T2 , typename... Modifiers2> | |
| auto | relx::schema::operator> (const column< TableT1, Name1, T1, Modifiers1... > &col1, const column< TableT2, Name2, T2, Modifiers2... > &col2) |
| template<typename TableT1 , fixed_string Name1, typename T1 , typename... Modifiers1, typename TableT2 , fixed_string Name2, typename T2 , typename... Modifiers2> | |
| auto | relx::schema::operator< (const column< TableT1, Name1, T1, Modifiers1... > &col1, const column< TableT2, Name2, T2, Modifiers2... > &col2) |
| template<typename TableT1 , fixed_string Name1, typename T1 , typename... Modifiers1, typename TableT2 , fixed_string Name2, typename T2 , typename... Modifiers2> | |
| auto | relx::schema::operator>= (const column< TableT1, Name1, T1, Modifiers1... > &col1, const column< TableT2, Name2, T2, Modifiers2... > &col2) |
| template<typename TableT1 , fixed_string Name1, typename T1 , typename... Modifiers1, typename TableT2 , fixed_string Name2, typename T2 , typename... Modifiers2> | |
| auto | relx::schema::operator<= (const column< TableT1, Name1, T1, Modifiers1... > &col1, const column< TableT2, Name2, T2, Modifiers2... > &col2) |
| template<typename TableT , fixed_string Name, typename... Modifiers> | |
| auto | relx::schema::operator! (const column< TableT, Name, bool, Modifiers... > &col) |
| template<typename TableT , fixed_string Name, typename... Modifiers, query::SqlExpr Expr> | |
| auto | relx::schema::operator&& (const column< TableT, Name, bool, Modifiers... > &col, const Expr &expr) |
| template<query::SqlExpr Expr, typename TableT , fixed_string Name, typename... Modifiers> | |
| auto | relx::schema::operator&& (const Expr &expr, const column< TableT, Name, bool, Modifiers... > &col) |
| template<typename TableT , fixed_string Name, typename... Modifiers, query::SqlExpr Expr> | |
| auto | relx::schema::operator|| (const column< TableT, Name, bool, Modifiers... > &col, const Expr &expr) |
| template<query::SqlExpr Expr, typename TableT , fixed_string Name, typename... Modifiers> | |
| auto | relx::schema::operator|| (const Expr &expr, const column< TableT, Name, bool, Modifiers... > &col) |
| template<typename ValueType , typename TableT , fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::schema::operator== (const ValueType &value, const column< TableT, Name, T, Modifiers... > &col) |
| template<typename ValueType , typename TableT , fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::schema::operator!= (const ValueType &value, const column< TableT, Name, T, Modifiers... > &col) |
| template<typename ValueType , typename TableT , fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::schema::operator> (const ValueType &value, const column< TableT, Name, T, Modifiers... > &col) |
| template<typename ValueType , typename TableT , fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::schema::operator< (const ValueType &value, const column< TableT, Name, T, Modifiers... > &col) |
| template<typename ValueType , typename TableT , fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::schema::operator>= (const ValueType &value, const column< TableT, Name, T, Modifiers... > &col) |
| template<typename ValueType , typename TableT , fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::schema::operator<= (const ValueType &value, const column< TableT, Name, T, Modifiers... > &col) |
| template<typename TableT , fixed_string Name, typename... Modifiers, typename Cond > requires query::SqlExpr<Cond> || (!std::same_as<Cond, bool>) | |
| auto | relx::schema::operator&& (const column< TableT, Name, bool, Modifiers... > &col, const Cond &cond) |
| template<typename TableT , fixed_string Name, typename... Modifiers, typename Cond > requires query::SqlExpr<Cond> || (!std::same_as<Cond, bool>) | |
| auto | relx::schema::operator|| (const column< TableT, Name, bool, Modifiers... > &col, const Cond &cond) |
| template<typename Cond , typename TableT , fixed_string Name, typename... Modifiers> requires query::SqlExpr<Cond> || (!std::same_as<Cond, bool>) | |
| auto | relx::schema::operator&& (const Cond &cond, const column< TableT, Name, bool, Modifiers... > &col) |
| template<typename Cond , typename TableT , fixed_string Name, typename... Modifiers> requires query::SqlExpr<Cond> || (!std::same_as<Cond, bool>) | |
| auto | relx::schema::operator|| (const Cond &cond, const column< TableT, Name, bool, Modifiers... > &col) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename ValueT > | |
| auto | relx::query::operator== (const schema::column< TableT, Name, T, Modifiers... > &col, const Value< ValueT > &value) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename ValueT > | |
| auto | relx::query::operator!= (const schema::column< TableT, Name, T, Modifiers... > &col, const Value< ValueT > &value) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename ValueT > | |
| auto | relx::query::operator> (const schema::column< TableT, Name, T, Modifiers... > &col, const Value< ValueT > &value) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename ValueT > | |
| auto | relx::query::operator< (const schema::column< TableT, Name, T, Modifiers... > &col, const Value< ValueT > &value) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename ValueT > | |
| auto | relx::query::operator>= (const schema::column< TableT, Name, T, Modifiers... > &col, const Value< ValueT > &value) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename ValueT > | |
| auto | relx::query::operator<= (const schema::column< TableT, Name, T, Modifiers... > &col, const Value< ValueT > &value) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator== (const schema::column< TableT, Name, T, Modifiers... > &col, LiteralT &&literal) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator!= (const schema::column< TableT, Name, T, Modifiers... > &col, LiteralT &&literal) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator> (const schema::column< TableT, Name, T, Modifiers... > &col, LiteralT &&literal) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator< (const schema::column< TableT, Name, T, Modifiers... > &col, LiteralT &&literal) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator>= (const schema::column< TableT, Name, T, Modifiers... > &col, LiteralT &&literal) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator<= (const schema::column< TableT, Name, T, Modifiers... > &col, LiteralT &&literal) |
| template<typename LiteralT , typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator== (LiteralT &&literal, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename LiteralT , typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator!= (LiteralT &&literal, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename LiteralT , typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator> (LiteralT &&literal, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename LiteralT , typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator< (LiteralT &&literal, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename LiteralT , typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator>= (LiteralT &&literal, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename LiteralT , typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator<= (LiteralT &&literal, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::query::operator== (const schema::column< TableT, Name, T, Modifiers... > &col, const char *str) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::query::operator!= (const schema::column< TableT, Name, T, Modifiers... > &col, const char *str) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::query::operator== (const char *str, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::query::operator!= (const char *str, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::query::like (const schema::column< TableT, Name, T, Modifiers... > &col, std::string pattern) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::query::is_null (const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::query::is_not_null (const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::query::between (const schema::column< TableT, Name, T, Modifiers... > &col, std::string lower, std::string upper) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename ResultT > | |
| auto | relx::query::when (const schema::column< TableT, Name, T, Modifiers... > &condition, const query::Value< ResultT > &result) |
| template<typename CondT , typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::query::when (const CondT &condition, const schema::column< TableT, Name, T, Modifiers... > &result) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> | |
| auto | relx::query::else_ (const schema::column< TableT, Name, T, Modifiers... > &result) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers, typename... Args> | |
| auto | relx::query::select_expr (const schema::column< TableT, Name, T, Modifiers... > &col, Args &&... args) |
| template<typename Column , typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator== (const SchemaColumnAdapter< Column > &col, LiteralT &&literal) |
| template<typename Column , typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator!= (const SchemaColumnAdapter< Column > &col, LiteralT &&literal) |
| template<typename Column , typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator> (const SchemaColumnAdapter< Column > &col, LiteralT &&literal) |
| template<typename Column , typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator< (const SchemaColumnAdapter< Column > &col, LiteralT &&literal) |
| template<typename Column , typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator>= (const SchemaColumnAdapter< Column > &col, LiteralT &&literal) |
| template<typename Column , typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator<= (const SchemaColumnAdapter< Column > &col, LiteralT &&literal) |
| template<typename LiteralT , typename Column > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator== (LiteralT &&literal, const SchemaColumnAdapter< Column > &col) |
| template<typename LiteralT , typename Column > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator!= (LiteralT &&literal, const SchemaColumnAdapter< Column > &col) |
| template<typename LiteralT , typename Column > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator> (LiteralT &&literal, const SchemaColumnAdapter< Column > &col) |
| template<typename LiteralT , typename Column > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator< (LiteralT &&literal, const SchemaColumnAdapter< Column > &col) |
| template<typename LiteralT , typename Column > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator>= (LiteralT &&literal, const SchemaColumnAdapter< Column > &col) |
| template<typename LiteralT , typename Column > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> && (!std::is_same_v<LiteralT, bool>) && (!meta::is_specialization_v<std::remove_cvref_t<LiteralT>, Value>) | |
| auto | relx::query::operator<= (LiteralT &&literal, const SchemaColumnAdapter< Column > &col) |
| template<typename Column > | |
| auto | relx::query::operator== (const SchemaColumnAdapter< Column > &col, const char *str) |
| template<typename Column > | |
| auto | relx::query::operator!= (const SchemaColumnAdapter< Column > &col, const char *str) |
| template<typename Column > | |
| auto | relx::query::operator== (const char *str, const SchemaColumnAdapter< Column > &col) |
| template<typename Column > | |
| auto | relx::query::operator!= (const char *str, const SchemaColumnAdapter< Column > &col) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator== (const AliasedColumn< Expr > &col, LiteralT &&literal) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator== (LiteralT &&literal, const AliasedColumn< Expr > &col) |
| template<SqlExpr Expr> | |
| auto | relx::query::operator== (const AliasedColumn< Expr > &col, const char *str) |
| template<SqlExpr Expr> | |
| auto | relx::query::operator== (const char *str, const AliasedColumn< Expr > &col) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator!= (const AliasedColumn< Expr > &col, LiteralT &&literal) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator!= (LiteralT &&literal, const AliasedColumn< Expr > &col) |
| template<SqlExpr Expr> | |
| auto | relx::query::operator!= (const AliasedColumn< Expr > &col, const char *str) |
| template<SqlExpr Expr> | |
| auto | relx::query::operator!= (const char *str, const AliasedColumn< Expr > &col) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator> (const AliasedColumn< Expr > &col, LiteralT &&literal) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator< (const AliasedColumn< Expr > &col, LiteralT &&literal) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator>= (const AliasedColumn< Expr > &col, LiteralT &&literal) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator<= (const AliasedColumn< Expr > &col, LiteralT &&literal) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator> (LiteralT &&literal, const AliasedColumn< Expr > &col) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator< (LiteralT &&literal, const AliasedColumn< Expr > &col) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator>= (LiteralT &&literal, const AliasedColumn< Expr > &col) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator<= (LiteralT &&literal, const AliasedColumn< Expr > &col) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator== (const FunctionExpr< Expr > &func, LiteralT &&literal) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator== (LiteralT &&literal, const FunctionExpr< Expr > &func) |
| template<SqlExpr Expr> | |
| auto | relx::query::operator== (const FunctionExpr< Expr > &func, const char *str) |
| template<SqlExpr Expr> | |
| auto | relx::query::operator== (const char *str, const FunctionExpr< Expr > &func) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator!= (const FunctionExpr< Expr > &func, LiteralT &&literal) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator!= (LiteralT &&literal, const FunctionExpr< Expr > &func) |
| template<SqlExpr Expr> | |
| auto | relx::query::operator!= (const FunctionExpr< Expr > &func, const char *str) |
| template<SqlExpr Expr> | |
| auto | relx::query::operator!= (const char *str, const FunctionExpr< Expr > &func) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator> (const FunctionExpr< Expr > &func, LiteralT &&literal) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator< (const FunctionExpr< Expr > &func, LiteralT &&literal) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator>= (const FunctionExpr< Expr > &func, LiteralT &&literal) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator<= (const FunctionExpr< Expr > &func, LiteralT &&literal) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator> (LiteralT &&literal, const FunctionExpr< Expr > &func) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator< (LiteralT &&literal, const FunctionExpr< Expr > &func) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator>= (LiteralT &&literal, const FunctionExpr< Expr > &func) |
| template<SqlExpr Expr, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator<= (LiteralT &&literal, const FunctionExpr< Expr > &func) |
| template<SqlExpr First, SqlExpr Second, SqlExpr... Rest, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator== (const CoalesceExpr< First, Second, Rest... > &coalesce, LiteralT &&literal) |
| template<SqlExpr First, SqlExpr Second, SqlExpr... Rest, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator== (LiteralT &&literal, const CoalesceExpr< First, Second, Rest... > &coalesce) |
| template<SqlExpr First, SqlExpr Second, SqlExpr... Rest> | |
| auto | relx::query::operator== (const CoalesceExpr< First, Second, Rest... > &coalesce, const char *str) |
| template<SqlExpr First, SqlExpr Second, SqlExpr... Rest> | |
| auto | relx::query::operator== (const char *str, const CoalesceExpr< First, Second, Rest... > &coalesce) |
| template<SqlExpr First, SqlExpr Second, SqlExpr... Rest, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator!= (const CoalesceExpr< First, Second, Rest... > &coalesce, LiteralT &&literal) |
| template<SqlExpr First, SqlExpr Second, SqlExpr... Rest, typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator!= (LiteralT &&literal, const CoalesceExpr< First, Second, Rest... > &coalesce) |
| template<SqlExpr First, SqlExpr Second, SqlExpr... Rest> | |
| auto | relx::query::operator!= (const CoalesceExpr< First, Second, Rest... > &coalesce, const char *str) |
| template<SqlExpr First, SqlExpr Second, SqlExpr... Rest> | |
| auto | relx::query::operator!= (const char *str, const CoalesceExpr< First, Second, Rest... > &coalesce) |
| template<typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator== (const CountAllExpr &expr, LiteralT &&literal) |
| template<typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator== (LiteralT &&literal, const CountAllExpr &expr) |
| template<typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator!= (const CountAllExpr &expr, LiteralT &&literal) |
| template<typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator!= (LiteralT &&literal, const CountAllExpr &expr) |
| template<typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator> (const CountAllExpr &expr, LiteralT &&literal) |
| template<typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator> (LiteralT &&literal, const CountAllExpr &expr) |
| template<typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator< (const CountAllExpr &expr, LiteralT &&literal) |
| template<typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator< (LiteralT &&literal, const CountAllExpr &expr) |
| template<typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator>= (const CountAllExpr &expr, LiteralT &&literal) |
| template<typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator>= (LiteralT &&literal, const CountAllExpr &expr) |
| template<typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator<= (const CountAllExpr &expr, LiteralT &&literal) |
| template<typename LiteralT > requires std::is_arithmetic_v<std::remove_cvref_t<LiteralT>> || std::is_convertible_v<std::remove_cvref_t<LiteralT>, std::string> | |
| auto | relx::query::operator<= (LiteralT &&literal, const CountAllExpr &expr) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator> (const CurrentDateTimeExpr &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator< (const CurrentDateTimeExpr &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator>= (const CurrentDateTimeExpr &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator<= (const CurrentDateTimeExpr &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator== (const CurrentDateTimeExpr &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator!= (const CurrentDateTimeExpr &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr Expr, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator> (const UnaryDateFunctionExpr< Expr > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr Expr, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator< (const UnaryDateFunctionExpr< Expr > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr Expr, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator>= (const UnaryDateFunctionExpr< Expr > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr Expr, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator<= (const UnaryDateFunctionExpr< Expr > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr Expr, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator== (const UnaryDateFunctionExpr< Expr > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr Expr, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator!= (const UnaryDateFunctionExpr< Expr > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr Left, SqlExpr Right, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator> (const BinaryDateFunctionExpr< Left, Right > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr Left, SqlExpr Right, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator< (const BinaryDateFunctionExpr< Left, Right > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr Left, SqlExpr Right, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator>= (const BinaryDateFunctionExpr< Left, Right > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr Left, SqlExpr Right, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator<= (const BinaryDateFunctionExpr< Left, Right > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr Left, SqlExpr Right, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator== (const BinaryDateFunctionExpr< Left, Right > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr Left, SqlExpr Right, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator!= (const BinaryDateFunctionExpr< Left, Right > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr DateExpr, SqlExpr IntervalExpr, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator> (const DateArithmeticExpr< DateExpr, IntervalExpr > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr DateExpr, SqlExpr IntervalExpr, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator< (const DateArithmeticExpr< DateExpr, IntervalExpr > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr DateExpr, SqlExpr IntervalExpr, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator>= (const DateArithmeticExpr< DateExpr, IntervalExpr > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr DateExpr, SqlExpr IntervalExpr, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator<= (const DateArithmeticExpr< DateExpr, IntervalExpr > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr DateExpr, SqlExpr IntervalExpr, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator== (const DateArithmeticExpr< DateExpr, IntervalExpr > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
| template<SqlExpr DateExpr, SqlExpr IntervalExpr, typename TableT , schema::fixed_string Name, typename T , typename... Modifiers> requires date_checking::DateTimeType<T> | |
| auto | relx::query::operator!= (const DateArithmeticExpr< DateExpr, IntervalExpr > &expr, const schema::column< TableT, Name, T, Modifiers... > &col) |
Variables | |
| constexpr std::string_view | relx::type_checking::type_error_message |
| Constant error message for type mismatches. | |
| template<typename T , template< typename... > class Template> | |
| constexpr bool | relx::query::meta::is_specialization_v = is_specialization<T, Template>::value |