NCBI C++ ToolKit
Classes | Typedefs | Enumerations | Enumerator | Functions | Variables | Friends
Query Parser and Query Tree
+ Collaboration diagram for Query Parser and Query Tree:

Classes

class  CQueryFunctionBase
 Base class for evaluation functions. More...
 
class  CQueryExec
 Query execution environment holds the function registry and the execution context. More...
 
class  CQueryExecEvalFunc
 Expression evaluation visitor functor. More...
 
class  CQueryEval_BV_Value< BV >
 Query tree user object for storing bit-vectors. More...
 
class  CQueryFunction_BV_Base< BV >
 Base class for all bit-vector oriented function implementations. More...
 
class  CQueryFunction_BV_Logic< BV >
 Implementation of logical functions. More...
 
class  CQueryFunction_BV_Not< BV >
 Implementation of logical NOT. More...
 
class  CQueryFunction_BV_In_Or< BV >
 Implementation of IN as OR-ed EQ search. More...
 
class  IQueryParseUserObject
 Base class for query node user defined object. More...
 
class  CQueryParseNode
 Query node class. More...
 
struct  CQueryParseNode::SSrcLoc
 Source location (points to the position in the original src) All positions are 0 based. More...
 
class  CQueryParseTree
 Query tree and associated utility methods. More...
 
class  CQueryParseException
 Query parser exceptions. More...
 

Typedefs

typedef vector< CQueryParseTree::TNode * > CQueryFunctionBase::TArgVector
 Vector for easy argument access. More...
 
typedef unsigned int CQueryExec::TFieldID
 
typedef vector< CQueryFunctionBase * > CQueryExec::TFuncReg
 
typedef CSimpleBuffer CQueryEval_BV_Value< BV >::TBuffer
 
typedef BV CQueryEval_BV_Value< BV >::TBitVector
 
typedef CQueryEval_BV_Value< BV > CQueryFunction_BV_Base< BV >::TBVContainer
 
typedef CQueryFunction_BV_Base< BV > CQueryFunction_BV_Logic< BV >::TParent
 
typedef CQueryFunction_BV_Base< BV > CQueryFunction_BV_Not< BV >::TParent
 
typedef CQueryFunction_BV_Base< BV > CQueryFunction_BV_In_Or< BV >::TParent
 
typedef CTreeNode< CQueryParseNodeCQueryParseTree::TNode
 
typedef vector< stringCQueryParseTree::TFunctionNames
 List of keywords recognised as functions. More...
 

Enumerations

enum  CQueryParseNode::EType {
  CQueryParseNode::eNotSet = 0 , CQueryParseNode::eIdentifier , CQueryParseNode::eIntConst , CQueryParseNode::eFloatConst ,
  CQueryParseNode::eBoolConst , CQueryParseNode::eString , CQueryParseNode::eFunction , CQueryParseNode::eNot ,
  CQueryParseNode::eFieldSearch , CQueryParseNode::eLike , CQueryParseNode::eBetween , CQueryParseNode::eIn ,
  CQueryParseNode::eAnd , CQueryParseNode::eOr , CQueryParseNode::eSub , CQueryParseNode::eXor ,
  CQueryParseNode::eRange , CQueryParseNode::eEQ , CQueryParseNode::eGT , CQueryParseNode::eGE ,
  CQueryParseNode::eLT , CQueryParseNode::eLE , CQueryParseNode::eSelect , CQueryParseNode::eFrom ,
  CQueryParseNode::eWhere , CQueryParseNode::eList , CQueryParseNode::eMaxType
}
 Query node type. More...
 
enum  CQueryParseTree::ECase { CQueryParseTree::eCaseSensitiveUpper , CQueryParseTree::eCaseInsensitive }
 Case sensitive parsing. More...
 
enum  CQueryParseTree::ESyntaxCheck { CQueryParseTree::eSyntaxCheck , CQueryParseTree::eSyntaxRelax }
 Level of tolerance to syntax errors and problems. More...
 
enum  CQueryParseException::EErrCode { CQueryParseException::eIncorrectNodeType , CQueryParseException::eParserError , CQueryParseException::eCompileError , CQueryParseException::eUnknownFunction }
 

Functions

void Flatten_ParseTree (CQueryParseTree::TNode &node)
 Flatten the AND and the OR subtrees transforming them from binary subtrees to n-ary subtrees. More...
 
virtual CQueryFunctionBase::~CQueryFunctionBase ()
 
virtual bool CQueryFunctionBase::EvaluateChildrenFirst () const
 Do we evaluate before visiting the nodes children or after. More...
 
virtual void CQueryFunctionBase::Evaluate (CQueryParseTree::TNode &qnode)=0
 Query node evaluation function (performs actual programmed by the node action) More...
 
CQueryExecCQueryFunctionBase::GetExec ()
 Get reference on parent execution environment. More...
 
CQueryParseTreeCQueryFunctionBase::GetQueryTree ()
 Get query tree (execution context) More...
 
void CQueryFunctionBase::SetExec (CQueryExec &qexec)
 Set reference on parent query execution class. More...
 
 CQueryExec::CQueryExec ()
 
virtual CQueryExec::~CQueryExec ()
 
void CQueryExec::AddFunc (CQueryParseNode::EType func_type, CQueryFunctionBase *func)
 Register function implementation. More...
 
void CQueryExec::AddImplicitSearchFunc (CQueryFunctionBase *func)
 This is a callback for implicit search nodes Our syntax allows queries like (a=1) AND "search_term" Execution recognises "search_term" connected with logical operation represents a special case. More...
 
CQueryFunctionBaseCQueryExec::GetImplicitSearchFunc ()
 
CQueryFunctionBaseCQueryExec::GetFunc (CQueryParseNode::EType func_type)
 Return query function pointer (if registered). More...
 
virtual void CQueryExec::CallFunction (const string &name, CQueryParseTree::TNode &node)
 Extend this function to look up and invoke functions that appear in the query. More...
 
virtual void CQueryExec::Evaluate (CQueryParseTree &qtree)
 Run query tree evaluation. More...
 
virtual void CQueryExec::Evaluate (CQueryParseTree &qtree, CQueryParseTree::TNode &node)
 
virtual bool CQueryExec::ResolveIdentifier (const std::string &, bool &)
 If query has an identifier, this will resolve it in an application-specific way. More...
 
virtual bool CQueryExec::ResolveIdentifier (const std::string &, Int8 &)
 
virtual bool CQueryExec::ResolveIdentifier (const std::string &, double &)
 
virtual bool CQueryExec::ResolveIdentifier (const std::string &, std::string &)
 
virtual bool CQueryExec::ResolveIdentifier (const TFieldID &, bool &)
 
virtual bool CQueryExec::ResolveIdentifier (const TFieldID &, Int8 &)
 
virtual bool CQueryExec::ResolveIdentifier (const TFieldID &, double &)
 
