LeechCraft 0.6.70-16373-g319c272718
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
LC::Util::oral::detail Namespace Reference

Namespaces

namespace  PostgreSQL
 
namespace  SQLite
 

Classes

struct  AdaptDelete
 
class  AdaptInsert
 
class  AdaptUpdate
 
struct  AggregateType
 
class  AssignList
 
struct  CountAll
 
class  DeleteByFieldsWrapper
 
struct  DetectShift
 
struct  DetectShift< Seq, Seq >
 
struct  DetectShift< Seq, std::tuple< Args... > >
 
class  ExprTree
 
class  ExprTree< ExprType::ConstTrue, void, void >
 
class  ExprTree< ExprType::LeafData, T, void >
 
class  ExprTree< ExprType::LeafStaticPlaceholder, MemberPtrs< Ptr >, void >
 
struct  GroupBy
 
struct  GroupNone
 
struct  HandleAggSelector
 
struct  HandleSelector
 
struct  HandleSelector< T, AggregateType< AggregateFunction::Count, CountAllPtr > >
 
struct  HandleSelector< T, AggregateType< AggregateFunction::Count, Ptr > >
 
struct  HandleSelector< T, AggregateType< AggregateFunction::Max, Ptr > >
 
struct  HandleSelector< T, AggregateType< AggregateFunction::Min, Ptr > >
 
struct  HandleSelector< T, MemberPtrs< Ptrs... > >
 
struct  HandleSelector< T, SelectorUnion< L, R > >
 
struct  HandleSelector< T, SelectWhole >
 
struct  HandleSelectorResult
 
struct  HSBaseAll
 
struct  HSBaseFirst
 
struct  InfixBinary
 
struct  InfixBinaryProxy
 
struct  IsExprTree
 
struct  IsExprTree< ExprTree< Type, L, R > >
 
struct  IsPKey
 
struct  IsPKey< PKey< U, Tags... > >
 
struct  IsReferencesTarget
 
struct  IsReferencesTarget< PKey< U, Tags... > >
 
struct  IsReferencesTarget< Unique< U > >
 
struct  IsSelector
 
struct  IsSelector< AggregateType< Fun, Ptr > >
 
struct  IsSelector< MemberPtrs< Ptrs... > >
 
struct  IsSelector< SelectorUnion< L, R > >
 
struct  IsSelector< SelectWhole >
 
struct  LimitNone
 
struct  MemberPtrs
 
struct  OffsetNone
 
struct  OrderBy
 
struct  OrderNone
 
struct  SelectorUnion
 
struct  SelectWhole
 
class  SelectWrapper
 
class  SelectWrapperCommon
 
struct  WrapDirect
 

Concepts

concept  TypeNameCustomized
 
concept  BaseTypeCustomized
 
concept  HasPKey
 

Typedefs

template<typename Seq, int Idx>
using ValueAtC_t = std::decay_t<decltype (Get<Idx> (std::declval<Seq> ()))>
 
template<typename T>
using UnwrapIndirect_t
 
template<typename L, typename R>
using EnableRelOp_t = std::enable_if_t<EitherIsExprTree<L, R> ()>
 

Enumerations

enum class  ExprType {
  ConstTrue ,
  LeafStaticPlaceholder ,
  LeafData ,
  Greater ,
  Less ,
  Equal ,
  Geq ,
  Leq ,
  Neq ,
  Like ,
  And ,
  Or
}
 
enum class  AggregateFunction {
  Count ,
  Min ,
  Max
}
 
enum class  SelectBehaviour {
  Some ,
  One
}
 
enum  ResultBehaviour {
  All ,
  First
}
 

Functions

bool MatchesSchema (const QString &baseName, const QString &schema, QSqlDatabase &db)
 
template<size_t Idx, typename Seq>
constexpr decltype(auto) Get (const Seq &seq)
 
template<size_t Idx, typename Seq>
constexpr decltype(auto) Get (Seq &seq)
 
