LeechCraft  0.6.70-13729-g7046a9d2a7
Modular cross-platform feature rich live environment.
LC::Util::oral::detail Namespace Reference

Namespaces

 PostgreSQL
 
 SQLite
 

Classes

struct  AdaptDelete
 
class  AdaptInsert
 
class  AdaptUpdate
 
struct  AddressOf
 
struct  AggregateType
 
class  AssignList
 
struct  CachedFieldsData
 
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  ExprTreeHandler
 
struct  ExtractConstraintFields
 
struct  ExtractConstraintFields< PrimaryKey< Fields... > >
 
struct  ExtractConstraintFields< UniqueSubset< Fields... > >
 
struct  FindPKey
 
struct  GetFieldsNames
 
struct  GroupBy
 
struct  GroupNone
 
struct  HandleSelectorResult
 
class  IInsertQueryBuilder
 
struct  InfixBinary
 
struct  InfixBinaryProxy
 
struct  IsExprTree
 
struct  IsExprTree< ExprTree< Type, L, R > >
 
struct  IsPKey
 
struct  IsPKey< PKey< U, Tags... > >
 
struct  IsReferencesTarget
 
struct  IsReferencesTarget< PKey< U, Tags... > >
 
struct  IsReferencesTarget< Unique< U > >
 
struct  IsSelector
 
struct  IsSelector< AggregateType< Fun, Ptr > >
 
struct  IsSelector< MemberPtrs< Ptrs... > >
 
struct  IsSelector< SelectorUnion< L, R > >
 
struct  IsSelector< SelectWhole >
 
struct  LimitNone
 
struct  MemberPtrs
 
struct  OffsetNone
 
struct  OrderBy
 
struct  OrderNone
 
struct  RelationalTypesChecker
 
struct  RelationalTypesChecker< Type, Seq, L, R, std::enable_if_t< IsRelational(Type)> >
 
struct  RelationalTypesCheckerBase
 
struct  RelationalTypesCheckerBase< Seq, L, R, std::enable_if_t< AreComparableTypes< Seq, L, R > > >
 
struct  ResultBehaviour
 
struct  SelectorUnion
 
struct  SelectWhole
 
class  SelectWrapper
 
class  SelectWrapperCommon
 
struct  ToSqlState
 
struct  WrapDirect
 

Typedefs

using IInsertQueryBuilder_ptr = std::unique_ptr< IInsertQueryBuilder >
 
template<typename U >
using MorpherDetector = decltype(std::declval< U >().FieldNameMorpher(QString {}))
 
template<typename T >
using TypeNameDetector = decltype(T::TypeName)
 
template<typename T >
using BaseTypeDetector = typename T::BaseType
 
template<typename Seq , int Idx>
using ValueAtC_t = typename boost::fusion::result_of::value_at_c< Seq, Idx >::type
 
template<typename Seq , typename Idx >
using ValueAt_t = typename boost::fusion::result_of::value_at< Seq, Idx >::type
 
template<typename Seq >
using FindPKeyDetector = boost::mpl::int_< FindPKey< Seq >::result_type::value >
 
template<typename T , typename... Args>
using AggregateDetector_t = decltype(new T { std::declval< Args >()... })
 
template<typename T >
using UnwrapIndirect_t = typename std::conditional_t< IsIndirect< T > {}, T, WrapDirect< T > >::value_type
 
template<typename Seq , typename L , typename R >
using ComparableDetector = decltype(std::declval< UnwrapIndirect_t< typename L::template ValueType_t< Seq > >>()==std::declval< UnwrapIndirect_t< typename R::template ValueType_t< Seq > >>())
 
template<typename L , typename R >
using EnableRelOp_t = std::enable_if_t< EitherIsExprTree< L, R >()>
 
template<typename T >
using ConstraintsDetector = typename T::Constraints
 
template<typename T >
using ConstraintsType = Util::IsDetected_t< Constraints<>, ConstraintsDetector, T >
 
template<size_t Idx, typename Tuple >
using UnderlyingObject_t = typename std::decay_t< std::tuple_element_t< Idx, Tuple > >::element_type::ObjectType_t
 

Enumerations

enum  ExprType {
  ExprType::ConstTrue,
  ExprType::LeafStaticPlaceholder,
  ExprType::LeafData,
  ExprType::Greater,
  ExprType::Less,
  ExprType::Equal,
  ExprType::Geq,
  ExprType::Leq,
  ExprType::Neq,
  ExprType::Like,
  ExprType::And,
  ExprType::Or
}
 