virtual bool CQueryExec::ResolveIdentifier (const TFieldID &, std::string &)
 
virtual bool CQueryExec::HasIdentifier (const std::string &)
 
virtual TFieldID CQueryExec::GetIdentifier (const std::string &)
 
virtual CQueryParseNode::EType CQueryExec::IdentifierType (const std::string &)
 Some applications may know the type of an identifier. More...
 
virtual void CQueryExec::EvalStart ()
 
virtual bool CQueryExec::EvalNext (CQueryParseTree &)
 Move to (iterate) to next entry. More...
 
virtual bool CQueryExec::EvalComplete ()
 
int CQueryExec::GetQueriedCount () const
 
int CQueryExec::GetExceptionCount () const
 
CQueryParseTreeCQueryExec::GetQTree ()
 
 CQueryExec::CQueryExec (const CQueryExec &)
 
CQueryExecCQueryExec::operator= (const CQueryExec &)
 
 CQueryExecEvalFunc::CQueryExecEvalFunc (CQueryExec &exec)
 
ETreeTraverseCode CQueryExecEvalFunc::operator() (CTreeNode< CQueryParseNode > &tr, int delta)
 
 CQueryEval_BV_Value< BV >::CQueryEval_BV_Value ()
 
virtual void CQueryEval_BV_Value< BV >::Reset ()
 Reset user object (for reuse without reallocation) More...
 
TBufferCQueryEval_BV_Value< BV >::GetBuffer ()
 
TBitVectorCQueryEval_BV_Value< BV >::GetBV ()
 
TBufferCQueryEval_BV_Value< BV >::ReleaseBuffer ()
 
TBitVectorCQueryEval_BV_Value< BV >::ReleaseBV ()
 
void CQueryEval_BV_Value< BV >::SetBuffer (TBuffer *buf)
 Attach buffer (with ownership transfer) More...
 
void CQueryEval_BV_Value< BV >::SetBV (TBitVector *bv)
 Attach bitvector (with ownership transfer) More...
 
 CQueryEval_BV_Value< BV >::CQueryEval_BV_Value (const CQueryEval_BV_Value &)
 
CQueryEval_BV_ValueCQueryEval_BV_Value< BV >::operator= (const CQueryEval_BV_Value &)
 
TBVContainerCQueryFunction_BV_Base< BV >::GetContainer (CQueryParseTree::TNode &qnode)
 Extract user object out of the current node. More...
 
TBVContainerCQueryFunction_BV_Base< BV >::MakeContainer (CQueryParseTree::TNode &qnode)
 Create container if it does not exist. More...
 
BV * CQueryFunction_BV_Base< BV >::ArgToRes (CQueryParseTree::TNode &qnode, CQueryParseTree::TNode *arg_node)
 Unpack argument to result bitvector (use assignment for deserialization) More...
 
void CQueryFunction_BV_Base< BV >::ProcessArgVector (CQueryParseTree::TNode &qnode, BV *bv_res, CQueryFunctionBase::TArgVector &args, const bm::set_operation op_code)
 
 CQueryFunction_BV_Logic< BV >::CQueryFunction_BV_Logic (bm::set_operation op)
 
virtual void CQueryFunction_BV_Logic< BV >::Evaluate (CQueryParseTree::TNode &qnode)
 Query node evaluation function (performs actual programmed by the node action) More...
 
 CQueryFunction_BV_Not< BV >::CQueryFunction_BV_Not ()
 
virtual void CQueryFunction_BV_Not< BV >::Evaluate (CQueryParseTree::TNode &qnode)
 Query node evaluation function (performs actual programmed by the node action) More...
 
 CQueryFunction_BV_In_Or< BV >::CQueryFunction_BV_In_Or ()
 
virtual void CQueryFunction_BV_In_Or< BV >::Evaluate (CQueryParseTree::TNode &qnode)
 Query node evaluation function (performs actual programmed by the node action) More...
 
virtual void IQueryParseUserObject::Reset ()=0
 Reset user object (for reuse without reallocation) More...
 
virtual string IQueryParseUserObject::GetVisibleValue () const
 String value for debuging. More...
 
 CQueryParseNode::SSrcLoc::SSrcLoc (unsigned src_line=0, unsigned src_pos=0, unsigned len=0)
 
 CQueryParseNode::CQueryParseNode (const string &value, const string &orig_text, bool isIdent)
 Construct the query node. More...
 
 CQueryParseNode::CQueryParseNode (Int8 val, const string &orig_text)
 
 CQueryParseNode::CQueryParseNode (bool val, const string &orig_text)
 
 CQueryParseNode::CQueryParseNode (double val, const string &orig_text)
 
 CQueryParseNode::CQueryParseNode (EType op_type, const string &orig_text)
 
bool CQueryParseNode::IsExplicit () const
 TRUE if node was created as explicitly FALSE - node was created as a result of a default and the interpreter has a degree of freedom in execution. More...
 
void CQueryParseNode::SetExplicit (bool expl=true)
 
bool CQueryParseNode::IsNot () const
 Check if node is marked with NOT flag (like != ) More...
 
void CQueryParseNode::SetNot (bool n=true)
 
bool CQueryParseNode::IsLogic () const
 Returns TRUE if node describes logical operation (AND, OR, etc.) More...
 
bool CQueryParseNode::IsValue () const
 Returns TRUE if node is value (INT, String, etc.) More...
 
double CQueryParseNode::Elapsed () const
 Elapsed time in seconds. More...
 
double CQueryParseNode::GetElapsed () const
 Elapsed time in seconds. More...
 
void CQueryParseNode::SetElapsed (double e)
 Set node timing. More...
 
string CQueryParseNode::GetNodeTypeAsString () const
 Return query node type as a string (for debugging output) More...
 
static string CQueryParseNode::GetNodeTypeAsString (EType node_type)
 
 CQueryParseNode::CQueryParseNode ()
 
 CQueryParseTree::CQueryParseTree (TNode *clause=0)
 Contruct the query. Takes the ownership of the clause. More...
 
virtual CQueryParseTree::~CQueryParseTree ()
 
void CQueryParseTree::Parse (const char *query_str, ECase case_sense=eCaseInsensitive, ESyntaxCheck syntax_check=eSyntaxCheck, bool verbose=false, const TFunctionNames &functions=TFunctionNames(0), unsigned line=0, unsigned linePos=0)
 Query parser front-end function. More...
 
void CQueryParseTree::SetQueryTree (TNode *qtree)
 Replace current query tree with the new one. More...
 
const TNodeCQueryParseTree::GetQueryTree () const
 
TNodeCQueryParseTree::GetQueryTree ()
 
void CQueryParseTree::ResetUserObjects ()
 Reset all user objects attached to the parsing tree. More...
 
void CQueryParseTree::Print (CNcbiOstream &os) const
 Print the query tree (debugging) More...
 
 CQueryParseTree::CQueryParseTree (const CQueryParseTree &)
 