template<typename T, CtString str>
consteval auto MorphFieldName ()
 
template<typename Seq, int Idx>
consteval auto GetFieldName ()
 
template<auto Ptr>
constexpr size_t FieldIndex () noexcept
 
template<auto Ptr>
constexpr auto GetFieldNamePtr () noexcept
 
template<auto Ptr>
constexpr auto GetQualifiedFieldNamePtr () noexcept
 
template<typename T>
QVariant ToVariantF (const T &t) noexcept
 
template<size_t Ix, typename Seq>
void BindAtIndex (const Seq &seq, QSqlQuery &query, bool bindPrimaryKey)
 
template<typename Seq>
auto DoInsert (const Seq &seq, QSqlQuery &insertQuery, bool bindPrimaryKey)
 
template<typename Seq>
consteval int PKeyIndexUnsafe ()
 
template<typename Seq>
consteval int PKeyIndex ()
 
template<typename Seq>
constexpr auto HasAutogenPKey () noexcept
 
template<typename Seq>
constexpr auto ExtractConflictingFields (InsertAction::Replace::PKeyType)
 
template<typename Seq, auto... Ptrs>
constexpr auto ExtractConflictingFields (InsertAction::Replace::FieldsType< Ptrs... >)
 
template<typename T, size_t... Indices>
InitializeFromQuery (const QSqlQuery &q, std::index_sequence< Indices... >, int startIdx) noexcept
 
template<ExprType Type>
constexpr auto TypeToSql () noexcept
 
constexpr bool IsRelational (ExprType type) noexcept
 
template<ExprType Type, typename Seq, typename L, typename R>
constexpr bool Typecheck ()
 
template<typename T>
constexpr auto AsLeafData (const T &node) noexcept
 
template<ExprType Type, typename L, typename R>
auto MakeExprTree (const L &left, const R &right) noexcept
 
template<typename L, typename R>
constexpr bool EitherIsExprTree () noexcept
 
template<typename L, typename R, typename = EnableRelOp_t<L, R>>
auto operator< (const L &left, const R &right) noexcept
 
template<typename L, typename R, typename = EnableRelOp_t<L, R>>
auto operator> (const L &left, const R &right) noexcept
 
template<typename L, typename R, typename = EnableRelOp_t<L, R>>
auto operator== (const L &left, const R &right) noexcept
 
template<typename L, typename R, typename = EnableRelOp_t<L, R>>
auto operator!= (const L &left, const R &right) noexcept
 
template<typename L, ExprType Op>
auto operator| (const L &left, InfixBinary< Op >) noexcept
 
template<typename L, ExprType Op, typename R>
auto operator| (const InfixBinaryProxy< L, Op > &left, const R &right) noexcept
 
template<typename L, typename R, typename = EnableRelOp_t<L, R>>
auto operator&& (const L &left, const R &right) noexcept
 
template<typename L, typename R, typename = EnableRelOp_t<L, R>>
auto operator|| (const L &left, const R &right) noexcept
 
template<CtString BindPrefix, typename Seq, typename Tree>
constexpr auto ExprTreeToSql () noexcept
 
template<CtString BindPrefix, typename Seq, typename Tree>
void BindExprTree (const Tree &tree, QSqlQuery &query)
 
template<typename L, typename R, typename = std::enable_if_t<IsSelector<L> {} && IsSelector<R> {}>>
SelectorUnion< L, R > operator+ (L, R) noexcept
 
template<auto Ptr>
auto MemberFromVariant (const QVariant &var) noexcept
 
template<auto Ptr>
auto MakeIndexedQueryHandler (const QSqlQuery &q, int startIdx=0) noexcept
 
template<auto... Ptrs>
auto MakeIndexedQueryHandler (MemberPtrs< Ptrs... >, const QSqlQuery &q, int startIdx) noexcept
 
