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