LeechCraft 0.6.70-17609-g3dde4097dd
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, SelectDistinct< U > >
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< SelectDistinct< T > >
struct  IsSelector< SelectorUnion< L, R > >
struct  IsSelector< SelectWhole >
struct  LimitNone
struct  MemberPtrs
struct  OffsetNone
struct  OrderBy
struct  OrderNone
struct  SelectDistinct
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 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 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 1088 of file oral.h.

◆ SelectBehaviour

Enumerator
Some 
One 

Definition at line 1013 of file oral.h.

Function Documentation

◆ AdaptCreateTable()

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

Definition at line 1620 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 1597 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 1161 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 1083 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 1077 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 1071 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 1065 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 1250 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 1571 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 1565 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 1577 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 1021 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 1591 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 1095 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 1142 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 1002 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 990 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 936 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 1039 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 1030 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