enum  AggregateFunction {
  AggregateFunction::Count,
  AggregateFunction::Min,
  AggregateFunction::Max
}
 
enum  SelectBehaviour {
  SelectBehaviour::Some,
  SelectBehaviour::One
}
 

Functions

bool MatchesSchema (const QString &baseName, const QString &schema, QSqlDatabase &db)
 
template<typename T >
QString MorphFieldName (QString str) noexcept
 
template<typename Seq , int Idx>
QString GetFieldName () noexcept
 
template<auto Ptr, size_t Idx = 0>
constexpr size_t FieldIndex () noexcept
 
template<auto Ptr>
QString GetFieldNamePtr () noexcept
 
template<auto Ptr>
QString GetQualifiedFieldNamePtr () noexcept
 
template<typename T >
QVariant ToVariantF (const T &t) noexcept
 
template<typename T >
auto MakeInserter (const CachedFieldsData &data, const QSqlQuery_ptr &insertQuery, bool bindPrimaryKey) noexcept
 
template<typename Seq >
constexpr auto HasAutogenPKey () noexcept
 
template<typename T >
CachedFieldsData BuildCachedFieldsData (const QString &table) noexcept
 
template<typename T >
CachedFieldsData BuildCachedFieldsData () noexcept
 
template<typename T , size_t... Indices>
InitializeFromQuery (const QSqlQuery &q, std::index_sequence< Indices... >, int startIdx) noexcept
 
QString TypeToSql (ExprType type) noexcept
 
constexpr bool IsRelational (ExprType type) noexcept
 
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<typename >
auto HandleExprTree (const ExprTree< ExprType::ConstTrue > &, int lastId=0) noexcept
 
template<typename Seq , typename Tree , typename = decltype (std::declval<Tree> ().ToSql (std::declval<ToSqlState<Seq>&> ()))>
auto HandleExprTree (const Tree &tree, int lastId=0) noexcept
 
template<typename L , typename R , typename = std::enable_if_t<IsSelector<L> {} && IsSelector<R> {}>>
SelectorUnion< L, R > operator+ (L, R) noexcept
 
template<auto... Ptrs, size_t... Idxs>
auto MakeIndexedQueryHandler (MemberPtrs< Ptrs... >, std::index_sequence< Idxs... >) noexcept
 
template<auto Ptr>
auto MakeIndexedQueryHandler () noexcept
 
template<auto... Ptrs>
QStringList BuildFieldNames () noexcept
 
template<size_t RepIdx, size_t TupIdx, typename Tuple , typename NewType >
decltype(auto) constexpr 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<typename L , typename R >
constexpr auto CombineBehaviour (L, R) noexcept
 
template<typename ResList >
decltype(auto) HandleResultBehaviour (ResultBehaviour::All, ResList &&list) noexcept
 
template<typename ResList >
auto HandleResultBehaviour (ResultBehaviour::First, ResList &&list) noexcept
 
template<typename F , typename R >
 HandleSelectorResult (QString, F, R) -> HandleSelectorResult< F, R >
 
template<typename... Args>
QStringList GetConstraintsStringList (Constraints< Args... >, const CachedFieldsData &data) noexcept
 
template<typename ImplFactory , typename T , size_t... Indices>
QList< QString > GetTypes (std::index_sequence< Indices... >) noexcept
 
template<typename ImplFactory , typename T >
QString AdaptCreateTable (const CachedFieldsData &data) noexcept
 
template<typename ImplFactory , typename Tuple , size_t... Idxs>
void AdaptPtrs (const QSqlDatabase &db, Tuple &tuple, std::index_sequence< Idxs... >)
 

Variables

template<typename S >
constexpr auto SeqSize = boost::fusion::result_of::size<S>::type::value
 
template<typename S >
constexpr auto SeqIndices = std::make_index_sequence<SeqSize<S>> {}
 
template<typename T >
constexpr bool TypeNameCustomized = IsDetected_v<TypeNameDetector, T>
 
template<typename T >
constexpr bool BaseTypeCustomized = IsDetected_v<BaseTypeDetector, T>
 
template<typename Seq >
constexpr auto HasPKey = IsDetected_v<FindPKeyDetector, Seq>
 
template<typename Seq , typename L , typename R >
constexpr auto AreComparableTypes = IsDetected_v<ComparableDetector, Seq, L, R> || IsDetected_v<ComparableDetector, Seq, R, L>
 
constexpr auto ConstTrueTree_v = ExprTree<ExprType::ConstTrue> {}
 
constexpr CountAllCountAllPtr = nullptr
 

Typedef Documentation

◆ AggregateDetector_t