CQueryParseTreeCQueryParseTree::operator= (const CQueryParseTree &)
 
virtual const char * CQueryParseException::GetErrCodeString (void) const override
 Get error code interpreted as text. More...
 
 CQueryParseException::NCBI_EXCEPTION_DEFAULT (CQueryParseException, CException)
 

Variables

CQueryExecCQueryFunctionBase::m_QExec
 
TFuncReg CQueryExec::m_FuncReg
 
unique_ptr< CQueryFunctionBaseCQueryExec::m_ImplicitSearchFunc
 
CQueryParseTreeCQueryExec::m_QTree
 
int CQueryExec::m_ExceptionCount
 
int CQueryExec::m_QueriedCount
 
CQueryExecCQueryExecEvalFunc::m_Exec
 
unique_ptr< TBufferCQueryEval_BV_Value< BV >::m_BV_Buffer
 serialized bitvector More...
 
unique_ptr< BV > CQueryEval_BV_Value< BV >::m_BV
 bitvector More...
 
const bm::set_operation CQueryFunction_BV_Logic< BV >::m_OpCode
 
unsigned CQueryParseNode::SSrcLoc::line
 Src line number. More...
 
unsigned CQueryParseNode::SSrcLoc::pos
 Position in the src line. More...
 
unsigned CQueryParseNode::SSrcLoc::length
 Token length (optional) More...
 
EType CQueryParseNode::m_Type
 
Int8   CQueryParseNode::m_IntConst
 
bool   CQueryParseNode::m_BoolConst
 
double   CQueryParseNode::m_DoubleConst
 
union {
   Int8   CQueryParseNode::m_IntConst
 
   bool   CQueryParseNode::m_BoolConst
 
   double   CQueryParseNode::m_DoubleConst
 
}; 
 
string CQueryParseNode::m_Value
 
string CQueryParseNode::m_OrigText
 
bool CQueryParseNode::m_Explicit
 
bool CQueryParseNode::m_Not
 
SSrcLoc CQueryParseNode::m_Location
 Reference to original location in query. More...
 
double CQueryParseNode::m_Elapsed
 Execution timing. More...
 
CRef< IQueryParseUserObjectCQueryParseNode::m_UsrObj
 
unique_ptr< TNodeCQueryParseTree::m_Tree
 

Friends

class CQueryFunctionBase::CQueryExec
 
class CQueryExec::CQueryFunctionBase
 
class CQueryParseNode::CTreeNode< CQueryParseNode >
 

Utility functions

void CQueryFunctionBase::MakeArgVector (CQueryParseTree::TNode &qnode, TArgVector &args)
 Created vector of arguments (translate sub-nodes to vector) More...
 
CQueryParseTree::TNodeCQueryFunctionBase::GetArg0 (CQueryParseTree::TNode &qnode)
 Get first sub-node. More...
 

Source reference accessors

void CQueryParseNode::SetLoc (const SSrcLoc &loc)
 Set node location in the query text (for error diagnostics) More...
 
void CQueryParseNode::SetLoc (unsigned line, unsigned pos)
 
const SSrcLocCQueryParseNode::GetLoc () const
 

Value accessors

EType CQueryParseNode::GetType () const
 
const stringCQueryParseNode::GetStrValue () const
 
const stringCQueryParseNode::GetIdent () const
 
const stringCQueryParseNode::GetOriginalText () const
 
Int8 CQueryParseNode::GetInt () const
 
bool CQueryParseNode::GetBool () const
 
double CQueryParseNode::GetDouble () const
 
int CQueryParseNode::GetIdentIdx () const
 
const stringCQueryParseNode::GetOrig () const
 

User object operations

Methods to associate application specific data with parsing tree node.

Data should be encapsulated into a user object derived from CQueryParseBaseUserObject.

const IQueryParseUserObjectCQueryParseNode::GetUserObject () const
 Get user object. More...
 
IQueryParseUserObjectCQueryParseNode::GetUserObject ()
 
void CQueryParseNode::AttachUserObject (IQueryParseUserObject *obj)
 Set user object. Query node takes ownership. More...
 
void CQueryParseNode::SetUserObject (IQueryParseUserObject *obj)
 
void CQueryParseNode::ResetUserObject ()
 Reset the associated user object (see IQueryParseUserObject::Reset()) More...
 

Static node creation functions -

class factories working as virtual constructors

virtual TNodeCQueryParseTree::CreateNode (const string &value, const string &orig_text, bool isIdent)
 Create Identifier node or string node. More...
 
virtual TNodeCQueryParseTree::CreateNode (Int8 value, const string &orig_text)
 
virtual TNodeCQueryParseTree::CreateNode (bool value, const string &orig_text)
 
virtual TNodeCQueryParseTree::CreateNode (double value, const string &orig_text)
 
virtual TNodeCQueryParseTree::CreateNode (CQueryParseNode::EType op, TNode *arg1, TNode *arg2, const string &orig_text="")
 
virtual TNodeCQueryParseTree::CreateFuncNode (const string &func_name)
 Create function node. More...
 

Detailed Description

Typedef Documentation

◆ TArgVector

Vector for easy argument access.

Definition at line 72 of file query_exec.hpp.

◆ TBitVector

template<class BV >
typedef BV CQueryEval_BV_Value< BV >::TBitVector

Definition at line 58 of file query_exec_bv.hpp.

◆ TBuffer

template<class BV >
typedef CSimpleBuffer CQueryEval_BV_Value< BV >::TBuffer

Definition at line 57 of file query_exec_bv.hpp.

◆ TBVContainer

template<class BV >
typedef CQueryEval_BV_Value<BV> CQueryFunction_BV_Base< BV >::TBVContainer

Definition at line 91 of file query_exec_bv.hpp.

◆ TFieldID

typedef unsigned int CQueryExec::TFieldID

Definition at line 148 of file query_exec.hpp.

◆ TFuncReg

typedef vector<CQueryFunctionBase*> CQueryExec::TFuncReg
protected

Definition at line 236 of file query_exec.hpp.

◆ TFunctionNames

List of keywords recognised as functions.

Definition at line 293 of file query_parse.hpp.

◆ TNode

Definition at line 271 of file query_parse.hpp.

◆ TParent [1/3]

template<class BV >
typedef CQueryFunction_BV_Base<BV> CQueryFunction_BV_Logic< BV >::TParent

Definition at line 197 of file query_exec_bv.hpp.

◆ TParent [2/3]

template<class BV >
typedef CQueryFunction_BV_Base<BV> CQueryFunction_BV_Not< BV >::TParent

Definition at line 234 of file query_exec_bv.hpp.

◆ TParent [3/3]

template<class BV >
typedef CQueryFunction_BV_Base<BV> CQueryFunction_BV_In_Or< BV >::TParent

Definition at line 277 of file query_exec_bv.hpp.

Enumeration Type Documentation

◆ ECase

Case sensitive parsing.

Enumerator
eCaseSensitiveUpper 

Operators must come in upper case (AND)

eCaseInsensitive 

Case insensitive parsing (AnD)

Definition at line 280 of file query_parse.hpp.

◆ EErrCode

Enumerator
eIncorrectNodeType 
eParserError 
eCompileError 
eUnknownFunction 

Definition at line 366 of file query_parse.hpp.

◆ ESyntaxCheck

Level of tolerance to syntax errors and problems.

Enumerator
eSyntaxCheck 

Best possible check for errors.

eSyntaxRelax 

Relaxed parsing rules.

Definition at line 287 of file query_parse.hpp.

◆ EType

enum CQueryParseNode::EType ( void  )

Query node type.

Enumerator
eNotSet 

Produced by the (private) default constructor.

eIdentifier 

Identifier like db.field (Org, Fld12, etc.)

eIntConst 

Integer const.

eFloatConst 

Floating point const.

eBoolConst 

Boolean (TRUE or FALSE)

eString 

String ("free text")

eFunction 

Function.

eNot 
eFieldSearch 
eLike 
eBetween 
eIn 
eAnd 
eOr 
eSub 
eXor 
eRange 
eEQ 
eGT 
eGE 
eLT 
eLE 
eSelect 
eFrom 
eWhere 
eList 
eMaxType 

Definition at line 84 of file query_parse.hpp.

Function Documentation

◆ AddFunc()

void CQueryExec::AddFunc ( CQueryParseNode::EType  func_type,
CQueryFunctionBase func 
)

Register function implementation.

(with ownership transfer)

Definition at line 96 of file query_exec.cpp.

References i, CQueryExec::m_FuncReg, and CQueryFunctionBase::SetExec().

Referenced by CPhyloTreeDataSource::GetQueryExec(), CTDQueryDataSource::GetQueryExec(), CFeatureFilter::Init(), and CMacroExec::x_Init().

◆ AddImplicitSearchFunc()

void CQueryExec::AddImplicitSearchFunc ( CQueryFunctionBase func)

This is a callback for implicit search nodes Our syntax allows queries like (a=1) AND "search_term" Execution recognises "search_term" connected with logical operation represents a special case.

This method defines a reactor (function implementation).

Definition at line 105 of file query_exec.cpp.

References CQueryExec::m_ImplicitSearchFunc.

◆ ArgToRes()

template<class BV >
BV* CQueryFunction_BV_Base< BV >::ArgToRes ( CQueryParseTree::TNode qnode,
CQueryParseTree::TNode arg_node 
)
inlineprotected

◆ AttachUserObject()

void CQueryParseNode::AttachUserObject ( IQueryParseUserObject obj)

Set user object. Query node takes ownership.

Definition at line 150 of file query_parse.cpp.

References CQueryParseNode::m_UsrObj, and CRef< C, Locker >::Reset().

Referenced by CQueryParseNode::SetUserObject().

◆ CallFunction()

virtual void CQueryExec::CallFunction ( const string name,
CQueryParseTree::TNode node 
)
inlinevirtual

Extend this function to look up and invoke functions that appear in the query.

Reimplemented in CTreeQueryExec.

Definition at line 177 of file query_exec.hpp.

Referenced by CQueryFuncFunction::Evaluate().

◆ CQueryEval_BV_Value() [1/2]

template<class BV >
CQueryEval_BV_Value< BV >::CQueryEval_BV_Value ( )
inline

Definition at line 60 of file query_exec_bv.hpp.

◆ CQueryEval_BV_Value() [2/2]

template<class BV >
CQueryEval_BV_Value< BV >::CQueryEval_BV_Value ( const CQueryEval_BV_Value< BV > &  )
private

◆ CQueryExec() [1/2]

CQueryExec::CQueryExec ( )

Definition at line 78 of file query_exec.cpp.

References i, and CQueryExec::m_FuncReg.

◆ CQueryExec() [2/2]

CQueryExec::CQueryExec ( const CQueryExec )
private

◆ CQueryExecEvalFunc()

CQueryExecEvalFunc::CQueryExecEvalFunc ( CQueryExec exec)
inline

Definition at line 251 of file query_exec.hpp.

◆ CQueryFunction_BV_In_Or()

template<class BV >
CQueryFunction_BV_In_Or< BV >::CQueryFunction_BV_In_Or ( )
inline

Definition at line 279 of file query_exec_bv.hpp.

◆ CQueryFunction_BV_Logic()

template<class BV >
CQueryFunction_BV_Logic< BV >::CQueryFunction_BV_Logic ( bm::set_operation  op)
inline

Definition at line 199 of file query_exec_bv.hpp.

◆ CQueryFunction_BV_Not()

template<class BV >
CQueryFunction_BV_Not< BV >::CQueryFunction_BV_Not ( )
inline

Definition at line 236 of file query_exec_bv.hpp.

◆ CQueryParseNode() [1/6]

CQueryParseNode::CQueryParseNode ( )
private

Definition at line 43 of file query_parse.cpp.

◆ CQueryParseNode() [2/6]

CQueryParseNode::CQueryParseNode ( bool  val,
const string orig_text 
)
explicit

Definition at line 73 of file query_parse.cpp.

References val.

◆ CQueryParseNode() [3/6]

CQueryParseNode::CQueryParseNode ( const string value,
const string orig_text,
bool  isIdent 
)

Construct the query node.

Parameters
valueNode value
orig_textValue as it appears in the original program
isIdenttrue whe the string is identifier (no quoting)

Definition at line 51 of file query_parse.cpp.

◆ CQueryParseNode() [4/6]

CQueryParseNode::CQueryParseNode ( double  val,
const string orig_text 
)
explicit

Definition at line 83 of file query_parse.cpp.

References val.

◆ CQueryParseNode() [5/6]

CQueryParseNode::CQueryParseNode ( EType  op_type,
const string orig_text 
)
explicit

Definition at line 92 of file query_parse.cpp.

◆ CQueryParseNode() [6/6]

CQueryParseNode::CQueryParseNode ( Int8  val,
const string orig_text 
)
explicit

Definition at line 63 of file query_parse.cpp.

References val.

◆ CQueryParseTree() [1/2]

CQueryParseTree::CQueryParseTree ( const CQueryParseTree )
private

◆ CQueryParseTree() [2/2]

CQueryParseTree::CQueryParseTree ( TNode clause = 0)
explicit

Contruct the query. Takes the ownership of the clause.

Definition at line 212 of file query_parse.cpp.

◆ CreateFuncNode()

CQueryParseTree::TNode * CQueryParseTree::CreateFuncNode ( const string func_name)
virtual

Create function node.

Definition at line 278 of file query_parse.cpp.

References CQueryParseNode::eFunction.

◆ CreateNode() [1/5]