template<size_t RepIdx, size_t TupIdx, typename Tuple, typename NewType>
constexpr decltype(auto) GetReplaceTupleElem (Tuple &&tuple, NewType &&arg) noexcept
 
template<size_t RepIdx, typename NewType, typename Tuple, size_t... TupIdxs>
constexpr auto ReplaceTupleElemImpl (Tuple &&tuple, NewType &&arg, std::index_sequence< TupIdxs... >) noexcept
 
template<size_t RepIdx, typename NewType, typename... TupleArgs>
constexpr auto ReplaceTupleElem (std::tuple< TupleArgs... > &&tuple, NewType &&arg) noexcept
 
template<typename... LArgs, typename... RArgs>
auto Combine (std::tuple< LArgs... > &&left, std::tuple< RArgs... > &&right) noexcept
 
template<typename... LArgs, typename R>
auto Combine (std::tuple< LArgs... > &&left, const R &right) noexcept
 
template<typename L, typename... RArgs>
auto Combine (const L &left, std::tuple< RArgs... > &&right) noexcept
 
template<typename L, typename R>
auto Combine (const L &left, const R &right) noexcept
 
template<ResultBehaviour ResultBehaviour, typename ResList>
decltype(auto) HandleResultBehaviour (ResList &&list) noexcept
 
template<typename F, typename R>
 HandleSelectorResult (QString, F, R) -> HandleSelectorResult< F, R >
 
template<typename L, typename O>
constexpr auto LimitOffsetToString () noexcept
 
template<typename L, typename O>
void BindLimitOffset (QSqlQuery &query, L limit, O offset) noexcept
 
constexpr auto CombineBehaviour (ResultBehaviour l, ResultBehaviour r) noexcept
 
template<typename T, size_t... Fields>
constexpr auto ExtractConstraintFields (UniqueSubset< Fields... >)
 
template<typename T, size_t... Fields>
constexpr auto ExtractConstraintFields (PrimaryKey< Fields... >)
 
template<typename T>
constexpr auto GetConstraintsStrings () noexcept
 
template<typename ImplFactory, typename T, size_t... Indices>
constexpr auto GetTypes (std::index_sequence< Indices... >) noexcept
 
template<auto Name, typename ImplFactory, typename T>
constexpr auto AdaptCreateTableNamed () noexcept
 
template<typename ImplFactory, typename T>
constexpr auto AdaptCreateTable () noexcept
 

Variables

template<typename S>
constexpr auto SeqIndices = std::make_index_sequence<SeqSize<S>> {}
 
template<typename S>
constexpr auto FieldNames
 
template<typename S>
constexpr auto BoundFieldNames
 
template<typename S>
constexpr auto QualifiedFieldNames
 
template<typename Seq>
constexpr int PKeyIndex_v = PKeyIndex<Seq> ()
 
constexpr auto ConstTrueTree_v = ExprTree<ExprType::ConstTrue> {}
 
constexpr CountAllCountAllPtr = nullptr
 

Typedef Documentation

◆ EnableRelOp_t

template<typename L, typename R>
using LC::Util::oral::detail::EnableRelOp_t = std::enable_if_t<EitherIsExprTree<L, R> ()>

Definition at line 822 of file oral.h.

◆ UnwrapIndirect_t

template<typename T>
using LC::Util::oral::detail::UnwrapIndirect_t
Initial value:
typename std::conditional_t<IsIndirect<T> {},
T,
WrapDirect<T>>::value_type

Definition at line 580 of file oral.h.

◆ ValueAtC_t

template<typename Seq, int Idx>
using LC::Util::oral::detail::ValueAtC_t = std::decay_t<decltype (Get<Idx> (std::declval<Seq> ()))>

Definition at line 316 of file oral.h.

Enumeration Type Documentation

◆ AggregateFunction

Enumerator
Count 
Min 
Max 

Definition at line 901 of file oral.h.

◆ ExprType

Enumerator
ConstTrue 
LeafStaticPlaceholder 
LeafData 
Greater 
Less 
Equal 
Geq 
Leq 
Neq 
Like 
And 
Or 

Definition at line 517 of file oral.h.

◆ ResultBehaviour

Enumerator
All 
First 

Definition at line 1091 of file oral.h.

◆ SelectBehaviour

Enumerator
Some 
One 

Definition at line 1016 of file oral.h.

Function Documentation

◆ AdaptCreateTable()

template<typename ImplFactory, typename T>
auto LC::Util::oral::detail::AdaptCreateTable ( )
constexprnoexcept

Definition at line 1617 of file oral.h.

References AdaptCreateTableNamed().

Referenced by LC::Util::oral::Adapt().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AdaptCreateTableNamed()

template<auto Name, typename ImplFactory, typename T>
auto LC::Util::oral::detail::AdaptCreateTableNamed ( )
constexprnoexcept

Definition at line 1594 of file oral.h.

References FieldNames, GetConstraintsStrings(), GetTypes(), LC::Util::JoinTup(), SeqIndices, and LC::Util::ZipWith().

Referenced by AdaptCreateTable().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ AsLeafData()

template<typename T>
auto LC::Util::oral::detail::AsLeafData ( const T & node)
constexprnoexcept

Definition at line 722 of file oral.h.

Referenced by MakeExprTree(), and LC::Util::oral::detail::ExprTree< ExprType::LeafStaticPlaceholder, MemberPtrs< Ptr >, void >::operator=().

+ Here is the caller graph for this function:

◆ BindAtIndex()

template<size_t Ix, typename Seq>
void LC::Util::oral::detail::BindAtIndex ( const Seq & seq,
QSqlQuery & query,
bool bindPrimaryKey )

Definition at line 331 of file oral.h.

References BoundFieldNames, Get(), LC::Util::ToString(), and ToVariantF().

Referenced by DoInsert().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ BindExprTree()

template<CtString BindPrefix, typename Seq, typename Tree>
void LC::Util::oral::detail::BindExprTree ( const Tree & tree,
QSqlQuery & query )

Definition at line 896 of file oral.h.

Referenced by LC::Util::oral::detail::AdaptUpdate< T >::operator()(), and LC::Util::oral::detail::DeleteByFieldsWrapper< T >::operator()().

+ Here is the caller graph for this function:

◆ BindLimitOffset()

template<typename L, typename O>
void LC::Util::oral::detail::BindLimitOffset ( QSqlQuery & query,
L limit,
O offset )
noexcept

Definition at line 1164 of file oral.h.

◆ Combine() [1/4]

template<typename L, typename R>
auto LC::Util::oral::detail::Combine ( const L & left,
const R & right )
noexcept

Definition at line 1086 of file oral.h.

◆ Combine() [2/4]

template<typename L, typename... RArgs>
auto LC::Util::oral::detail::Combine ( const L & left,
std::tuple< RArgs... > && right )
noexcept

Definition at line 1080 of file oral.h.

◆ Combine() [3/4]

template<typename... LArgs, typename R>
auto LC::Util::oral::detail::Combine ( std::tuple< LArgs... > && left,
const R & right )
noexcept

Definition at line 1074 of file oral.h.

◆ Combine() [4/4]

template<typename... LArgs, typename... RArgs>
auto LC::Util::oral::detail::Combine ( std::tuple< LArgs... > && left,
std::tuple< RArgs... > && right )
noexcept

Definition at line 1068 of file oral.h.

Referenced by LC::Util::oral::detail::HandleSelector< T, SelectorUnion< L, R > >::Initializer().

+ Here is the caller graph for this function:

◆ CombineBehaviour()

auto LC::Util::oral::detail::CombineBehaviour ( ResultBehaviour l,
ResultBehaviour r )
constexprnoexcept

Definition at line 1247 of file oral.h.

References All, and First.

◆ DoInsert()

template<typename Seq>
auto LC::Util::oral::detail::DoInsert ( const Seq & seq,
QSqlQuery & insertQuery,
bool bindPrimaryKey )

