Case sensitive parsing.
Enumerator eCaseSensitiveUpperOperators must come in upper case (AND)
eCaseInsensitiveCase insensitive parsing (AnD)
Definition at line 280 of file query_parse.hpp.
◆ EErrCode Enumerator eIncorrectNodeType eParserError eCompileError eUnknownFunctionDefinition at line 366 of file query_parse.hpp.
◆ ESyntaxCheckLevel of tolerance to syntax errors and problems.
Enumerator eSyntaxCheckBest possible check for errors.
eSyntaxRelaxRelaxed parsing rules.
Definition at line 287 of file query_parse.hpp.
◆ ETypeQuery node type.
Enumerator eNotSetProduced by the (private) default constructor.
eIdentifierIdentifier like db.field (Org, Fld12, etc.)
eIntConstInteger const.
eFloatConstFloating point const.
eBoolConstBoolean (TRUE or FALSE)
eStringString ("free text")
eFunctionFunction.
eNot eFieldSearch eLike eBetween eIn eAnd eOr eSub eXor eRange eEQ eGT eGE eLT eLE eSelect eFrom eWhere eList eMaxTypeDefinition at line 84 of file query_parse.hpp.
◆ AddFunc() ◆ AddImplicitSearchFunc()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() ◆ AttachUserObject() ◆ CallFunction() ◆ CQueryEval_BV_Value() [1/2] ◆ CQueryEval_BV_Value() [2/2] ◆ CQueryExec() [1/2] CQueryExec::CQueryExec ( ) ◆ CQueryExec() [2/2] ◆ CQueryExecEvalFunc() ◆ CQueryFunction_BV_In_Or() ◆ CQueryFunction_BV_Logic() ◆ CQueryFunction_BV_Not() ◆ CQueryParseNode() [1/6] CQueryParseNode::CQueryParseNode ( ) privateDefinition at line 43 of file query_parse.cpp.
◆ CQueryParseNode() [2/6] ◆ CQueryParseNode() [3/6]Construct the query node.
Definition at line 51 of file query_parse.cpp.
◆ CQueryParseNode() [4/6] CQueryParseNode::CQueryParseNode ( double val, const string & orig_text ) explicit ◆ CQueryParseNode() [5/6] ◆ CQueryParseNode() [6/6] ◆ CQueryParseTree() [1/2] ◆ 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() ◆ CreateNode() [1/5] ◆ CreateNode() [2/5] ◆ CreateNode() [3/5] ◆ CreateNode() [4/5] ◆ CreateNode() [5/5] ◆ Elapsed() double CQueryParseNode::Elapsed ( void ) const inline ◆ EvalComplete() virtual bool CQueryExec::EvalComplete ( ) inlinevirtual ◆ EvalNext() ◆ EvalStart() virtual void CQueryExec::EvalStart ( ) inlinevirtual ◆ Evaluate() [1/6] ◆ Evaluate() [2/6] ◆ Evaluate() [3/6] ◆ Evaluate() [4/6] ◆ Evaluate() [5/6]Query node evaluation function (performs actual programmed by the node action)
Implements CQueryFunctionBase.
Definition at line 282 of file query_exec_bv.hpp.
References _ASSERT, bm::operation_deserializer< BV >::deserialize(), CQueryParseNode::eEQ, CTreeNode< TValue, TKeyGetterP >::eNoDelete, CQueryFunctionBase::Evaluate(), CQueryEval_BV_Value< BV >::GetBuffer(), CQueryEval_BV_Value< BV >::GetBV(), CQueryFunction_BV_Base< BV >::GetContainer(), CQueryExec::GetFunc(), CQueryFunctionBase::GetQueryTree(), CTreeNode< TValue, TKeyGetterP >::GetValue(), i, CQueryFunctionBase::m_QExec, CQueryFunctionBase::MakeArgVector(), CQueryFunction_BV_Base< BV >::MakeContainer(), NCBI_THROW, bm::set_OR, and CQueryEval_BV_Value< BV >::SetBV().
◆ Evaluate() [6/6]Query node evaluation function (performs actual programmed by the node action)
Implemented in CQueryFunction_BV_In_Or< BV >, CQueryFunction_BV_Not< BV >, CQueryFunction_BV_Logic< BV >, CQueryFuncPromoteBetween, CQueryFuncPromoteGtLt, CQueryFuncLike, CQueryFuncPromoteIn, CQueryFuncPromoteEq, CQueryFuncPromoteLogic, CQueryFuncPromoteAndOr, CQueryFuncPromoteIdentifier, CQueryFuncPromoteValue, CQueryFuncFunction, CQueryFuncRTVar, CMQueryFunctionOps, CMQueryFunctionOps_Between, CMQueryFunctionOps_In, CMQueryFunctionOps_Like, CMQueryFunctionOps_Comparison, CMQueryFunctionOps_BooleanNot, CMQueryFunctionOps_BooleanBinary, CSGQueryFunctionCompare, CSGQueryFunctionLogic, CSGQueryFunctionValue, CQueryFuncAssignment, CMQueryFunctionDummy, CMQueryFunctionFunction, CMQueryFunctionAssignment, CMQueryFunctionRTVar, and CMQueryFunctionValue.
Referenced by CQueryFunction_BV_In_Or< BV >::Evaluate(), and CQueryExecEvalFunc::operator()().
◆ EvaluateChildrenFirst() virtual bool CQueryFunctionBase::EvaluateChildrenFirst ( ) const inlinevirtualDo we evaluate before visiting the nodes children or after.
Visiting after can allow us to avoid evaluating some sub-expressions
Reimplemented in CQueryFuncPromoteAndOr.
Definition at line 81 of file query_exec.hpp.
Referenced by CQueryExecEvalFunc::operator()().
◆ Flatten_ParseTree()Flatten the AND and the OR subtrees transforming them from binary subtrees to n-ary subtrees.
Definition at line 38 of file parse_utils.cpp.
References CTreeNode< TValue, TKeyGetterP >::AddNode(), CTreeNode< TValue, TKeyGetterP >::DetachNode(), CQueryParseNode::eAnd, CQueryParseNode::eOr, CTreeNode< TValue, TKeyGetterP >::RemoveNode(), CTreeNode< TValue, TKeyGetterP >::SubNodeBegin(), and CTreeNode< TValue, TKeyGetterP >::SubNodeEnd().
Referenced by CQueryParsePanel::x_ExecuteQuery(), and CMacroParser::x_QParseWhere().
◆ GetArg0() ◆ GetBool() bool CQueryParseNode::GetBool ( void ) const ◆ GetBuffer() ◆ GetBV() ◆ GetContainer() ◆ GetDouble() double CQueryParseNode::GetDouble ( void ) const ◆ GetElapsed() double CQueryParseNode::GetElapsed ( ) const inline ◆ GetErrCodeString() virtual const char* CQueryParseException::GetErrCodeString ( void ) const inlineoverridevirtual ◆ GetExceptionCount() int CQueryExec::GetExceptionCount ( ) const inline ◆ GetExec() ◆ GetFunc() ◆ GetIdent() const string & CQueryParseNode::GetIdent ( void ) const ◆ GetIdentIdx() int CQueryParseNode::GetIdentIdx ( ) const ◆ GetIdentifier() ◆ GetImplicitSearchFunc() ◆ GetInt() Int8 CQueryParseNode::GetInt ( void ) const ◆ GetLoc() ◆ GetNodeTypeAsString() [1/2] std::string CQueryParseNode::GetNodeTypeAsString ( ) const ◆ GetNodeTypeAsString() [2/2] string CQueryParseNode::GetNodeTypeAsString ( EType node_type ) staticDefinition at line 163 of file query_parse.cpp.
References CQueryParseNode::eAnd, CQueryParseNode::eBetween, CQueryParseNode::eBoolConst, CQueryParseNode::eEQ, CQueryParseNode::eFieldSearch, CQueryParseNode::eFloatConst, CQueryParseNode::eFrom, CQueryParseNode::eFunction, CQueryParseNode::eGE, CQueryParseNode::eGT, CQueryParseNode::eIdentifier, CQueryParseNode::eIn, CQueryParseNode::eIntConst, CQueryParseNode::eLE, CQueryParseNode::eLike, CQueryParseNode::eList, CQueryParseNode::eLT, CQueryParseNode::eNot, CQueryParseNode::eNotSet, CQueryParseNode::eOr, CQueryParseNode::eRange, CQueryParseNode::eSelect, CQueryParseNode::eString, CQueryParseNode::eSub, CQueryParseNode::eWhere, and CQueryParseNode::eXor.
◆ GetOrig() ◆ GetOriginalText() const string& CQueryParseNode::GetOriginalText ( ) const inline ◆ GetQTree() ◆ GetQueriedCount() int CQueryExec::GetQueriedCount ( ) const inline ◆ GetQueryTree() [1/3] ◆ GetQueryTree() [2/3] TNode* CQueryParseTree::GetQueryTree ( ) inline ◆ GetQueryTree() [3/3] const TNode* CQueryParseTree::GetQueryTree ( ) const inlineDefinition at line 321 of file query_parse.hpp.
References CQueryParseTree::m_Tree.
Referenced by CTableQueryExec::EvalNext(), CTreeQueryExec::EvalNext(), CQueryExec::Evaluate(), CMacroExec::EvaluateTree(), CFeatureFilter::Init(), CDoQueryTreeGetArgs::operator()(), CFeatureFilter::Pass(), CQueryParseTree::Print(), CQueryParseTree::ResetUserObjects(), CQueryParsePanel::x_ExecuteQuery(), CMacroExec::x_GetTopUserNodeValue(), CMacroExec::x_Init(), CQueryParsePanel::x_IsValidQuery(), CMacroParser::x_ParseDo(), and CQueryParsePanel::x_StartQueryJob().
◆ GetStrValue()Definition at line 102 of file query_parse.cpp.
References CQueryParseNode::eFloatConst, CQueryParseNode::eFunction, CQueryParseNode::eIdentifier, CQueryParseNode::eIntConst, CQueryParseNode::eList, CQueryParseNode::eString, CQueryParseNode::m_OrigText, CQueryParseNode::m_Type, CQueryParseNode::m_Value, and NCBI_THROW.
Referenced by CQueryTreeListFunctions::operator()(), CDoQueryTreeGetArgs::operator()(), CQueryHighlightFunction::operator()(), CQueryTreePrintFunc::operator()(), and CQueryFuncPromoteBase::PreProcess().
◆ GetType() EType CQueryParseNode::GetType ( void ) const inline ◆ GetUserObject() [1/2] ◆ GetUserObject() [2/2] ◆ GetVisibleValue() virtual string IQueryParseUserObject::GetVisibleValue ( ) const inlinevirtual ◆ HasIdentifier() ◆ IdentifierType() ◆ IsExplicit() bool CQueryParseNode::IsExplicit ( void ) const inline ◆ IsLogic() bool CQueryParseNode::IsLogic ( ) const inline ◆ IsNot() bool CQueryParseNode::IsNot ( ) const inline ◆ IsValue() bool CQueryParseNode::IsValue ( void ) const inline ◆ MakeArgVector()Created vector of arguments (translate sub-nodes to vector)
Definition at line 44 of file query_exec.cpp.
References i, CTreeNode< TValue, TKeyGetterP >::SubNodeBegin(), and CTreeNode< TValue, TKeyGetterP >::SubNodeEnd().
Referenced by CQueryFuncAssignment::Evaluate(), CSGQueryFunctionLogic::Evaluate(), CSGQueryFunctionCompare::Evaluate(), CQueryFuncFunction::Evaluate(), CQueryFuncPromoteAndOr::Evaluate(), CQueryFuncPromoteLogic::Evaluate(), CQueryFuncPromoteEq::Evaluate(), CQueryFuncPromoteIn::Evaluate(), CQueryFuncLike::Evaluate(), CQueryFuncPromoteGtLt::Evaluate(), CQueryFuncPromoteBetween::Evaluate(), CQueryFunction_BV_Logic< BV >::Evaluate(), CQueryFunction_BV_Not< BV >::Evaluate(), CQueryFunction_BV_In_Or< BV >::Evaluate(), CQueryFuncPromoteBase::PreProcess(), and CMQueryFunctionOps::x_InitReferences().
◆ MakeContainer() ◆ NCBI_EXCEPTION_DEFAULT() ◆ operator()()Definition at line 256 of file query_exec.hpp.
References delta(), CStopWatch::Elapsed(), CStopWatch::eStart, eTreeTraverse, eTreeTraverseStepOver, CQueryFunctionBase::Evaluate(), CQueryFunctionBase::EvaluateChildrenFirst(), CQueryExec::GetFunc(), CQueryExec::GetImplicitSearchFunc(), CQueryParseNode::GetOrig(), CTreeNode< TValue, TKeyGetterP >::GetParent(), CQueryParseNode::GetType(), CTreeNode< TValue, TKeyGetterP >::GetValue(), CTreeNode< TValue, TKeyGetterP >::IsLeaf(), CQueryParseNode::IsValue(), CQueryExecEvalFunc::m_Exec, NCBI_THROW, NULL, CQueryParseNode::SetElapsed(), and sw.
◆ operator=() [1/3] ◆ operator=() [2/3] ◆ operator=() [3/3] ◆ Parse()Query parser front-end function.
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() ◆ ProcessArgVector() ◆ ReleaseBuffer() ◆ ReleaseBV() ◆ Reset() [1/2] ◆ Reset() [2/2] virtual void IQueryParseUserObject::Reset ( ) pure virtual ◆ ResetUserObject() void CQueryParseNode::ResetUserObject ( ) ◆ ResetUserObjects() void CQueryParseTree::ResetUserObjects ( ) ◆ ResolveIdentifier() [1/8] ◆ ResolveIdentifier() [2/8] ◆ ResolveIdentifier() [3/8] ◆ ResolveIdentifier() [4/8] ◆ ResolveIdentifier() [5/8] ◆ ResolveIdentifier() [6/8] ◆ ResolveIdentifier() [7/8] ◆ ResolveIdentifier() [8/8] ◆ SetBuffer() ◆ SetBV() ◆ SetElapsed() void CQueryParseNode::SetElapsed ( double e ) inline ◆ SetExec() void CQueryFunctionBase::SetExec ( CQueryExec & qexec ) inlineprivate ◆ SetExplicit() void CQueryParseNode::SetExplicit ( bool expl =true
) inline ◆ SetLoc() [1/2] ◆ SetLoc() [2/2] void CQueryParseNode::SetLoc ( unsigned line, unsigned pos ) inline ◆ SetNot() void CQueryParseNode::SetNot ( bool n = true
) inline ◆ SetQueryTree() void CQueryParseTree::SetQueryTree ( TNode * qtree ) ◆ SetUserObject() ◆ 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 ◆ ~CQueryFunctionBase() CQueryFunctionBase::~CQueryFunctionBase ( ) virtualDefinition at line 40 of file query_exec.cpp.
◆ ~CQueryParseTree() CQueryParseTree::~CQueryParseTree ( ) virtualDefinition at line 217 of file query_parse.cpp.
◆ ◆ length unsigned CQueryParseNode::SSrcLoc::length ◆ line unsigned CQueryParseNode::SSrcLoc::line ◆ [1/2] ◆ m_BoolConst [2/2] bool CQueryParseNode::m_BoolConst ◆ m_BV ◆ m_BV_Buffer ◆ m_DoubleConst [1/2] double CQueryParseNode::m_DoubleConst ◆ [2/2] ◆ m_Elapsed double CQueryParseNode::m_Elapsed private ◆ m_ExceptionCount int CQueryExec::m_ExceptionCount protected ◆ m_Exec ◆ m_Explicit bool CQueryParseNode::m_Explicit private ◆ m_FuncReg ◆ m_ImplicitSearchFunc ◆ [1/2] ◆ m_IntConst [2/2] Int8 CQueryParseNode::m_IntConst ◆ m_Location SSrcLoc CQueryParseNode::m_Location private ◆ m_Not bool CQueryParseNode::m_Not private ◆ m_OpCode ◆ m_OrigText string CQueryParseNode::m_OrigText private ◆ m_QExecDefinition at line 119 of file query_exec.hpp.
Referenced by CSGQueryFunctionValue::Evaluate(), CQueryFuncRTVar::Evaluate(), CQueryFuncFunction::Evaluate(), CQueryFuncPromoteIdentifier::Evaluate(), CQueryFuncPromoteAndOr::Evaluate(), CQueryFuncPromoteLogic::Evaluate(), CQueryFunction_BV_In_Or< BV >::Evaluate(), CMQueryFunctionBase::GetContext(), CQueryFunctionBase::GetExec(), CQueryFuncPromoteBase::PreProcess(), CQueryFuncPromoteBase::ResolveFieldValue(), and CQueryFunctionBase::SetExec().
◆ m_QTree ◆ 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 ◆ m_Value string CQueryParseNode::m_Value private ◆ pos unsigned CQueryParseNode::SSrcLoc::pos ◆ CQueryExec ◆ CQueryFunctionBase ◆ CTreeNode< CQueryParseNode >RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4