CQueryParseTree::TNode * CQueryParseTree::CreateNode ( bool  value,
const string orig_text 
)
virtual

Definition at line 248 of file query_parse.cpp.

References rapidjson::value.

◆ CreateNode() [2/5]

CQueryParseTree::TNode * CQueryParseTree::CreateNode ( const string value,
const string orig_text,
bool  isIdent 
)
virtual

Create Identifier node or string node.

Definition at line 228 of file query_parse.cpp.

References rapidjson::value.

Referenced by CMacroParser::x_ParseDo().

◆ CreateNode() [3/5]

CQueryParseTree::TNode * CQueryParseTree::CreateNode ( CQueryParseNode::EType  op,
CQueryParseTree::TNode arg1,
CQueryParseTree::TNode arg2,
const string orig_text = "" 
)
virtual

Definition at line 261 of file query_parse.cpp.

◆ CreateNode() [4/5]

CQueryParseTree::TNode * CQueryParseTree::CreateNode ( double  value,
const string orig_text 
)
virtual

Definition at line 255 of file query_parse.cpp.

References rapidjson::value.

◆ CreateNode() [5/5]

CQueryParseTree::TNode * CQueryParseTree::CreateNode ( Int8  value,
const string orig_text 
)
virtual

Definition at line 239 of file query_parse.cpp.

References rapidjson::value.

◆ Elapsed()

double CQueryParseNode::Elapsed ( void  ) const
inline

Elapsed time in seconds.

Definition at line 204 of file query_parse.hpp.

References CQueryParseNode::m_Elapsed.

Referenced by CQueryParseNode::GetElapsed().

◆ EvalComplete()

virtual bool CQueryExec::EvalComplete ( )
inlinevirtual

Reimplemented in CTreeQueryExec, and CTableQueryExec.

Definition at line 222 of file query_exec.hpp.

Referenced by CQueryParsePanel::CQueryJob::Execute().

◆ EvalNext()

virtual bool CQueryExec::EvalNext ( CQueryParseTree )
inlinevirtual

Move to (iterate) to next entry.

Reimplemented in CTreeQueryExec, CTableQueryExec, and CMacroQueryExec.

Definition at line 221 of file query_exec.hpp.

◆ EvalStart()

virtual void CQueryExec::EvalStart ( )
inlinevirtual

Reimplemented in CTreeQueryExec, and CTableQueryExec.

Definition at line 219 of file query_exec.hpp.

Referenced by CQueryParsePanel::CQueryJob::Execute().

◆ Evaluate() [1/6]

void CQueryExec::Evaluate ( CQueryParseTree qtree)
virtual

◆ Evaluate() [2/6]

void CQueryExec::Evaluate ( CQueryParseTree qtree,
CQueryParseTree::TNode node 
)
virtual

Definition at line 119 of file query_exec.cpp.

References CQueryExec::m_QTree, and TreeDepthFirstTraverse().

◆ Evaluate() [3/6]

template<class BV >
virtual void CQueryFunction_BV_Logic< BV >::Evaluate ( CQueryParseTree::TNode qnode)
inlinevirtual

Query node evaluation function (performs actual programmed by the node action)

Implements CQueryFunctionBase.

Definition at line 203 of file query_exec_bv.hpp.

References _ASSERT, CQueryFunction_BV_Base< BV >::ArgToRes(), CQueryFunction_BV_Logic< BV >::m_OpCode, CQueryFunctionBase::MakeArgVector(), and CQueryFunction_BV_Base< BV >::ProcessArgVector().

◆ Evaluate() [4/6]

template<class BV >
virtual void CQueryFunction_BV_Not< BV >::Evaluate ( CQueryParseTree::TNode qnode)
inlinevirtual

◆ Evaluate() [5/6]

template<class BV >
virtual void CQueryFunction_BV_In_Or< BV >::Evaluate ( CQueryParseTree::TNode qnode)
inlinevirtual

◆ Evaluate() [6/6]

virtual void CQueryFunctionBase::Evaluate ( CQueryParseTree::TNode qnode)
pure virtual

◆ EvaluateChildrenFirst()

virtual bool CQueryFunctionBase::EvaluateChildrenFirst ( ) const
inlinevirtual

Do we evaluate before visiting the nodes children or after.

Visiting after can allow us to avoid evaluating some sub-expressions

Returns
true if children should all be evaluated before parent for this type of node, otherwise false

Reimplemented in CQueryFuncPromoteAndOr.

Definition at line 81 of file query_exec.hpp.

Referenced by CQueryExecEvalFunc::operator()().

◆ Flatten_ParseTree()

void Flatten_ParseTree ( CQueryParseTree::TNode node)

◆ GetArg0()

CQueryParseTree::TNode * CQueryFunctionBase::GetArg0 ( CQueryParseTree::TNode qnode)
protected

◆ GetBool()

bool CQueryParseNode::GetBool ( void  ) const

◆ GetBuffer()

template<class BV >
TBuffer* CQueryEval_BV_Value< BV >::GetBuffer ( void  )
inline

◆ GetBV()

template<class BV >
TBitVector* CQueryEval_BV_Value< BV >::GetBV ( )
inline

◆ GetContainer()

template<class BV >
TBVContainer* CQueryFunction_BV_Base< BV >::GetContainer ( CQueryParseTree::TNode qnode)
inlineprotected

◆ GetDouble()

double CQueryParseNode::GetDouble ( void  ) const

◆ GetElapsed()

double CQueryParseNode::GetElapsed ( ) const
inline

Elapsed time in seconds.

Definition at line 206 of file query_parse.hpp.

References CQueryParseNode::Elapsed().

◆ GetErrCodeString()

virtual const char* CQueryParseException::GetErrCodeString ( void  ) const
inlineoverridevirtual

◆ GetExceptionCount()

int CQueryExec::GetExceptionCount ( ) const
inline

Definition at line 225 of file query_exec.hpp.

References CQueryExec::m_ExceptionCount.

◆ GetExec()

CQueryExec& CQueryFunctionBase::GetExec ( )
inlineprotected

Get reference on parent execution environment.

Definition at line 108 of file query_exec.hpp.

References CQueryFunctionBase::m_QExec.

Referenced by CQueryFunctionBase::GetQueryTree().

◆ GetFunc()

CQueryFunctionBase* CQueryExec::GetFunc ( CQueryParseNode::EType  func_type)
inline

Return query function pointer (if registered).

Definition at line 171 of file query_exec.hpp.

References CQueryExec::m_FuncReg.

Referenced by CQueryFunction_BV_In_Or< BV >::Evaluate(), CQueryExecPreProcessFunc::operator()(), and CQueryExecEvalFunc::operator()().

◆ GetIdent()

const string & CQueryParseNode::GetIdent ( void  ) const

◆ GetIdentIdx()

int CQueryParseNode::GetIdentIdx ( ) const