Definition at line 338 of file oral.h.

References BindAtIndex(), LC::Util::DBLock::DumpError(), and SeqIndices.

Referenced by LC::Util::oral::detail::AdaptUpdate< T >::operator()().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ EitherIsExprTree()

template<typename L, typename R>
bool LC::Util::oral::detail::EitherIsExprTree ( )
constexprnoexcept

Definition at line 812 of file oral.h.

◆ ExprTreeToSql()

template<CtString BindPrefix, typename Seq, typename Tree>
auto LC::Util::oral::detail::ExprTreeToSql ( )
constexprnoexcept

Definition at line 890 of file oral.h.

Referenced by LC::Util::oral::detail::AdaptUpdate< T >::operator()(), and LC::Util::oral::detail::DeleteByFieldsWrapper< T >::operator()().

+ Here is the caller graph for this function:

◆ ExtractConflictingFields() [1/2]

template<typename Seq, auto... Ptrs>
auto LC::Util::oral::detail::ExtractConflictingFields ( InsertAction::Replace::FieldsType< Ptrs... > )
constexpr

Definition at line 395 of file oral.h.

References FieldNames.

◆ ExtractConflictingFields() [2/2]

template<typename Seq>
auto LC::Util::oral::detail::ExtractConflictingFields ( InsertAction::Replace::PKeyType )
constexpr

Definition at line 389 of file oral.h.

References GetFieldName().

+ Here is the call graph for this function:

◆ ExtractConstraintFields() [1/2]

template<typename T, size_t... Fields>
auto LC::Util::oral::detail::ExtractConstraintFields ( PrimaryKey< Fields... > )
constexpr

Definition at line 1568 of file oral.h.

References FieldNames, and LC::Util::Join().

+ Here is the call graph for this function:

◆ ExtractConstraintFields() [2/2]

template<typename T, size_t... Fields>
auto LC::Util::oral::detail::ExtractConstraintFields ( UniqueSubset< Fields... > )
constexpr

Definition at line 1562 of file oral.h.

References FieldNames, and LC::Util::Join().

Referenced by GetConstraintsStrings().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ FieldIndex()

template<auto Ptr>
size_t LC::Util::oral::detail::FieldIndex ( )
constexprnoexcept

Definition at line 189 of file oral.h.

References FieldIndex().

Referenced by FieldIndex().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Get() [1/2]

template<size_t Idx, typename Seq>
decltype(auto) LC::Util::oral::detail::Get ( const Seq & seq)
constexpr

Definition at line 138 of file oral.h.

References Get().

Referenced by BindAtIndex(), Get(), Get(), GetFieldName(), InitializeFromQuery(), and LC::Util::oral::detail::AdaptDelete< Seq >::operator()().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Get() [2/2]

template<size_t Idx, typename Seq>
decltype(auto) LC::Util::oral::detail::Get ( Seq & seq)
constexpr

Definition at line 144 of file oral.h.

References Get().

+ Here is the call graph for this function:

◆ GetConstraintsStrings()

template<typename T>
auto LC::Util::oral::detail::GetConstraintsStrings ( )
constexprnoexcept

Definition at line 1574 of file oral.h.

References ExtractConstraintFields().

Referenced by AdaptCreateTableNamed().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetFieldName()

template<typename Seq, int Idx>
auto LC::Util::oral::detail::GetFieldName ( )
consteval

Definition at line 161 of file oral.h.

References Get(), and MorphFieldName().

Referenced by ExtractConflictingFields(), GetFieldNamePtr(), GetQualifiedFieldNamePtr(), and LC::Util::oral::detail::ExprTree< ExprType::LeafStaticPlaceholder, MemberPtrs< Ptr >, void >::ToSql().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetFieldNamePtr()

template<auto Ptr>
auto LC::Util::oral::detail::GetFieldNamePtr ( )
constexprnoexcept

