LeechCraft 0.6.70-17335-ge406ffdcaf
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 807 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 565 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 301 of file oral.h.

Enumeration Type Documentation

◆ AggregateFunction

Enumerator
Count 
Min 
Max 

Definition at line 886 of file oral.h.

◆ ExprType

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

Definition at line 502 of file oral.h.

◆ ResultBehaviour

Enumerator
All 
First 

Definition at line 1076 of file oral.h.

◆ SelectBehaviour

Enumerator
Some 
One 

Definition at line 1001 of file oral.h.

Function Documentation

◆ AdaptCreateTable()

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

Definition at line 1602 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 1579 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 707 of file oral.h.

References AsLeafData().

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

References BindAtIndex(), BoundFieldNames, Get(), 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 881 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 1149 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 1071 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 1065 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 1059 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 1053 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 1232 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:

◆ DoInsert()

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

Definition at line 323 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:

◆ EitherIsExprTree()

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

Definition at line 797 of file oral.h.

References EitherIsExprTree().

Referenced by EitherIsExprTree().

+ 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 875 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:

◆ ExtractConflictingFields() [1/2]

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

Definition at line 380 of file oral.h.

References ExtractConflictingFields(), and FieldNames.

+ Here is the call graph for this function:

◆ ExtractConflictingFields() [2/2]

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

Definition at line 374 of file oral.h.

References ExtractConflictingFields(), and GetFieldName().

Referenced by ExtractConflictingFields(), and ExtractConflictingFields().

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

References ExtractConstraintFields(), 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 1547 of file oral.h.

References ExtractConstraintFields(), FieldNames, 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:

◆ FieldIndex()

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

Definition at line 174 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 123 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 129 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 1559 of file oral.h.

References ExtractConstraintFields(), and GetConstraintsStrings().

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

References Get(), GetFieldName(), and MorphFieldName().

Referenced by ExtractConflictingFields(), GetFieldName(), GetFieldNamePtr(), and GetQualifiedFieldNamePtr().

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

References GetFieldName(), and GetFieldNamePtr().

Referenced by LC::Util::oral::detail::ExprTree< ExprType::LeafStaticPlaceholder, MemberPtrs< Ptr >, void >::GetFieldName(), GetFieldNamePtr(), 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 188 of file oral.h.

References GetFieldName(), and GetQualifiedFieldNamePtr().

Referenced by GetQualifiedFieldNamePtr().

+ 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 1009 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 1573 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 1083 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 365 of file oral.h.

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

Referenced by 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 490 of file oral.h.

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

References Equal, Geq, Greater, 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 1130 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 789 of file oral.h.

References AsLeafData(), and MakeExprTree().

Referenced by MakeExprTree(), 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

◆ MakeIndexedQueryHandler() [2/2]

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

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

References 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 135 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, typename = EnableRelOp_t<L, R>>
auto LC::Util::oral::detail::operator!= ( const L & left,
const R & right )
noexcept

Definition at line 828 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 863 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 927 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 810 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 822 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 816 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 857 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 851 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 869 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 351 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 339 of file oral.h.

References 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 1027 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 1018 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

Definition at line 310 of file oral.h.

References ToVariantF().

Referenced by BindAtIndex(), LC::Util::oral::detail::ExprTree< ExprType::LeafData, T, void >::BindValues(), LC::Util::oral::detail::AdaptDelete< Seq >::operator()(), and ToVariantF().

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

◆ Typecheck()

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

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

References And, Equal, Geq, Greater, 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:

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:146
constexpr auto SeqIndices
Definition oral.h:153

Definition at line 162 of file oral.h.

Referenced by BindAtIndex().

◆ ConstTrueTree_v

◆ CountAllPtr

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

Definition at line 898 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 156 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 168 of file oral.h.

◆ SeqIndices

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