OmniSciDB  c1a53651b2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
WindowProjectNodeContext Class Reference

#include <WindowContext.h>

Public Member Functions

void addWindowFunctionContext (std::unique_ptr< WindowFunctionContext > window_function_context, const size_t target_index)
 
const WindowFunctionContextactivateWindowFunctionContext (Executor *executor, const size_t target_index) const
 

Static Public Member Functions

static void resetWindowFunctionContext (Executor *executor)
 
static WindowFunctionContextgetActiveWindowFunctionContext (Executor *executor)
 
static WindowProjectNodeContextcreate (Executor *executor)
 
static const
WindowProjectNodeContext
get (Executor *executor)
 
static void reset (Executor *executor)
 

Private Attributes

std::unordered_map< size_t,
std::unique_ptr
< WindowFunctionContext > > 
window_contexts_
 

Detailed Description

Definition at line 323 of file WindowContext.h.

Member Function Documentation

const WindowFunctionContext * WindowProjectNodeContext::activateWindowFunctionContext ( Executor executor,
const size_t  target_index 
) const

Definition at line 1817 of file WindowContext.cpp.

References CHECK.

Referenced by Executor::codegenWindowFunction().

1819  {
1820  const auto it = window_contexts_.find(target_index);
1821  CHECK(it != window_contexts_.end());
1822  executor->active_window_function_ = it->second.get();
1823  return executor->active_window_function_;
1824 }
std::unordered_map< size_t, std::unique_ptr< WindowFunctionContext > > window_contexts_
#define CHECK(condition)
Definition: Logger.h:291

+ Here is the caller graph for this function:

void WindowProjectNodeContext::addWindowFunctionContext ( std::unique_ptr< WindowFunctionContext window_function_context,
const size_t  target_index 
)

Definition at line 1809 of file WindowContext.cpp.

References CHECK.

1811  {
1812  const auto it_ok = window_contexts_.emplace(
1813  std::make_pair(target_index, std::move(window_function_context)));
1814  CHECK(it_ok.second);
1815 }
std::unordered_map< size_t, std::unique_ptr< WindowFunctionContext > > window_contexts_
#define CHECK(condition)
Definition: Logger.h:291
WindowProjectNodeContext * WindowProjectNodeContext::create ( Executor executor)
static

Definition at line 1835 of file WindowContext.cpp.

References get().

Referenced by RelAlgExecutor::computeWindow().

1835  {
1836  executor->window_project_node_context_owned_ =
1837  std::make_unique<WindowProjectNodeContext>();
1838  return executor->window_project_node_context_owned_.get();
1839 }

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const WindowProjectNodeContext * WindowProjectNodeContext::get ( Executor executor)
static

Definition at line 1841 of file WindowContext.cpp.

References get().

Referenced by Executor::codegenWindowFunction(), Executor::codegenWindowFunctionAggregate(), create(), and get().

1841  {
1842  return executor->window_project_node_context_owned_.get();
1843 }

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

WindowFunctionContext * WindowProjectNodeContext::getActiveWindowFunctionContext ( Executor executor)
static
void WindowProjectNodeContext::reset ( Executor executor)
static

Definition at line 1845 of file WindowContext.cpp.

Referenced by RelAlgExecutor::executeWorkUnit().

1845  {
1846  executor->window_project_node_context_owned_ = nullptr;
1847  executor->active_window_function_ = nullptr;
1848 }

+ Here is the caller graph for this function:

void WindowProjectNodeContext::resetWindowFunctionContext ( Executor executor)
static

Definition at line 1826 of file WindowContext.cpp.

Referenced by TargetExprCodegen::codegen().

1826  {
1827  executor->active_window_function_ = nullptr;
1828 }

+ Here is the caller graph for this function:

Member Data Documentation

std::unordered_map<size_t, std::unique_ptr<WindowFunctionContext> > WindowProjectNodeContext::window_contexts_
private

Definition at line 356 of file WindowContext.h.


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