template<typename T , typename... Args>
using LC::Util::oral::detail::AggregateDetector_t = typedef decltype (new T { std::declval<Args> ()... })

Definition at line 496 of file oral.h.

◆ BaseTypeDetector

template<typename T >
using LC::Util::oral::detail::BaseTypeDetector = typedef typename T::BaseType

Definition at line 203 of file oral.h.

◆ ComparableDetector

template<typename Seq , typename L , typename R >
using LC::Util::oral::detail::ComparableDetector = typedef decltype (std::declval<UnwrapIndirect_t<typename L::template ValueType_t<Seq> >> () == std::declval<UnwrapIndirect_t<typename R::template ValueType_t<Seq> >> ())

Definition at line 598 of file oral.h.

◆ ConstraintsDetector

template<typename T >
using LC::Util::oral::detail::ConstraintsDetector = typedef typename T::Constraints

Definition at line 1600 of file oral.h.

◆ ConstraintsType

Definition at line 1603 of file oral.h.

◆ EnableRelOp_t

template<typename L , typename R >
using LC::Util::oral::detail::EnableRelOp_t = typedef std::enable_if_t<EitherIsExprTree<L, R> ()>

Definition at line 797 of file oral.h.

◆ FindPKeyDetector

template<typename Seq >
using LC::Util::oral::detail::FindPKeyDetector = typedef boost::mpl::int_<FindPKey<Seq>::result_type::value>

Definition at line 368 of file oral.h.

◆ IInsertQueryBuilder_ptr

Definition at line 48 of file impldefs.h.

◆ MorpherDetector

template<typename U >
using LC::Util::oral::detail::MorpherDetector = typedef decltype (std::declval<U> ().FieldNameMorpher (QString {}))

Definition at line 101 of file oral.h.

◆ TypeNameDetector

template<typename T >
using LC::Util::oral::detail::TypeNameDetector = typedef decltype (T::TypeName)

Definition at line 197 of file oral.h.

◆ UnderlyingObject_t

template<size_t Idx, typename Tuple >
using LC::Util::oral::detail::UnderlyingObject_t = typedef typename std::decay_t<std::tuple_element_t<Idx, Tuple> >::element_type::ObjectType_t

Definition at line 1720 of file oral.h.

◆ UnwrapIndirect_t

template<typename T >
using LC::Util::oral::detail::UnwrapIndirect_t = typedef typename std::conditional_t<IsIndirect<T> {}, T, WrapDirect<T> >::value_type

Definition at line 594 of file oral.h.

◆ ValueAt_t

template<typename Seq , typename Idx >
using LC::Util::oral::detail::ValueAt_t = typedef typename boost::fusion::result_of::value_at<Seq, Idx>::type

Definition at line 346 of file oral.h.

◆ ValueAtC_t

template<typename Seq , int Idx>
using LC::Util::oral::detail::ValueAtC_t = typedef typename boost::fusion::result_of::value_at_c<Seq, Idx>::type

Definition at line 343 of file oral.h.

Enumeration Type Documentation

◆ AggregateFunction

Enumerator
Count 
Min 
Max 

Definition at line 905 of file oral.h.

◆ ExprType

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

Definition at line 515 of file oral.h.

◆ SelectBehaviour

Enumerator
Some 
One 

Definition at line 1033 of file oral.h.

Function Documentation

◆ AdaptCreateTable()

template<typename ImplFactory , typename T >
QString LC::Util::oral::detail::AdaptCreateTable ( const CachedFieldsData data)
noexcept

Definition at line 1639 of file oral.h.

References GetConstraintsStringList().

+ Here is the call graph for this function:

◆ AdaptPtrs()

template<typename ImplFactory , typename Tuple , size_t... Idxs>
void LC::Util::oral::detail::AdaptPtrs ( const QSqlDatabase &  db,
Tuple &  tuple,
std::index_sequence< Idxs... >   
)

Definition at line 1723 of file oral.h.

References LC::Util::oral::AdaptPtr().

+ Here is the call graph for this function:

◆ AsLeafData()

template<typename T >
constexpr auto LC::Util::oral::detail::AsLeafData ( const T &  node)
noexcept

Definition at line 721 of file oral.h.

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

+ Here is the caller graph for this function:

◆ BuildCachedFieldsData() [1/2]

template<typename T >
CachedFieldsData LC::Util::oral::detail::BuildCachedFieldsData ( const QString &  table)
noexcept

Definition at line 383 of file oral.h.

References LC::Util::oral::sph::fields, and LC::Util::Map().

+ Here is the call graph for this function:

◆ BuildCachedFieldsData() [2/2]