◆ GetIdentifier()

virtual TFieldID CQueryExec::GetIdentifier ( const std::string )
inlinevirtual

Reimplemented in CTreeQueryExec, and CTableQueryExec.

Definition at line 211 of file query_exec.hpp.

Referenced by CQueryFuncPromoteBase::PreProcess().

◆ GetImplicitSearchFunc()

CQueryFunctionBase* CQueryExec::GetImplicitSearchFunc ( )
inline

Definition at line 166 of file query_exec.hpp.

References CQueryExec::m_ImplicitSearchFunc.

Referenced by CQueryExecEvalFunc::operator()().

◆ GetInt()

Int8 CQueryParseNode::GetInt ( void  ) const

◆ GetLoc()

const SSrcLoc& CQueryParseNode::GetLoc ( void  ) const
inline

◆ GetNodeTypeAsString() [1/2]

std::string CQueryParseNode::GetNodeTypeAsString ( ) const

Return query node type as a string (for debugging output)

Definition at line 204 of file query_parse.cpp.

References CQueryParseNode::m_Type.

Referenced by BinOpsFunc(), and CQueryFuncPromoteBase::PreProcess().

◆ GetNodeTypeAsString() [2/2]

string CQueryParseNode::GetNodeTypeAsString ( EType  node_type)
static

◆ GetOrig()

const string& CQueryParseNode::GetOrig ( ) const
inline

◆ GetOriginalText()

const string& CQueryParseNode::GetOriginalText ( ) const
inline

Definition at line 168 of file query_parse.hpp.

References CQueryParseNode::m_OrigText.

◆ GetQTree()

CQueryParseTree* CQueryExec::GetQTree ( )
inlineprotected

Definition at line 229 of file query_exec.hpp.

References CQueryExec::m_QTree.

Referenced by CQueryFunctionBase::GetQueryTree().

◆ GetQueriedCount()

int CQueryExec::GetQueriedCount ( ) const
inline

Definition at line 224 of file query_exec.hpp.

References CQueryExec::m_QueriedCount.

Referenced by CQueryParsePanel::CQueryJob::Execute().

◆ GetQueryTree() [1/3]

CQueryParseTree & CQueryFunctionBase::GetQueryTree ( )
protected

Get query tree (execution context)

Definition at line 68 of file query_exec.cpp.

References CQueryFunctionBase::GetExec(), and CQueryExec::GetQTree().

Referenced by CQueryFunction_BV_In_Or< BV >::Evaluate().

◆ GetQueryTree() [2/3]

TNode* CQueryParseTree::GetQueryTree ( )
inline

Definition at line 322 of file query_parse.hpp.

References CQueryParseTree::m_Tree.

◆ GetQueryTree() [3/3]

const TNode* CQueryParseTree::GetQueryTree ( ) const
inline

◆ GetStrValue()

const string & CQueryParseNode::GetStrValue ( ) const

◆ GetType()

EType CQueryParseNode::GetType ( void  ) const
inline

◆ GetUserObject() [1/2]

IQueryParseUserObject* CQueryParseNode::GetUserObject ( )
inline

Definition at line 224 of file query_parse.hpp.

References CRef< C, Locker >::GetPointer(), and CQueryParseNode::m_UsrObj.

◆ GetUserObject() [2/2]

const IQueryParseUserObject* CQueryParseNode::GetUserObject ( ) const
inline

◆ GetVisibleValue()

virtual string IQueryParseUserObject::GetVisibleValue ( ) const
inlinevirtual

String value for debuging.

Reimplemented in CQueryNodeValue.

Definition at line 67 of file query_parse.hpp.

Referenced by CQueryTreePrintFunc::PrintElement().

◆ HasIdentifier()

virtual bool CQueryExec::HasIdentifier ( const std::string )
inlinevirtual

◆ IdentifierType()

virtual CQueryParseNode::EType CQueryExec::IdentifierType ( const std::string )
inlinevirtual

Some applications may know the type of an identifier.

This hook should be overriden to return an identifier's type, when available. Return one of eIntConst, eBoolConst, eFloatConst, eString, or eNotSet.

Reimplemented in CTableQueryExec, and CTreeQueryExec.

Definition at line 216 of file query_exec.hpp.

References CQueryParseNode::eNotSet.

Referenced by CQueryFuncPromoteBase::PreProcess().

◆ IsExplicit()

bool CQueryParseNode::IsExplicit ( void  ) const
inline

TRUE if node was created as explicitly FALSE - node was created as a result of a default and the interpreter has a degree of freedom in execution.

Definition at line 181 of file query_parse.hpp.

References CQueryParseNode::m_Explicit.

Referenced by CQueryTreePrintFunc::PrintElement().

◆ IsLogic()

bool CQueryParseNode::IsLogic ( ) const
inline

Returns TRUE if node describes logical operation (AND, OR, etc.)

Definition at line 189 of file query_parse.hpp.

References CQueryParseNode::eAnd, CQueryParseNode::eNot, CQueryParseNode::eOr, CQueryParseNode::eSub, CQueryParseNode::eXor, and CQueryParseNode::m_Type.

Referenced by CQueryFuncPromoteBase::PreProcess().

◆ IsNot()

bool CQueryParseNode::IsNot ( ) const
inline

Check if node is marked with NOT flag (like != )

Definition at line 185 of file query_parse.hpp.

References CQueryParseNode::m_Not.

Referenced by CQueryTreePrintFunc::operator()(), and CQueryTreePrintFunc::PrintElement().

◆ IsValue()

bool CQueryParseNode::IsValue ( void  ) const
inline

◆ MakeArgVector()

void CQueryFunctionBase::MakeArgVector ( CQueryParseTree::TNode qnode,
TArgVector args 
)
protected

◆ MakeContainer()

template<class BV >
TBVContainer* CQueryFunction_BV_Base< BV >::MakeContainer ( CQueryParseTree::TNode qnode)
inlineprotected

◆ NCBI_EXCEPTION_DEFAULT()

CQueryParseException::NCBI_EXCEPTION_DEFAULT ( CQueryParseException  ,
CException   
)

◆ operator()()

ETreeTraverseCode CQueryExecEvalFunc::operator() ( CTreeNode< CQueryParseNode > &  tr,
int  delta 
)
inline

◆ operator=() [1/3]

template<class BV >
CQueryEval_BV_Value& CQueryEval_BV_Value< BV >::operator= ( const CQueryEval_BV_Value< BV > &  )
private

◆ operator=() [2/3]

CQueryExec& CQueryExec::operator= ( const CQueryExec )
private

◆ operator=() [3/3]

CQueryParseTree& CQueryParseTree::operator= ( const CQueryParseTree )
private

◆ Parse()

void CQueryParseTree::Parse ( const char *  query_str,
ECase  case_sense = eCaseInsensitive,
ESyntaxCheck  syntax_check = eSyntaxCheck,
bool  verbose = false,
const TFunctionNames functions = TFunctionNames(0),
unsigned  line = 0,
unsigned  linePos = 0 
)

