OmniSciDB  c07336695a
RexFunctionOperator Class Reference

#include <RelAlgAbstractInterpreter.h>

+ Inheritance diagram for RexFunctionOperator:
+ Collaboration diagram for RexFunctionOperator:

Public Types

using ConstRexScalarPtr = std::unique_ptr< const RexScalar >
 
using ConstRexScalarPtrVector = std::vector< ConstRexScalarPtr >
 

Public Member Functions

 RexFunctionOperator (const std::string &name, ConstRexScalarPtrVector &operands, const SQLTypeInfo &ti)
 
std::unique_ptr< const RexOperatorgetDisambiguated (std::vector< std::unique_ptr< const RexScalar >> &operands) const override
 
const std::string & getName () const
 
std::string toString () const override
 
- Public Member Functions inherited from RexOperator
 RexOperator (const SQLOps op, std::vector< std::unique_ptr< const RexScalar >> &operands, const SQLTypeInfo &type)
 
size_t size () const
 
const RexScalargetOperand (const size_t idx) const
 
const RexScalargetOperandAndRelease (const size_t idx) const
 
SQLOps getOperator () const
 
const SQLTypeInfogetType () const
 
- Public Member Functions inherited from Rex
virtual ~Rex ()
 

Private Attributes

const std::string name_
 

Additional Inherited Members

- Protected Attributes inherited from RexOperator
const SQLOps op_
 
std::vector< std::unique_ptr< const RexScalar > > operands_
 
const SQLTypeInfo type_
 

Detailed Description

Definition at line 392 of file RelAlgAbstractInterpreter.h.

Member Typedef Documentation

◆ ConstRexScalarPtr

using RexFunctionOperator::ConstRexScalarPtr = std::unique_ptr<const RexScalar>

Definition at line 394 of file RelAlgAbstractInterpreter.h.

◆ ConstRexScalarPtrVector

Constructor & Destructor Documentation

◆ RexFunctionOperator()

RexFunctionOperator::RexFunctionOperator ( const std::string &  name,
ConstRexScalarPtrVector operands,
const SQLTypeInfo ti 
)
inline

Definition at line 397 of file RelAlgAbstractInterpreter.h.

400  : RexOperator(kFUNCTION, operands, ti), name_(name) {}
RexOperator(const SQLOps op, std::vector< std::unique_ptr< const RexScalar >> &operands, const SQLTypeInfo &type)

Member Function Documentation

◆ getDisambiguated()

std::unique_ptr<const RexOperator> RexFunctionOperator::getDisambiguated ( std::vector< std::unique_ptr< const RexScalar >> &  operands) const
inlineoverridevirtual

Reimplemented from RexOperator.

Definition at line 402 of file RelAlgAbstractInterpreter.h.

403  {
404  return std::unique_ptr<const RexOperator>(
405  new RexFunctionOperator(name_, operands, getType()));
406  }
RexFunctionOperator(const std::string &name, ConstRexScalarPtrVector &operands, const SQLTypeInfo &ti)
const SQLTypeInfo & getType() const

◆ getName()

◆ toString()

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

Reimplemented from RexOperator.

Reimplemented in RexWindowFunctionOperator.

Definition at line 410 of file RelAlgAbstractInterpreter.h.

References run-benchmark-import::result.

410  {
411  auto result = "(RexFunctionOperator " + name_;
412  for (const auto& operand : operands_) {
413  result += (" " + operand->toString());
414  }
415  return result + ")";
416  }
std::vector< std::unique_ptr< const RexScalar > > operands_

Member Data Documentation

◆ name_

const std::string RexFunctionOperator::name_
private

Definition at line 419 of file RelAlgAbstractInterpreter.h.


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