Definition at line 196 of file oral.h.

References GetFieldName().

Referenced by LC::Util::oral::detail::ExprTree< ExprType::LeafStaticPlaceholder, MemberPtrs< Ptr >, void >::GetFieldName(), and LC::Util::oral::Type2Name< ImplFactory, References< Ptr > >::operator()().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetQualifiedFieldNamePtr()

template<auto Ptr>
auto LC::Util::oral::detail::GetQualifiedFieldNamePtr ( )
constexprnoexcept

Definition at line 203 of file oral.h.

References GetFieldName().

+ Here is the call graph for this function:

◆ GetReplaceTupleElem()

template<size_t RepIdx, size_t TupIdx, typename Tuple, typename NewType>
decltype(auto) LC::Util::oral::detail::GetReplaceTupleElem ( Tuple && tuple,
NewType && arg )
constexprnoexcept

Definition at line 1024 of file oral.h.

References GetReplaceTupleElem().

Referenced by GetReplaceTupleElem(), and ReplaceTupleElemImpl().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ GetTypes()

template<typename ImplFactory, typename T, size_t... Indices>
auto LC::Util::oral::detail::GetTypes ( std::index_sequence< Indices... > )
constexprnoexcept

Definition at line 1588 of file oral.h.

Referenced by AdaptCreateTableNamed().

+ Here is the caller graph for this function:

◆ HandleResultBehaviour()

template<ResultBehaviour ResultBehaviour, typename ResList>
decltype(auto) LC::Util::oral::detail::HandleResultBehaviour ( ResList && list)
noexcept

Definition at line 1098 of file oral.h.

References All, First, and HandleResultBehaviour().

Referenced by HandleResultBehaviour().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ HandleSelectorResult()

template<typename F, typename R>
LC::Util::oral::detail::HandleSelectorResult ( QString ,
F ,
R  ) -> HandleSelectorResult< F, R >

◆ HasAutogenPKey()

template<typename Seq>
auto LC::Util::oral::detail::HasAutogenPKey ( )
constexprnoexcept

Definition at line 380 of file oral.h.

References LC::Util::HasType(), and PKeyIndex_v.

+ Here is the call graph for this function:

◆ InitializeFromQuery()

template<typename T, size_t... Indices>
T LC::Util::oral::detail::InitializeFromQuery ( const QSqlQuery & q,
std::index_sequence< Indices... > ,
int startIdx )
noexcept

Definition at line 505 of file oral.h.

References Get().

Referenced by LC::Util::oral::detail::HandleSelector< T, SelectWhole >::Initializer().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsRelational()

bool LC::Util::oral::detail::IsRelational ( ExprType type)
constexprnoexcept

Definition at line 562 of file oral.h.

References Equal, Geq, Greater, Leq, Less, Like, and Neq.

Referenced by Typecheck().

+ Here is the caller graph for this function:

◆ LimitOffsetToString()

template<typename L, typename O>
auto LC::Util::oral::detail::LimitOffsetToString ( )
constexprnoexcept

Definition at line 1145 of file oral.h.

◆ MakeExprTree()

template<ExprType Type, typename L, typename R>
auto LC::Util::oral::detail::MakeExprTree ( const L & left,
const R & right )
noexcept

Definition at line 804 of file oral.h.

References AsLeafData().

Referenced by operator!=(), operator&&(), operator<(), operator==(), operator>(), operator|(), and operator||().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MakeIndexedQueryHandler() [1/2]

template<auto Ptr>
auto LC::Util::oral::detail::MakeIndexedQueryHandler ( const QSqlQuery & q,
int startIdx = 0 )
noexcept

Definition at line 999 of file oral.h.

References MemberFromVariant().

Referenced by LC::Util::oral::detail::HandleAggSelector< Aggregate, T, Ptr >::Initializer(), LC::Util::oral::detail::HandleSelector< T, MemberPtrs< Ptrs... > >::Initializer(), and MakeIndexedQueryHandler().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MakeIndexedQueryHandler() [2/2]