Query parser front-end function.

Parameters
query_strQuery string subject of parsing
case_senseCase sensitivity (AND, AnD, etc.)
syntax_checkSensitivity to syntax errors
verboseDebug print switch
functionsList of names recognised as functions

Definition at line 368 of file parser.cpp.

References env, CResourcePool_Base< Value, Lock, CF >::ForgetAll(), CNcbiEnvironment::Get(), CNcbiApplicationAPI::GetEnvironment(), CResourcePool_Base< Value, Lock, CF >::GetFreeList(), CNcbiApplicationAPI::InstanceGuard(), ncbi_q_parse(), NCBI_THROW, CQueryParseTree::SetQueryTree(), and yydebug.

Referenced by CFeatureFilter::Init(), CQueryParsePanel::x_ExecuteQuery(), and CQueryParsePanel::x_IsValidQuery().

◆ Print()

void CQueryParseTree::Print ( CNcbiOstream os) const

Print the query tree (debugging)

Definition at line 201 of file query_tree_print.cpp.

References CQueryParseTree::GetQueryTree(), and TreeDepthFirstTraverse().

Referenced by CQueryParsePanel::x_ExecuteQuery().

◆ ProcessArgVector()

template<class BV >
void CQueryFunction_BV_Base< BV >::ProcessArgVector ( CQueryParseTree::TNode qnode,
BV *  bv_res,
CQueryFunctionBase::TArgVector args,
const bm::set_operation  op_code 
)
inlineprotected

◆ ReleaseBuffer()

template<class BV >
TBuffer* CQueryEval_BV_Value< BV >::ReleaseBuffer ( )
inline

Definition at line 68 of file query_exec_bv.hpp.

References CQueryEval_BV_Value< BV >::m_BV_Buffer.

◆ ReleaseBV()

template<class BV >
TBitVector* CQueryEval_BV_Value< BV >::ReleaseBV ( )
inline

Definition at line 69 of file query_exec_bv.hpp.

References CQueryEval_BV_Value< BV >::m_BV.

◆ Reset() [1/2]

template<class BV >
virtual void CQueryEval_BV_Value< BV >::Reset ( )
inlinevirtual

Reset user object (for reuse without reallocation)

Implements IQueryParseUserObject.

Definition at line 61 of file query_exec_bv.hpp.

References CQueryEval_BV_Value< BV >::m_BV, and CQueryEval_BV_Value< BV >::m_BV_Buffer.

◆ Reset() [2/2]

virtual void IQueryParseUserObject::Reset ( )
pure virtual

Reset user object (for reuse without reallocation)

Implemented in CQueryEval_BV_Value< BV >, CSGQueryNodeValue, CQueryNodeValue, and CMQueryNodeValue.

Referenced by CQueryParseNode::ResetUserObject().

◆ ResetUserObject()

void CQueryParseNode::ResetUserObject ( )

◆ ResetUserObjects()

void CQueryParseTree::ResetUserObjects ( )

Reset all user objects attached to the parsing tree.

Definition at line 307 of file query_parse.cpp.

References CQueryParseTree::GetQueryTree(), and TreeDepthFirstTraverse().

◆ ResolveIdentifier() [1/8]

virtual bool CQueryExec::ResolveIdentifier ( const std::string ,
bool  
)
inlinevirtual

If query has an identifier, this will resolve it in an application-specific way.

Returns true if resolved, with the data item's value in 'value'. Using field identifiers, if available, such as column numbers or biotree feature IDs will be faster.

Reimplemented in CFeatureFilter, CTreeQueryExec, and CTableQueryExec.

Definition at line 192 of file query_exec.hpp.

Referenced by CSGQueryFunctionValue::Evaluate(), CQueryFuncPromoteAndOr::Evaluate(), CQueryFuncPromoteLogic::Evaluate(), and CQueryFuncPromoteBase::ResolveFieldValue().

◆ ResolveIdentifier() [2/8]

virtual bool CQueryExec::ResolveIdentifier ( const std::string ,
double &   
)
inlinevirtual

Reimplemented in CTreeQueryExec, CTableQueryExec, and CFeatureFilter.

Definition at line 196 of file query_exec.hpp.

◆ ResolveIdentifier() [3/8]

virtual bool CQueryExec::ResolveIdentifier ( const std::string ,
Int8  
)
inlinevirtual

Reimplemented in CTreeQueryExec, CTableQueryExec, and CFeatureFilter.

Definition at line 194 of file query_exec.hpp.

◆ ResolveIdentifier() [4/8]

virtual bool CQueryExec::ResolveIdentifier ( const std::string ,
std::string  
)
inlinevirtual

Reimplemented in CTreeQueryExec, CTableQueryExec, and CFeatureFilter.

Definition at line 198 of file query_exec.hpp.

◆ ResolveIdentifier() [5/8]

virtual bool CQueryExec::ResolveIdentifier ( const TFieldID ,
bool  
)
inlinevirtual

Reimplemented in CTreeQueryExec, and CTableQueryExec.

Definition at line 201 of file query_exec.hpp.

◆ ResolveIdentifier() [6/8]

virtual bool CQueryExec::ResolveIdentifier ( const TFieldID ,
double &   
)
inlinevirtual

Reimplemented in CTreeQueryExec, and CTableQueryExec.

Definition at line 205 of file query_exec.hpp.

◆ ResolveIdentifier() [7/8]

virtual bool CQueryExec::ResolveIdentifier ( const TFieldID ,
Int8  
)
inlinevirtual

Reimplemented in CTreeQueryExec, and CTableQueryExec.

Definition at line 203 of file query_exec.hpp.

◆ ResolveIdentifier() [8/8]

virtual bool CQueryExec::ResolveIdentifier ( const TFieldID ,
std::string  
)
inlinevirtual

Reimplemented in CTreeQueryExec, and CTableQueryExec.

Definition at line 207 of file query_exec.hpp.

◆ SetBuffer()

template<class BV >
void CQueryEval_BV_Value< BV >::SetBuffer ( TBuffer buf)
inline

Attach buffer (with ownership transfer)

Definition at line 72 of file query_exec_bv.hpp.

References buf, CQueryEval_BV_Value< BV >::m_BV, and CQueryEval_BV_Value< BV >::m_BV_Buffer.

◆ SetBV()

template<class BV >
void CQueryEval_BV_Value< BV >::SetBV ( TBitVector bv)
inline

◆ SetElapsed()

void CQueryParseNode::SetElapsed ( double  e)
inline

Set node timing.

Definition at line 209 of file query_parse.hpp.

References CQueryParseNode::m_Elapsed.

Referenced by CQueryExecEvalFunc::operator()().

◆ SetExec()

void CQueryFunctionBase::SetExec ( CQueryExec qexec)
inlineprivate