template<typename T >
CachedFieldsData LC::Util::oral::detail::BuildCachedFieldsData ( )
noexcept

Definition at line 393 of file oral.h.

◆ BuildFieldNames()

template<auto... Ptrs>
QStringList LC::Util::oral::detail::BuildFieldNames ( )
noexcept

Definition at line 1028 of file oral.h.

◆ Combine() [1/4]

template<typename... LArgs, typename... RArgs>
auto LC::Util::oral::detail::Combine ( std::tuple< LArgs... > &&  left,
std::tuple< RArgs... > &&  right 
)
noexcept

Definition at line 1085 of file oral.h.

◆ Combine() [2/4]

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

Definition at line 1091 of file oral.h.

◆ Combine() [3/4]

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

Definition at line 1097 of file oral.h.

◆ Combine() [4/4]

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

Definition at line 1103 of file oral.h.

◆ CombineBehaviour()

template<typename L , typename R >
constexpr auto LC::Util::oral::detail::CombineBehaviour ( ,
 
)
noexcept

Definition at line 1115 of file oral.h.

◆ EitherIsExprTree()

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

Definition at line 787 of file oral.h.

◆ FieldIndex()

template<auto Ptr, size_t Idx = 0>
constexpr size_t LC::Util::oral::detail::FieldIndex ( )
noexcept

Definition at line 162 of file oral.h.

◆ GetConstraintsStringList()

template<typename... Args>
QStringList LC::Util::oral::detail::GetConstraintsStringList ( Constraints< Args... >  ,
const CachedFieldsData data 
)
noexcept

Definition at line 1627 of file oral.h.

Referenced by AdaptCreateTable().

+ Here is the caller graph for this function:

◆ GetFieldName()

template<typename Seq , int Idx>
QString LC::Util::oral::detail::GetFieldName ( )
noexcept

Definition at line 117 of file oral.h.

Referenced by LC::Util::oral::detail::ExprTree< ExprType::LeafStaticPlaceholder, MemberPtrs< Ptr >, void >::ToSql().

+ Here is the caller graph for this function:

◆ GetFieldNamePtr()

template<auto Ptr>
QString LC::Util::oral::detail::GetFieldNamePtr ( )
noexcept

Definition at line 183 of file oral.h.

◆ GetQualifiedFieldNamePtr()

template<auto Ptr>
QString LC::Util::oral::detail::GetQualifiedFieldNamePtr ( )
noexcept

Definition at line 190 of file oral.h.

◆ GetReplaceTupleElem()

template<size_t RepIdx, size_t TupIdx, typename Tuple , typename NewType >
decltype(auto) constexpr LC::Util::oral::detail::GetReplaceTupleElem ( Tuple &&  tuple,
NewType &&  arg 
)
noexcept

Definition at line 1041 of file oral.h.

◆ GetTypes()

template<typename ImplFactory , typename T , size_t... Indices>
QList<QString> LC::Util::oral::detail::GetTypes ( std::index_sequence< Indices... >  )
noexcept

Definition at line 1633 of file oral.h.

◆ HandleExprTree() [1/2]

template<typename >
auto LC::Util::oral::detail::HandleExprTree ( const ExprTree< ExprType::ConstTrue > &  ,
int  lastId = 0 
)
noexcept

Definition at line 880 of file oral.h.

◆ HandleExprTree() [2/2]

template<typename Seq , typename Tree , typename = decltype (std::declval<Tree> ().ToSql (std::declval<ToSqlState<Seq>&> ()))>
auto LC::Util::oral::detail::HandleExprTree ( const Tree &  tree,
int  lastId = 0 
)
noexcept

Definition at line 887 of file oral.h.

References LC::Util::oral::detail::ExprTreeHandler< F >::LastID_, and LC::Util::Stlize().

+ Here is the call graph for this function:

◆ HandleResultBehaviour() [1/2]

template<typename ResList >
decltype(auto) LC::Util::oral::detail::HandleResultBehaviour ( ResultBehaviour::All  ,
ResList &&  list 
)
noexcept

Definition at line 1124 of file oral.h.

◆ HandleResultBehaviour() [2/2]

template<typename ResList >
auto LC::Util::oral::detail::HandleResultBehaviour ( ResultBehaviour::First  ,
ResList &&  list 
)
noexcept

Definition at line 1130 of file oral.h.

◆ HandleSelectorResult()

template<typename F , typename R >
LC::Util::oral::detail::HandleSelectorResult ( QString  ,
,
 
) -> HandleSelectorResult< F, R >

◆ HasAutogenPKey()

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

Definition at line 374 of file oral.h.

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

