OmniSciDB  72c90bc290
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RexAbstractInput Class Reference

#include <RelAlgDag.h>

+ Inheritance diagram for RexAbstractInput:
+ Collaboration diagram for RexAbstractInput:

Public Member Functions

 RexAbstractInput ()
 
 RexAbstractInput (const unsigned in_index)
 
virtual void acceptChildren (Visitor &v) const override
 
virtual void accept (Visitor &v, std::string name) const override
 
unsigned getIndex () const
 
void setIndex (const unsigned in_index) const
 
std::string toString (RelRexToStringConfig config=RelRexToStringConfig::defaults()) const override
 
virtual size_t toHash () const override
 
- Public Member Functions inherited from Rex
virtual ~Rex ()
 
virtual size_t getStepNumber () const
 
- Public Member Functions inherited from RelAlgDagNode
 RelAlgDagNode ()
 
virtual void setStepNumber (size_t step) const
 
std::optional< size_t > getIdInPlanTree () const
 
void setIdInPlanTree (size_t id) const
 

Private Attributes

unsigned in_index_
 

Friends

struct RelAlgDagSerializer
 
std::size_t hash_value (RexAbstractInput const &)
 

Additional Inherited Members

- Protected Attributes inherited from Rex
std::optional< size_t > hash_
 
- Protected Attributes inherited from RelAlgDagNode
size_t step_ {0}
 
std::optional< size_t > id_in_plan_tree_
 

Detailed Description

Definition at line 160 of file RelAlgDag.h.

Constructor & Destructor Documentation

RexAbstractInput::RexAbstractInput ( )
inline

Definition at line 163 of file RelAlgDag.h.

163 : in_index_{0} {};
unsigned in_index_
Definition: RelAlgDag.h:188
RexAbstractInput::RexAbstractInput ( const unsigned  in_index)
inline

Definition at line 165 of file RelAlgDag.h.

165 : in_index_(in_index) {}
unsigned in_index_
Definition: RelAlgDag.h:188

Member Function Documentation

virtual void RexAbstractInput::accept ( Visitor v,
std::string  name 
) const
inlineoverridevirtual

Implements RelAlgDagNode.

Reimplemented in RexInput.

Definition at line 168 of file RelAlgDag.h.

References acceptChildren(), and RelAlgDagNode::Visitor::visit().

Referenced by TableFunctionsFactory_node.PrintNode::__str__().

168  {
169  if (v.visit(this, std::move(name))) {
170  acceptChildren(v);
171  }
172  }
string name
Definition: setup.in.py:72
virtual void acceptChildren(Visitor &v) const override
Definition: RelAlgDag.h:167

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual void RexAbstractInput::acceptChildren ( Visitor v) const
inlineoverridevirtual

Implements RelAlgDagNode.

Reimplemented in RexInput.

Definition at line 167 of file RelAlgDag.h.

Referenced by accept().

167 {}

+ Here is the caller graph for this function:

void RexAbstractInput::setIndex ( const unsigned  in_index) const
inline

Definition at line 176 of file RelAlgDag.h.

References in_index_.

Referenced by anonymous_namespace{RelAlgDag.cpp}::RexRebindReindexInputsVisitor::visitInput(), and anonymous_namespace{RelLeftDeepInnerJoin.cpp}::RebindRexInputsFromLeftDeepJoin::visitInput().

176 { in_index_ = in_index; }
unsigned in_index_
Definition: RelAlgDag.h:188

+ Here is the caller graph for this function:

virtual size_t RexAbstractInput::toHash ( ) const
inlineoverridevirtual

Implements Rex.

Reimplemented in RexInput.

Definition at line 183 of file RelAlgDag.h.

References hash_value.

183 { return hash_value(*this); }
friend std::size_t hash_value(RexAbstractInput const &)
Definition: RelAlgDag.cpp:3525
std::string RexAbstractInput::toString ( RelRexToStringConfig  config = RelRexToStringConfig::defaults()) const
inlineoverridevirtual

Implements RelAlgDagNode.

Reimplemented in RexInput.

Definition at line 178 of file RelAlgDag.h.

References cat(), in_index_, to_string(), and typeName().

179  {
180  return cat(::typeName(this), "(", std::to_string(in_index_), ")");
181  }
unsigned in_index_
Definition: RelAlgDag.h:188
std::string cat(Ts &&...args)
std::string to_string(char const *&&v)
std::string typeName(const T *v)
Definition: toString.h:106

+ Here is the call graph for this function:

Friends And Related Function Documentation

std::size_t hash_value ( RexAbstractInput const &  rex_ab_input)
friend

Definition at line 3525 of file RelAlgDag.cpp.

Referenced by toHash().

3525  {
3526  if (rex_ab_input.hash_) {
3527  return *rex_ab_input.hash_;
3528  }
3529  rex_ab_input.hash_ = typeid(RexAbstractInput).hash_code();
3530  boost::hash_combine(*rex_ab_input.hash_, rex_ab_input.in_index_);
3531  return *rex_ab_input.hash_;
3532 }
friend struct RelAlgDagSerializer
friend

Definition at line 190 of file RelAlgDag.h.

Member Data Documentation

unsigned RexAbstractInput::in_index_
mutableprivate

Definition at line 188 of file RelAlgDag.h.

Referenced by getIndex(), hash_value(), setIndex(), and toString().


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