OmniSciDB  addbbd5075
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RexSubQuery Class Reference

#include <RelAlgDagBuilder.h>

+ Inheritance diagram for RexSubQuery:
+ Collaboration diagram for RexSubQuery:

Public Member Functions

 RexSubQuery (const std::shared_ptr< const RelAlgNode > ra)
 
 RexSubQuery (std::shared_ptr< SQLTypeInfo > type, std::shared_ptr< std::shared_ptr< const ExecutionResult >> result, const std::shared_ptr< const RelAlgNode > ra)
 
 RexSubQuery (const RexSubQuery &)=delete
 
RexSubQueryoperator= (const RexSubQuery &)=delete
 
 RexSubQuery (RexSubQuery &&)=delete
 
RexSubQueryoperator= (RexSubQuery &&)=delete
 
const SQLTypeInfogetType () const
 
std::shared_ptr< const
ExecutionResult
getExecutionResult () const
 
const RelAlgNodegetRelAlg () const
 
std::string toString () const override
 
std::unique_ptr< RexSubQuerydeepCopy () const
 
void setExecutionResult (const std::shared_ptr< const ExecutionResult > result)
 
- Public Member Functions inherited from Rex
virtual ~Rex ()
 

Private Attributes

std::shared_ptr< SQLTypeInfotype_
 
std::shared_ptr
< std::shared_ptr< const
ExecutionResult > > 
result_
 
const std::shared_ptr< const
RelAlgNode
ra_
 

Detailed Description

Definition at line 256 of file RelAlgDagBuilder.h.

Constructor & Destructor Documentation

RexSubQuery::RexSubQuery ( const std::shared_ptr< const RelAlgNode ra)
inline

Definition at line 258 of file RelAlgDagBuilder.h.

259  : type_(new SQLTypeInfo(kNULLT, false))
260  , result_(new std::shared_ptr<const ExecutionResult>(nullptr))
261  , ra_(ra) {}
const std::shared_ptr< const RelAlgNode > ra_
std::shared_ptr< std::shared_ptr< const ExecutionResult > > result_
std::shared_ptr< SQLTypeInfo > type_
SQLTypeInfoCore< ArrayContextTypeSizer, ExecutorTypePackaging, DateTimeFacilities > SQLTypeInfo
Definition: sqltypes.h:852
RexSubQuery::RexSubQuery ( std::shared_ptr< SQLTypeInfo type,
std::shared_ptr< std::shared_ptr< const ExecutionResult >>  result,
const std::shared_ptr< const RelAlgNode ra 
)
inline

Definition at line 264 of file RelAlgDagBuilder.h.

267  : type_(type), result_(result), ra_(ra) {}
const std::shared_ptr< const RelAlgNode > ra_
std::shared_ptr< std::shared_ptr< const ExecutionResult > > result_
std::shared_ptr< SQLTypeInfo > type_
RexSubQuery::RexSubQuery ( const RexSubQuery )
delete
RexSubQuery::RexSubQuery ( RexSubQuery &&  )
delete

Member Function Documentation

std::unique_ptr< RexSubQuery > RexSubQuery::deepCopy ( ) const

Definition at line 57 of file RelAlgDagBuilder.cpp.

57  {
58  return std::make_unique<RexSubQuery>(type_, result_, ra_->deepCopy());
59 }
const std::shared_ptr< const RelAlgNode > ra_
std::shared_ptr< std::shared_ptr< const ExecutionResult > > result_
std::shared_ptr< SQLTypeInfo > type_
std::shared_ptr<const ExecutionResult> RexSubQuery::getExecutionResult ( ) const
inline

Definition at line 282 of file RelAlgDagBuilder.h.

References CHECK(), and result_.

282  {
283  CHECK(result_);
284  CHECK(result_.get());
285  return *(result_.get());
286  }
std::shared_ptr< std::shared_ptr< const ExecutionResult > > result_
CHECK(cgen_state)

+ Here is the call graph for this function:

const RelAlgNode* RexSubQuery::getRelAlg ( ) const
inline

Definition at line 288 of file RelAlgDagBuilder.h.

References ra_.

288 { return ra_.get(); }
const std::shared_ptr< const RelAlgNode > ra_
const SQLTypeInfo& RexSubQuery::getType ( ) const
inline

Definition at line 277 of file RelAlgDagBuilder.h.

References CHECK_NE, kNULLT, and type_.

277  {
278  CHECK_NE(kNULLT, type_->get_type());
279  return *(type_.get());
280  }
#define CHECK_NE(x, y)
Definition: Logger.h:202
std::shared_ptr< SQLTypeInfo > type_
RexSubQuery& RexSubQuery::operator= ( const RexSubQuery )
delete
RexSubQuery& RexSubQuery::operator= ( RexSubQuery &&  )
delete
void RexSubQuery::setExecutionResult ( const std::shared_ptr< const ExecutionResult result)

Definition at line 48 of file RelAlgDagBuilder.cpp.

References CHECK(), CHECK_EQ, and run_benchmark_import::result.

49  {
50  auto row_set = result->getRows();
51  CHECK(row_set);
52  CHECK_EQ(size_t(1), row_set->colCount());
53  *(type_.get()) = row_set->getColType(0);
54  (*(result_.get())) = result;
55 }
#define CHECK_EQ(x, y)
Definition: Logger.h:201
std::shared_ptr< std::shared_ptr< const ExecutionResult > > result_
CHECK(cgen_state)
std::shared_ptr< SQLTypeInfo > type_

+ Here is the call graph for this function:

std::string RexSubQuery::toString ( ) const
inlineoverridevirtual

Implements Rex.

Definition at line 290 of file RelAlgDagBuilder.h.

References to_string().

290  {
291  return "(RexSubQuery " + std::to_string(reinterpret_cast<const uint64_t>(this)) + ")";
292  }
std::string to_string(char const *&&v)

+ Here is the call graph for this function:

Member Data Documentation

const std::shared_ptr<const RelAlgNode> RexSubQuery::ra_
private

Definition at line 301 of file RelAlgDagBuilder.h.

Referenced by getRelAlg().

std::shared_ptr<std::shared_ptr<const ExecutionResult> > RexSubQuery::result_
private

Definition at line 300 of file RelAlgDagBuilder.h.

Referenced by getExecutionResult().

std::shared_ptr<SQLTypeInfo> RexSubQuery::type_
private

Definition at line 299 of file RelAlgDagBuilder.h.

Referenced by getType().


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