template<auto... Ptrs>
auto LC::Util::oral::detail::MakeIndexedQueryHandler ( MemberPtrs< Ptrs... > ,
const QSqlQuery & q,
int startIdx )
noexcept

Definition at line 1005 of file oral.h.

References MakeIndexedQueryHandler(), and MemberFromVariant().

+ Here is the call graph for this function:

◆ MatchesSchema()

bool LC::Util::oral::detail::MatchesSchema ( const QString & baseName,
const QString & schema,
QSqlDatabase & db )

Definition at line 18 of file migrate.h.

References LC::Util::RunTextQuery().

Referenced by LC::Util::oral::Migrate().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MemberFromVariant()

template<auto Ptr>
auto LC::Util::oral::detail::MemberFromVariant ( const QVariant & var)
noexcept

Definition at line 993 of file oral.h.

Referenced by MakeIndexedQueryHandler(), and MakeIndexedQueryHandler().

+ Here is the caller graph for this function:

◆ MorphFieldName()

template<typename T, CtString str>
auto LC::Util::oral::detail::MorphFieldName ( )
consteval

Definition at line 150 of file oral.h.

Referenced by GetFieldName().

+ Here is the caller graph for this function:

◆ operator!=()

template<typename L, typename R, typename = EnableRelOp_t<L, R>>
auto LC::Util::oral::detail::operator!= ( const L & left,
const R & right )
noexcept

Definition at line 843 of file oral.h.

References MakeExprTree().

+ Here is the call graph for this function:

◆ operator&&()

template<typename L, typename R, typename = EnableRelOp_t<L, R>>
auto LC::Util::oral::detail::operator&& ( const L & left,
const R & right )
noexcept

Definition at line 878 of file oral.h.

References MakeExprTree().

+ Here is the call graph for this function:

◆ operator+()

template<typename L, typename R, typename = std::enable_if_t<IsSelector<L> {} && IsSelector<R> {}>>
SelectorUnion< L, R > LC::Util::oral::detail::operator+ ( L ,
R  )
noexcept

Definition at line 942 of file oral.h.

◆ operator<()

template<typename L, typename R, typename = EnableRelOp_t<L, R>>
auto LC::Util::oral::detail::operator< ( const L & left,
const R & right )
noexcept

Definition at line 825 of file oral.h.

References MakeExprTree().

+ Here is the call graph for this function:

◆ operator==()

template<typename L, typename R, typename = EnableRelOp_t<L, R>>
auto LC::Util::oral::detail::operator== ( const L & left,
const R & right )
noexcept

Definition at line 837 of file oral.h.

References MakeExprTree().

+ Here is the call graph for this function:

◆ operator>()

template<typename L, typename R, typename = EnableRelOp_t<L, R>>
auto LC::Util::oral::detail::operator> ( const L & left,
const R & right )
noexcept

Definition at line 831 of file oral.h.

References MakeExprTree().

+ Here is the call graph for this function:

◆ operator|() [1/2]

template<typename L, ExprType Op, typename R>
auto LC::Util::oral::detail::operator| ( const InfixBinaryProxy< L, Op > & left,
const R & right )
noexcept

Definition at line 872 of file oral.h.

References MakeExprTree().

+ Here is the call graph for this function:

◆ operator|() [2/2]

template<typename L, ExprType Op>
auto LC::Util::oral::detail::operator| ( const L & left,
InfixBinary< Op >  )
noexcept

Definition at line 866 of file oral.h.

◆ operator||()

template<typename L, typename R, typename = EnableRelOp_t<L, R>>
auto LC::Util::oral::detail::operator|| ( const L & left,
const R & right )
noexcept

Definition at line 884 of file oral.h.

References MakeExprTree().

+ Here is the call graph for this function:

◆ PKeyIndex()

template<typename Seq>
int LC::Util::oral::detail::PKeyIndex ( )
consteval

