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

#include <RelAlgDag.h>

+ Inheritance diagram for RexRef:
+ Collaboration diagram for RexRef:

Public Member Functions

 RexRef ()
 
 RexRef (const size_t index)
 
size_t getIndex () const
 
virtual void acceptChildren (Visitor &v) const override
 
virtual void accept (Visitor &v, std::string name) const override
 
std::string toString (RelRexToStringConfig config=RelRexToStringConfig::defaults()) const override
 
std::unique_ptr< RexRefdeepCopy () const
 
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

size_t index_
 

Friends

struct RelAlgDagSerializer
 
std::size_t hash_value (RexRef 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 734 of file RelAlgDag.h.

Constructor & Destructor Documentation

RexRef::RexRef ( )
inline

Definition at line 737 of file RelAlgDag.h.

737 : index_{0} {}
size_t index_
Definition: RelAlgDag.h:762
RexRef::RexRef ( const size_t  index)
inline

Definition at line 739 of file RelAlgDag.h.

739 : index_(index) {}
size_t index_
Definition: RelAlgDag.h:762

Member Function Documentation

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

Implements RelAlgDagNode.

Definition at line 744 of file RelAlgDag.h.

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

Referenced by TableFunctionsFactory_node.PrintNode::__str__().

744  {
745  if (v.visit(this, std::move(name))) {
746  acceptChildren(v);
747  }
748  }
virtual void acceptChildren(Visitor &v) const override
Definition: RelAlgDag.h:743
string name
Definition: setup.in.py:72

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Implements RelAlgDagNode.

Definition at line 743 of file RelAlgDag.h.

Referenced by accept().

743 {}

+ Here is the caller graph for this function:

std::unique_ptr<RexRef> RexRef::deepCopy ( ) const
inline

Definition at line 755 of file RelAlgDag.h.

References index_.

Referenced by RexDeepCopyVisitor::visitRef().

755 { return std::make_unique<RexRef>(index_); }
size_t index_
Definition: RelAlgDag.h:762

+ Here is the caller graph for this function:

size_t RexRef::getIndex ( ) const
inline

Definition at line 741 of file RelAlgDag.h.

References index_.

Referenced by anonymous_namespace{RelAlgExecutor.cpp}::translate_targets().

741 { return index_; }
size_t index_
Definition: RelAlgDag.h:762

+ Here is the caller graph for this function:

virtual size_t RexRef::toHash ( ) const
inlineoverridevirtual

Implements Rex.

Definition at line 757 of file RelAlgDag.h.

References hash_value.

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

Implements RelAlgDagNode.

Definition at line 750 of file RelAlgDag.h.

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

751  {
752  return cat(::typeName(this), "(", std::to_string(index_), ")");
753  }
std::string cat(Ts &&...args)
std::string to_string(char const *&&v)
size_t index_
Definition: RelAlgDag.h:762
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 ( RexRef const &  rex_ref)
friend

Definition at line 3628 of file RelAlgDag.cpp.

Referenced by toHash().

3628  {
3629  if (rex_ref.hash_) {
3630  return *rex_ref.hash_;
3631  }
3632  rex_ref.hash_ = typeid(RexRef).hash_code();
3633  boost::hash_combine(*rex_ref.hash_, rex_ref.index_);
3634  return *rex_ref.hash_;
3635 }
RexRef()
Definition: RelAlgDag.h:737
friend struct RelAlgDagSerializer
friend

Definition at line 764 of file RelAlgDag.h.

Member Data Documentation

size_t RexRef::index_
private

Definition at line 762 of file RelAlgDag.h.

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


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