Set reference on parent query execution class.

Definition at line 116 of file query_exec.hpp.

References CQueryFunctionBase::m_QExec.

Referenced by CQueryExec::AddFunc().

◆ SetExplicit()

void CQueryParseNode::SetExplicit ( bool  expl = true)
inline

Definition at line 182 of file query_parse.hpp.

References CQueryParseNode::m_Explicit.

◆ SetLoc() [1/2]

void CQueryParseNode::SetLoc ( const SSrcLoc loc)
inline

Set node location in the query text (for error diagnostics)

Definition at line 151 of file query_parse.hpp.

References CQueryParseNode::m_Location.

◆ SetLoc() [2/2]

void CQueryParseNode::SetLoc ( unsigned  line,
unsigned  pos 
)
inline

◆ SetNot()

void CQueryParseNode::SetNot ( bool  n = true)
inline

Definition at line 186 of file query_parse.hpp.

References CQueryParseNode::m_Not, and n.

◆ SetQueryTree()

void CQueryParseTree::SetQueryTree ( TNode qtree)

Replace current query tree with the new one.

CQueryParseTree takes ownership on the passed argument.

Definition at line 221 of file query_parse.cpp.

References CQueryParseTree::m_Tree.

Referenced by CQueryParseTree::Parse().

◆ SetUserObject()

void CQueryParseNode::SetUserObject ( IQueryParseUserObject obj)
inline

Definition at line 229 of file query_parse.hpp.

References CQueryParseNode::AttachUserObject().

Referenced by CQueryFuncPromoteBase::PreProcess().

◆ SSrcLoc()

CQueryParseNode::SSrcLoc::SSrcLoc ( unsigned  src_line = 0,
unsigned  src_pos = 0,
unsigned  len = 0 
)
inline

Definition at line 129 of file query_parse.hpp.

◆ ~CQueryExec()

CQueryExec::~CQueryExec ( )
virtual

Definition at line 89 of file query_exec.cpp.

References i, and CQueryExec::m_FuncReg.

◆ ~CQueryFunctionBase()

CQueryFunctionBase::~CQueryFunctionBase ( )
virtual

Definition at line 40 of file query_exec.cpp.

◆ ~CQueryParseTree()

CQueryParseTree::~CQueryParseTree ( )
virtual

Definition at line 217 of file query_parse.cpp.

Variable Documentation

◆ 

union { ... }

◆ length

unsigned CQueryParseNode::SSrcLoc::length

Token length (optional)

Definition at line 127 of file query_parse.hpp.

◆ line

unsigned CQueryParseNode::SSrcLoc::line

◆  [1/2]

bool { ... } ::m_BoolConst

Definition at line 252 of file query_parse.hpp.

◆ m_BoolConst [2/2]

bool CQueryParseNode::m_BoolConst

Definition at line 252 of file query_parse.hpp.

Referenced by CQueryParseNode::GetBool().

◆ m_BV

template<class BV >
unique_ptr<BV> CQueryEval_BV_Value< BV >::m_BV
private

◆ m_BV_Buffer

template<class BV >
unique_ptr<TBuffer> CQueryEval_BV_Value< BV >::m_BV_Buffer
private

◆ m_DoubleConst [1/2]

double CQueryParseNode::m_DoubleConst

Definition at line 253 of file query_parse.hpp.

Referenced by CQueryParseNode::GetDouble().

◆  [2/2]

double { ... } ::m_DoubleConst

Definition at line 253 of file query_parse.hpp.

◆ m_Elapsed

double CQueryParseNode::m_Elapsed
private

Execution timing.

Definition at line 260 of file query_parse.hpp.

Referenced by CQueryParseNode::Elapsed(), and CQueryParseNode::SetElapsed().

◆ m_ExceptionCount

int CQueryExec::m_ExceptionCount
protected

◆ m_Exec

CQueryExec& CQueryExecEvalFunc::m_Exec
private

Definition at line 319 of file query_exec.hpp.

Referenced by CQueryExecEvalFunc::operator()().

◆ m_Explicit

bool CQueryParseNode::m_Explicit
private

Definition at line 257 of file query_parse.hpp.

Referenced by CQueryParseNode::IsExplicit(), and CQueryParseNode::SetExplicit().

◆ m_FuncReg

TFuncReg CQueryExec::m_FuncReg
protected

◆ m_ImplicitSearchFunc

unique_ptr<CQueryFunctionBase> CQueryExec::m_ImplicitSearchFunc
protected

◆  [1/2]

Int8 { ... } ::m_IntConst

Definition at line 251 of file query_parse.hpp.

◆ m_IntConst [2/2]

Int8 CQueryParseNode::m_IntConst

Definition at line 251 of file query_parse.hpp.

Referenced by CQueryParseNode::GetInt().

◆ m_Location

SSrcLoc CQueryParseNode::m_Location
private

Reference to original location in query.

Definition at line 259 of file query_parse.hpp.

Referenced by CQueryParseNode::GetLoc(), and CQueryParseNode::SetLoc().

◆ m_Not

bool CQueryParseNode::m_Not
private

Definition at line 258 of file query_parse.hpp.

Referenced by CQueryParseNode::IsNot(), and CQueryParseNode::SetNot().

◆ m_OpCode

template<class BV >
const bm::set_operation CQueryFunction_BV_Logic< BV >::m_OpCode
protected

Definition at line 224 of file query_exec_bv.hpp.

Referenced by CQueryFunction_BV_Logic< BV >::Evaluate().

◆ m_OrigText

string CQueryParseNode::m_OrigText
private

◆ m_QExec

CQueryExec* CQueryFunctionBase::m_QExec
protected

◆ m_QTree

CQueryParseTree* CQueryExec::m_QTree
protected

◆ m_QueriedCount

int CQueryExec::m_QueriedCount
protected

◆ m_Tree

unique_ptr<TNode> CQueryParseTree::m_Tree
private

◆ m_Type

EType CQueryParseNode::m_Type
private

◆ m_UsrObj

CRef<IQueryParseUserObject> CQueryParseNode::m_UsrObj
private

◆ m_Value

string CQueryParseNode::m_Value
private

Definition at line 255 of file query_parse.hpp.

Referenced by CQueryParseNode::GetIdent(), and CQueryParseNode::GetStrValue().

◆ pos

unsigned CQueryParseNode::SSrcLoc::pos

Friends

◆ CQueryExec

friend class CQueryExec
friend

Definition at line 114 of file query_exec.hpp.

◆ CQueryFunctionBase

friend class CQueryFunctionBase
friend

Definition at line 228 of file query_exec.hpp.

◆ CTreeNode< CQueryParseNode >

friend class CTreeNode< CQueryParseNode >
friend

Definition at line 245 of file query_parse.hpp.

Modified on Mon May 13 04:33:41 2024 by modify_doxy.py rev. 669887