Definition at line 366 of file oral.h.

References PKeyIndexUnsafe().

+ Here is the call graph for this function:

◆ PKeyIndexUnsafe()

template<typename Seq>
int LC::Util::oral::detail::PKeyIndexUnsafe ( )
consteval

Definition at line 354 of file oral.h.

References SeqIndices.

Referenced by PKeyIndex().

+ Here is the caller graph for this function:

◆ ReplaceTupleElem()

template<size_t RepIdx, typename NewType, typename... TupleArgs>
auto LC::Util::oral::detail::ReplaceTupleElem ( std::tuple< TupleArgs... > && tuple,
NewType && arg )
constexprnoexcept

Definition at line 1042 of file oral.h.

References ReplaceTupleElemImpl().

+ Here is the call graph for this function:

◆ ReplaceTupleElemImpl()

template<size_t RepIdx, typename NewType, typename Tuple, size_t... TupIdxs>
auto LC::Util::oral::detail::ReplaceTupleElemImpl ( Tuple && tuple,
NewType && arg,
std::index_sequence< TupIdxs... >  )
constexprnoexcept

Definition at line 1033 of file oral.h.

References GetReplaceTupleElem().

Referenced by ReplaceTupleElem().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ToVariantF()

template<typename T>
QVariant LC::Util::oral::detail::ToVariantF ( const T & t)
noexcept

◆ Typecheck()

template<ExprType Type, typename Seq, typename L, typename R>
bool LC::Util::oral::detail::Typecheck ( )
constexpr

Definition at line 585 of file oral.h.

References IsRelational().

Referenced by LC::Util::oral::detail::ExprTree< Type, L, R >::ToSql().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ TypeToSql()

template<ExprType Type>
auto LC::Util::oral::detail::TypeToSql ( )
constexprnoexcept

Definition at line 538 of file oral.h.

References And, Equal, Geq, Greater, Leq, Less, Like, Neq, and Or.

Referenced by LC::Util::oral::detail::ExprTree< Type, L, R >::ToSql().

+ Here is the caller graph for this function:

Variable Documentation

◆ BoundFieldNames

template<typename S>
auto LC::Util::oral::detail::BoundFieldNames
constexpr
Initial value:
= []<size_t... Ix> (std::index_sequence<Ix...>) constexpr
{
return std::tuple { (":" + GetFieldName<S, Ix> ())... };
consteval auto GetFieldName()
Definition oral.h:161
constexpr auto SeqIndices
Definition oral.h:168

Definition at line 177 of file oral.h.

Referenced by BindAtIndex().

◆ ConstTrueTree_v

◆ CountAllPtr

CountAll* LC::Util::oral::detail::CountAllPtr = nullptr
inlineconstexpr

Definition at line 913 of file oral.h.

◆ FieldNames

template<typename S>
auto LC::Util::oral::detail::FieldNames
constexpr
Initial value:
= []<size_t... Ix> (std::index_sequence<Ix...>) constexpr
{
return std::tuple { GetFieldName<S, Ix> ()... };

Definition at line 171 of file oral.h.

Referenced by AdaptCreateTableNamed(), ExtractConflictingFields(), ExtractConstraintFields(), ExtractConstraintFields(), and LC::Util::oral::Migrate().

◆ PKeyIndex_v

template<typename Seq>
int LC::Util::oral::detail::PKeyIndex_v = PKeyIndex<Seq> ()
constexpr

◆ QualifiedFieldNames

template<typename S>
auto LC::Util::oral::detail::QualifiedFieldNames
constexpr
Initial value:
= []<size_t... Ix> (std::index_sequence<Ix...>) constexpr
{
return std::tuple { (S::ClassName + "." + GetFieldName<S, Ix> ())... };

Definition at line 183 of file oral.h.

◆ SeqIndices

template<typename S>
auto LC::Util::oral::detail::SeqIndices = std::make_index_sequence<SeqSize<S>> {}
constexpr