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

Namespaces

namespace  SQLite

Classes

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

Concepts

concept  TypeNameCustomizedMember
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 T>
constexpr bool IsForeignKeyRecursive ()
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>
requires EitherIsExprTree<L, R>
auto operator== (const L &left, const R &right) noexcept
template<typename L, typename R>
requires EitherIsExprTree<L, R>
auto operator< (const L &left, const R &right) noexcept
template<typename L, typename R>
requires EitherIsExprTree<L, R>
auto operator<= (const L &left, const R &right) noexcept
template<typename L, typename R>
requires EitherIsExprTree<L, R>
auto operator> (const L &left, const R &right) noexcept
template<typename L, typename R>
requires EitherIsExprTree<L, R>
auto operator>= (const L &left, const R &right) noexcept
template<typename L, typename R>
requires EitherIsExprTree<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>
requires EitherIsExprTree<L, R>
auto operator&& (const L &left, const R &right) noexcept
template<typename L, typename R>
requires EitherIsExprTree<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>
requires 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 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:

Definition at line 32 of file oraltypes.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 283 of file oral.h.

Enumeration Type Documentation

◆ AggregateFunction

Enumerator
Count 
Min 
Max 

Definition at line 1015 of file oral.h.

◆ ExprType

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

Definition at line 531 of file oral.h.

◆ ResultBehaviour

Enumerator
All 
First 

Definition at line 1229 of file oral.h.

◆ SelectBehaviour

Enumerator
Some 
One 

Definition at line 1154 of file oral.h.

Function Documentation

◆ AdaptCreateIndices()

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

Definition at line 1726 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 1783 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 1760 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 785 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 298 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 1010 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 1291 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 1224 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 1218 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 1212 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 1206 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 1386 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 1716 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 305 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 1004 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 1739 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 1733 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 384 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 370 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 1745 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 1162 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 1754 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 1236 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 357 of file oral.h.

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

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 519 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:

◆ IsForeignKeyRecursive()

template<typename T>
bool LC::Util::oral::detail::IsForeignKeyRecursive ( )
constexpr

Definition at line 333 of file oral.h.

References IsForeignKeyRecursive().

Referenced by HasAutogenPKey(), IsForeignKeyRecursive(), and ORAL_ADAPT_STRUCT().

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 577 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 1272 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 907 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 1137 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 1143 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 1710 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 1131 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>
requires EitherIsExprTree<L, R>
auto LC::Util::oral::detail::operator!= ( const L & left,
const R & right )
noexcept

Definition at line 954 of file oral.h.

References MakeExprTree().

Here is the call graph for this function:

◆ operator&&()

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

Definition at line 991 of file oral.h.

References MakeExprTree().

Here is the call graph for this function:

◆ operator+()

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

Definition at line 1070 of file oral.h.

◆ operator<()

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

Definition at line 926 of file oral.h.

References MakeExprTree().

Here is the call graph for this function:

◆ operator<=()

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

Definition at line 933 of file oral.h.

References MakeExprTree().

Here is the call graph for this function:

◆ operator==()

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

Definition at line 919 of file oral.h.

References MakeExprTree().

Here is the call graph for this function:

◆ operator>()

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

Definition at line 940 of file oral.h.

References MakeExprTree().

Here is the call graph for this function:

◆ operator>=()

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

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

◆ operator||()

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

Definition at line 998 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 343 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 321 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 1180 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 1171 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 599 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 553 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 590 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 618 of file oral.h.

◆ IsPKey

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

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

◆ IsSelector

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

Definition at line 1048 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 1054 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 1057 of file oral.h.

◆ IsSelector< MemberPtrs< Ptrs... > >

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

Definition at line 1060 of file oral.h.

◆ IsSelector< SelectDistinct< T > >

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

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

◆ IsSelector< SelectWhole >

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

Definition at line 1051 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