References LC::Util::IsDetected_v.

◆ IsRelational()

constexpr bool LC::Util::oral::detail::IsRelational ( ExprType  type)
noexcept

Definition at line 567 of file oral.h.

References Equal, Geq, Greater, Leq, Less, Like, and Neq.

◆ MakeExprTree()

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

Definition at line 779 of file oral.h.

References AsLeafData().

+ Here is the call graph for this function:

◆ MakeIndexedQueryHandler() [1/2]

template<auto... Ptrs, size_t... Idxs>
auto LC::Util::oral::detail::MakeIndexedQueryHandler ( MemberPtrs< Ptrs... >  ,
std::index_sequence< Idxs... >   
)
noexcept

Definition at line 1007 of file oral.h.

◆ MakeIndexedQueryHandler() [2/2]

template<auto Ptr>
auto LC::Util::oral::detail::MakeIndexedQueryHandler ( )
noexcept

Definition at line 1019 of file oral.h.

◆ MakeInserter()

template<typename T >
auto LC::Util::oral::detail::MakeInserter ( const CachedFieldsData data,
const QSqlQuery_ptr insertQuery,
bool  bindPrimaryKey 
)
noexcept

Definition at line 321 of file oral.h.

References LC::Util::DBLock::DumpError(), and ToVariantF().

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

◆ MorphFieldName()

template<typename T >
QString LC::Util::oral::detail::MorphFieldName ( QString  str)
noexcept

Definition at line 104 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 853 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 818 of file oral.h.

◆ operator+()

template<typename L , typename R , typename = std::enable_if_t<IsSelector<L> {} && IsSelector<R> {}>>
SelectorUnion<L, R> LC::Util::oral::detail::operator+ ( ,
 
)
noexcept

Definition at line 946 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 800 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 812 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 806 of file oral.h.

◆ operator|() [1/2]

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

Definition at line 841 of file oral.h.

◆ operator|() [2/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 847 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 859 of file oral.h.

◆ ReplaceTupleElem()

template<size_t RepIdx, typename NewType , typename... TupleArgs>
constexpr auto LC::Util::oral::detail::ReplaceTupleElem ( std::tuple< TupleArgs... > &&  tuple,
NewType &&  arg 
)
noexcept

Definition at line 1059 of file oral.h.

◆ ReplaceTupleElemImpl()

template<size_t RepIdx, typename NewType , typename Tuple , size_t... TupIdxs>
constexpr auto LC::Util::oral::detail::ReplaceTupleElemImpl ( Tuple &&  tuple,
NewType &&  arg,
std::index_sequence< TupIdxs... >   
)
noexcept

Definition at line 1050 of file oral.h.

◆ ToVariantF()

template<typename T >
QVariant LC::Util::oral::detail::ToVariantF ( const T &  t)
noexcept

◆ TypeToSql()

QString LC::Util::oral::detail::TypeToSql ( ExprType  type)
inlinenoexcept

Definition at line 535 of file oral.h.

References And, ConstTrue, Equal, Geq, Greater, LeafData, LeafStaticPlaceholder, Leq, Less, Like, Neq, Or, and LC::Util::Unreachable().

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

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

Variable Documentation

◆ AreComparableTypes

template<typename Seq , typename L , typename R >
constexpr auto LC::Util::oral::detail::AreComparableTypes = IsDetected_v<ComparableDetector, Seq, L, R> || IsDetected_v<ComparableDetector, Seq, R, L>

Definition at line 601 of file oral.h.

◆ BaseTypeCustomized

template<typename T >
constexpr bool LC::Util::oral::detail::BaseTypeCustomized = IsDetected_v<BaseTypeDetector, T>

Definition at line 206 of file oral.h.

◆ ConstTrueTree_v

◆ CountAllPtr

constexpr CountAll* LC::Util::oral::detail::CountAllPtr = nullptr
inline

Definition at line 917 of file oral.h.

◆ HasPKey

template<typename Seq >
constexpr auto LC::Util::oral::detail::HasPKey = IsDetected_v<FindPKeyDetector, Seq>

Definition at line 371 of file oral.h.

◆ SeqIndices

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

Definition at line 126 of file oral.h.

◆ SeqSize

template<typename S >
constexpr auto LC::Util::oral::detail::SeqSize = boost::fusion::result_of::size<S>::type::value

Definition at line 123 of file oral.h.

◆ TypeNameCustomized

template<typename T >
constexpr bool LC::Util::oral::detail::TypeNameCustomized = IsDetected_v<TypeNameDetector, T>

Definition at line 200 of file oral.h.