JODA  0.13.1 (59b41972)
JSON On-Demand Analysis
Public Member Functions | Protected Member Functions | Protected Attributes
QueryPlan Class Reference

#include <QueryPlan.h>

Collaboration diagram for QueryPlan:
[legend]

Public Member Functions

 QueryPlan (const std::shared_ptr< joda::query::Query > &q)
 
unsigned long executeQuery (Benchmark *bench=nullptr)
 
ExecutionStats getStats () const
 
bool hasToParse () const
 

Protected Member Functions

void addGenericBenchmarkInformation (Benchmark *bench=nullptr) const
 
std::unique_ptr< JSONContaineraggregate (std::shared_ptr< joda::query::Query > &q, joda::query::AggregatorQueue::queue_t *queue, Benchmark *benchmark)
 

Protected Attributes

unsigned long resultID = 0
 
unsigned long maxThreads = 0
 
bool skip = false
 
std::shared_ptr< JSONStorageload
 
std::shared_ptr< joda::query::Queryq
 
std::unique_ptr< JsonContainerRefQueue::queue_tloadQueue
 
std::unique_ptr< JsonContainerQueue::queue_tstoreQueue
 
std::unique_ptr< joda::query::AggregatorQueue::queue_taggregatorQueue
 
joda::docparsing::ReaderParser parser
 

Detailed Description

Class responsible for analyzing and executing a query. The main logic of data destination/origin happens here.

Constructor & Destructor Documentation

◆ QueryPlan()

QueryPlan::QueryPlan ( const std::shared_ptr< joda::query::Query > &  q)

Initializes a new QueryPlan with a given query. The query is already analyzed in the constructor for data origin and destination

Parameters
qThe query to execute later on
Here is the call graph for this function:

Member Function Documentation

◆ addGenericBenchmarkInformation()

void QueryPlan::addGenericBenchmarkInformation ( Benchmark bench = nullptr) const
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ aggregate()

std::unique_ptr< JSONContainer > QueryPlan::aggregate ( std::shared_ptr< joda::query::Query > &  q,
joda::query::AggregatorQueue::queue_t queue,
Benchmark benchmark 
)
protected
Here is the call graph for this function:
Here is the caller graph for this function:

◆ executeQuery()

unsigned long QueryPlan::executeQuery ( Benchmark bench = nullptr)

Executes the query. The query result is stored in an collection, which will be registered at the StorageCollection as a temporary result. The ID of this result is then returned after the query completed

Parameters
benchan optional Benchmark, which is used to time the query execution. If null, no timing is performed
Returns
A ID representing the result set.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getStats()

ExecutionStats QueryPlan::getStats ( ) const

Returns realtime ExecutionStats for UI query-progress reports

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

◆ hasToParse()

bool QueryPlan::hasToParse ( ) const

Checks if the queryplan has to parse files from outside the system.

Returns
true, if it has to, false if not
Here is the caller graph for this function:

Field Documentation

◆ aggregatorQueue

std::unique_ptr<joda::query::AggregatorQueue::queue_t> QueryPlan::aggregatorQueue
protected

◆ load

std::shared_ptr<JSONStorage> QueryPlan::load
protected

◆ loadQueue

std::unique_ptr<JsonContainerRefQueue::queue_t> QueryPlan::loadQueue
protected

◆ maxThreads

unsigned long QueryPlan::maxThreads = 0
protected

◆ parser

joda::docparsing::ReaderParser QueryPlan::parser
protected

◆ q

std::shared_ptr<joda::query::Query> QueryPlan::q
protected

◆ resultID

unsigned long QueryPlan::resultID = 0
protected

◆ skip

bool QueryPlan::skip = false
protected

◆ storeQueue

std::unique_ptr<JsonContainerQueue::queue_t> QueryPlan::storeQueue
protected

The documentation for this class was generated from the following files: