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

Namespaces

namespace  SQLite

Classes

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

Concepts

concept  TypeNameCustomizedMember
concept  BaseTypeCustomized
concept  HasPKey
concept  EitherIsExprTree

Typedefs

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

Enumerations

enum class  ExprType {
  ConstTrue ,
  LeafStaticPlaceholder ,
  LeafData ,
  Greater ,
  Less ,
  Equal ,
  Geq ,
  Leq ,
  Neq ,
  Like ,
  ILike ,
  And ,
  Or
}
enum class  AggregateFunction {
  Count ,
  Min ,
  Max
}
enum class  SelectBehaviour {
  Some ,
  One
}
enum class  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 Seq>
constexpr auto GetFullSize (const Seq &seq)
template<typename T, CtString str>
consteval auto MorphFieldName ()
template<typename Seq, int Idx>
consteval auto GetFieldName ()
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 ExtractReplaceFields (InsertAction::Replace::WholeType)
template<typename Seq, auto... Ptrs>
constexpr auto ExtractReplaceFields (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>
constexpr auto WrapSubexpr (auto subexpr)
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>
auto operator== (const L &left, const R &right) noexcept
template<typename L, typename R>
auto operator< (const L &left, const R &right) noexcept
template<typename L, typename R>
auto operator<= (const L &left, const R &right) noexcept
template<typename L, typename R>
auto operator> (const L &left, const R &right) noexcept
template<typename L, typename R>
auto operator>= (const L &left, const R &right) noexcept
template<typename L, typename 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>
auto operator&& (const L &left, const R &right) noexcept
template<typename L, typename 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>
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 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<template< typename... > typename Tgt = std::tuple, template< typename... > typename Src, typename... Vals>
constexpr auto MapTy (Src< Vals... >, auto f)
template<typename Seq, auto... Ptrs>
constexpr auto CreateIndex (const QSqlDatabase &db, Index< Ptrs... >)
template<typename Seq>
void AdaptCreateIndices (const QSqlDatabase &db)
template<auto... Ptrs>
constexpr auto ExtractConstraintFields (UniqueSubset< Ptrs... >)
template<auto... Ptrs>
constexpr auto ExtractConstraintFields (PrimaryKey< Ptrs... >)
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 Seq>
constexpr auto FullSize = decltype (GetFullSize (std::declval<Seq> ()))::value
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<auto Ptr>
constexpr auto FieldNameByPtr = MorphFieldName<MemberPtrStruct_t<Ptr>, MemberNameByPtr<Ptr>> ()
template<auto Ptr>
constexpr auto QualifiedFieldNameByPtr = MemberPtrStruct_t<Ptr>::ClassName + "." + FieldNameByPtr<Ptr>
template<typename T>
constexpr bool IsPKey = false
template<typename U, typename... Tags>
constexpr bool IsPKey< PKey< U, Tags... > > = true
template<typename Seq>
constexpr int PKeyIndex_v = PKeyIndex<Seq> ()
template<typename T>
constexpr bool IsExprTree = false
template<ExprType Type, typename L, typename R>
constexpr bool IsExprTree< ExprTree< Type, L, R > > = true
constexpr auto ConstTrueTree_v = ExprTree<ExprType::ConstTrue> {}
template<typename T>
constexpr bool IsSelector = false
template<>
constexpr bool IsSelector< SelectWhole > = true
template<AggregateFunction Fun, auto Ptr>
constexpr bool IsSelector< AggregateType< Fun, Ptr > > = true
template<typename FunRetType, CtString Fun, auto Ptr>
constexpr bool IsSelector< CustomFunctionType< FunRetType, Fun, Ptr > > = true
template<auto... Ptrs>
constexpr bool IsSelector< MemberPtrs< Ptrs... > > = true
template<typename L, typename R>
constexpr bool IsSelector< SelectorUnion< L, R > > = true
template<typename T>
constexpr bool IsSelector< SelectDistinct< T > > = true

Typedef Documentation

◆ 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 598 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 290 of file oral.h.

Enumeration Type Documentation

◆ AggregateFunction

Enumerator
Count 
Min 
Max 

Definition at line 1019 of file oral.h.

◆ ExprType

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

Definition at line 524 of file oral.h.

◆ ResultBehaviour

Enumerator
All 
First 

Definition at line 1233 of file oral.h.

◆ SelectBehaviour

Enumerator
Some 
One 

Definition at line 1158 of file oral.h.

Function Documentation

◆ AdaptCreateIndices()

template<typename Seq>
void LC::Util::oral::detail::AdaptCreateIndices ( const QSqlDatabase & db)

Definition at line 1730 of file oral.h.

References AdaptCreateIndices(), CreateIndex(), and MapTy().

Referenced by LC::Util::oral::Adapt(), and AdaptCreateIndices().

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

◆ AdaptCreateTable()

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

Definition at line 1787 of file oral.h.

References AdaptCreateTable(), and AdaptCreateTableNamed().

Referenced by LC::Util::oral::Adapt(), and AdaptCreateTable().

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 1764 of file oral.h.

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

Referenced by AdaptCreateTable(), and AdaptCreateTableNamed().

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 789 of file oral.h.

References AsLeafData(), and IsExprTree.

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

Here is the call graph for this function:
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 305 of file oral.h.

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

Referenced by BindAtIndex(), and 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 1014 of file oral.h.

References BindExprTree().

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

Here is the call graph for this function:
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 1295 of file oral.h.

References BindLimitOffset().

Referenced by BindLimitOffset().

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

◆ Combine() [1/4]

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

Definition at line 1228 of file oral.h.

References Combine().

Here is the call graph for this function:

◆ 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 1222 of file oral.h.

References Combine().

Here is the call graph for this function:

◆ 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 1216 of file oral.h.

References Combine().

Here is the call graph for this function:

◆ 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 1210 of file oral.h.

References Combine().

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

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

◆ CombineBehaviour()

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

Definition at line 1390 of file oral.h.

References All, CombineBehaviour(), and First.

Referenced by CombineBehaviour().

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

◆ CreateIndex()

template<typename Seq, auto... Ptrs>
auto LC::Util::oral::detail::CreateIndex ( const QSqlDatabase & db,
Index< Ptrs... >  )
constexpr

Definition at line 1720 of file oral.h.

References CreateIndex(), FieldNameByPtr, LC::Util::Join(), LC::Util::RunTextQuery(), and LC::Util::ToString().

Referenced by AdaptCreateIndices(), and CreateIndex().

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

◆ DoInsert()

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

Definition at line 312 of file oral.h.

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

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

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

◆ ExprTreeToSql()

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

Definition at line 1008 of file oral.h.

References ExprTreeToSql().

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

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

◆ ExtractConstraintFields() [1/2]

template<auto... Ptrs>
auto LC::Util::oral::detail::ExtractConstraintFields ( PrimaryKey< Ptrs... > )
constexpr

Definition at line 1743 of file oral.h.

References ExtractConstraintFields(), FieldNameByPtr, and LC::Util::Join().

Here is the call graph for this function:

◆ ExtractConstraintFields() [2/2]

template<auto... Ptrs>
auto LC::Util::oral::detail::ExtractConstraintFields ( UniqueSubset< Ptrs... > )
constexpr

Definition at line 1737 of file oral.h.

References ExtractConstraintFields(), FieldNameByPtr, and LC::Util::Join().

Referenced by ExtractConstraintFields(), ExtractConstraintFields(), and GetConstraintsStrings().

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

◆ ExtractReplaceFields() [1/2]

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

Definition at line 377 of file oral.h.

References ExtractReplaceFields(), and FieldNameByPtr.

Here is the call graph for this function:

◆ ExtractReplaceFields() [2/2]

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

Definition at line 363 of file oral.h.

References ExtractReplaceFields(), FieldNames, HasAutogenPKey(), and PKeyIndex_v.

Referenced by ExtractReplaceFields(), and ExtractReplaceFields().

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 91 of file oral.h.

References Get().

Referenced by BindAtIndex(), Get(), Get(), 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 98 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 1749 of file oral.h.

References ExtractConstraintFields(), GetConstraintsStrings(), and MapTy().

Referenced by AdaptCreateTableNamed(), and GetConstraintsStrings().

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 126 of file oral.h.

References GetFieldName(), LC::Util::oral::MemberNameByIdx, and MorphFieldName().

Referenced by GetFieldName().

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

◆ GetFullSize()

template<typename Seq>
auto LC::Util::oral::detail::GetFullSize ( const Seq & seq)
constexpr

Definition at line 105 of file oral.h.

References GetFullSize().

Referenced by GetFullSize().

Here is the call graph for this function:
Here is the caller 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 1166 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 1758 of file oral.h.

References GetTypes().

Referenced by AdaptCreateTableNamed(), and GetTypes().

Here is the call graph for this function:
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 1240 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:

◆ HasAutogenPKey()

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

Definition at line 354 of file oral.h.

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

Referenced by ExtractReplaceFields(), and HasAutogenPKey().

Here is the call graph for this function:
Here is the caller 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 512 of file oral.h.

References LC::Util::oral::Convert, Get(), and InitializeFromQuery().

Referenced by InitializeFromQuery(), and 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 570 of file oral.h.

References Equal, Geq, Greater, ILike, IsRelational(), Leq, Less, Like, and Neq.

Referenced by IsRelational(), and Typecheck().

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

◆ LimitOffsetToString()

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

Definition at line 1276 of file oral.h.

References LimitOffsetToString().

Referenced by LimitOffsetToString().

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

◆ MakeExprTree()

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

Definition at line 911 of file oral.h.

References AsLeafData(), and MakeExprTree().

Referenced by MakeExprTree(), operator!=(), operator&&(), 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 1141 of file oral.h.

References MakeIndexedQueryHandler(), and MemberFromVariant().

Referenced by LC::Util::oral::detail::HandleSelector< T, MemberPtrs< Ptrs... > >::Initializer(), MakeIndexedQueryHandler(), 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 1147 of file oral.h.

References MakeIndexedQueryHandler(), and MemberFromVariant().

Here is the call graph for this function:

◆ MapTy()

template<template< typename... > typename Tgt = std::tuple, template< typename... > typename Src, typename... Vals>
auto LC::Util::oral::detail::MapTy ( Src< Vals... > ,
auto f )
constexpr

Definition at line 1714 of file oral.h.

References MapTy().

Referenced by AdaptCreateIndices(), GetConstraintsStrings(), and MapTy().

Here is the call graph for this function:
Here is the caller 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 1135 of file oral.h.

References LC::Util::oral::Convert, and MemberFromVariant().

Referenced by MakeIndexedQueryHandler(), MakeIndexedQueryHandler(), and MemberFromVariant().

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

◆ MorphFieldName()

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

Definition at line 115 of file oral.h.

References MorphFieldName().

Referenced by GetFieldName(), and MorphFieldName().

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

◆ operator!=()

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

Definition at line 958 of file oral.h.

References MakeExprTree().

Here is the call graph for this function:

◆ operator&&()

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

Definition at line 995 of file oral.h.

References MakeExprTree().

Here is the call graph for this function:

◆ operator+()

template<typename L, typename R>
SelectorUnion< L, R > LC::Util::oral::detail::operator+ ( L ,
R  )
noexcept

Definition at line 1074 of file oral.h.

◆ operator<()

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

Definition at line 930 of file oral.h.

References MakeExprTree().

Here is the call graph for this function:

◆ operator<=()

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

Definition at line 937 of file oral.h.

References MakeExprTree().

Here is the call graph for this function:

◆ operator==()

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

Definition at line 923 of file oral.h.

References MakeExprTree().

Here is the call graph for this function:

◆ operator>()

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

Definition at line 944 of file oral.h.

References MakeExprTree().

Here is the call graph for this function:

◆ operator>=()

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

Definition at line 951 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 988 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 982 of file oral.h.

◆ operator||()

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

Definition at line 1002 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 340 of file oral.h.

References PKeyIndex(), and PKeyIndexUnsafe().

Referenced by PKeyIndex().

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

◆ PKeyIndexUnsafe()

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

Definition at line 328 of file oral.h.

References IsPKey, PKeyIndexUnsafe(), and SeqIndices.

Referenced by PKeyIndex(), and PKeyIndexUnsafe().

Here is the call graph for this function:
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 1184 of file oral.h.

References ReplaceTupleElem(), and ReplaceTupleElemImpl().

Referenced by ReplaceTupleElem().

Here is the call graph for this function:
Here is the caller 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 1175 of file oral.h.

References GetReplaceTupleElem(), and ReplaceTupleElemImpl().

Referenced by ReplaceTupleElem(), and ReplaceTupleElemImpl().

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 603 of file oral.h.

References IsRelational(), and Typecheck().

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

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 546 of file oral.h.

References And, Equal, Geq, Greater, ILike, Leq, Less, Like, Neq, Or, and TypeToSql().

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

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

◆ WrapSubexpr()

template<ExprType Type>
auto LC::Util::oral::detail::WrapSubexpr ( auto subexpr)
constexpr

Definition at line 583 of file oral.h.

References ILike, and WrapSubexpr().

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

Here is the call graph for this function:
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:126
constexpr auto SeqIndices
Definition oral.h:133

Definition at line 142 of file oral.h.

Referenced by BindAtIndex().

◆ ConstTrueTree_v

◆ FieldNameByPtr

◆ 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 136 of file oral.h.

Referenced by AdaptCreateTableNamed(), ExtractReplaceFields(), LC::Util::oral::Migrate(), and ORAL_ADAPT_STRUCT().

◆ FullSize

template<typename Seq>
auto LC::Util::oral::detail::FullSize = decltype (GetFullSize (std::declval<Seq> ()))::value
constexpr

Definition at line 112 of file oral.h.

◆ IsExprTree

template<typename T>
bool LC::Util::oral::detail::IsExprTree = false
constexpr

◆ IsExprTree< ExprTree< Type, L, R > >

template<ExprType Type, typename L, typename R>
bool LC::Util::oral::detail::IsExprTree< ExprTree< Type, L, R > > = true
constexpr

Definition at line 622 of file oral.h.

◆ IsPKey

template<typename T>
bool LC::Util::oral::detail::IsPKey = false
constexpr

Definition at line 293 of file oral.h.

Referenced by BindAtIndex(), and PKeyIndexUnsafe().

◆ IsPKey< PKey< U, Tags... > >

template<typename U, typename... Tags>
bool LC::Util::oral::detail::IsPKey< PKey< U, Tags... > > = true
constexpr

Definition at line 296 of file oral.h.

◆ IsSelector

template<typename T>
bool LC::Util::oral::detail::IsSelector = false
constexpr

Definition at line 1052 of file oral.h.

◆ IsSelector< AggregateType< Fun, Ptr > >

template<AggregateFunction Fun, auto Ptr>
bool LC::Util::oral::detail::IsSelector< AggregateType< Fun, Ptr > > = true
constexpr

Definition at line 1058 of file oral.h.

◆ IsSelector< CustomFunctionType< FunRetType, Fun, Ptr > >

template<typename FunRetType, CtString Fun, auto Ptr>
bool LC::Util::oral::detail::IsSelector< CustomFunctionType< FunRetType, Fun, Ptr > > = true
constexpr

Definition at line 1061 of file oral.h.

◆ IsSelector< MemberPtrs< Ptrs... > >

template<auto... Ptrs>
bool LC::Util::oral::detail::IsSelector< MemberPtrs< Ptrs... > > = true
constexpr

Definition at line 1064 of file oral.h.

◆ IsSelector< SelectDistinct< T > >

template<typename T>
bool LC::Util::oral::detail::IsSelector< SelectDistinct< T > > = true
constexpr

Definition at line 1070 of file oral.h.

◆ IsSelector< SelectorUnion< L, R > >

template<typename L, typename R>
bool LC::Util::oral::detail::IsSelector< SelectorUnion< L, R > > = true
constexpr

Definition at line 1067 of file oral.h.

◆ IsSelector< SelectWhole >

template<>
bool LC::Util::oral::detail::IsSelector< SelectWhole > = true
inlineconstexpr

Definition at line 1055 of file oral.h.

◆ PKeyIndex_v

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

◆ QualifiedFieldNameByPtr

template<auto Ptr>
auto LC::Util::oral::detail::QualifiedFieldNameByPtr = MemberPtrStruct_t<Ptr>::ClassName + "." + FieldNameByPtr<Ptr>
constexpr

Definition at line 157 of file oral.h.

◆ 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 148 of file oral.h.

◆ SeqIndices

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