OmniSciDB
c1a53651b2
|
#include <RelAlgDag.h>
Classes | |
struct | RexWindowBound |
Public Member Functions | |
RexWindowFunctionOperator () | |
RexWindowFunctionOperator (const SqlWindowFunctionKind kind, ConstRexScalarPtrVector &operands, ConstRexScalarPtrVector &partition_keys, ConstRexScalarPtrVector &order_keys, const std::vector< SortField > collation, const RexWindowBound &frame_start_bound, const RexWindowBound &frame_end_bound, const bool is_rows, const SQLTypeInfo &ti) | |
SqlWindowFunctionKind | getKind () const |
const ConstRexScalarPtrVector & | getPartitionKeys () const |
ConstRexScalarPtrVector | getPartitionKeysAndRelease () const |
ConstRexScalarPtrVector | getOrderKeysAndRelease () const |
const ConstRexScalarPtrVector & | getOrderKeys () const |
void | replacePartitionKey (size_t offset, std::unique_ptr< const RexScalar > &&new_partition_key) |
void | replaceOrderKey (size_t offset, std::unique_ptr< const RexScalar > &&new_order_key) |
void | replaceOperands (std::vector< std::unique_ptr< const RexScalar >> &&new_operands) |
const std::vector< SortField > & | getCollation () const |
const RexWindowBound & | getFrameStartBound () const |
const RexWindowBound & | getFrameEndBound () const |
bool | isRows () const |
std::unique_ptr< const RexOperator > | disambiguatedOperands (ConstRexScalarPtrVector &operands, ConstRexScalarPtrVector &partition_keys, ConstRexScalarPtrVector &order_keys, const std::vector< SortField > &collation) const |
std::string | toString (RelRexToStringConfig config=RelRexToStringConfig::defaults()) const override |
size_t | toHash () const override |
![]() | |
RexFunctionOperator ()=default | |
RexFunctionOperator (const std::string &name, ConstRexScalarPtrVector &operands, const SQLTypeInfo &ti) | |
std::unique_ptr< const RexOperator > | getDisambiguated (std::vector< std::unique_ptr< const RexScalar >> &operands) const override |
const std::string & | getName () const |
![]() | |
RexOperator () | |
RexOperator (const SQLOps op, std::vector< std::unique_ptr< const RexScalar >> &operands, const SQLTypeInfo &type) | |
size_t | size () const |
const RexScalar * | getOperand (const size_t idx) const |
const RexScalar * | getOperandAndRelease (const size_t idx) const |
SQLOps | getOperator () const |
const SQLTypeInfo & | getType () const |
![]() | |
virtual | ~Rex () |
Private Attributes | |
SqlWindowFunctionKind | kind_ |
ConstRexScalarPtrVector | partition_keys_ |
ConstRexScalarPtrVector | order_keys_ |
std::vector< SortField > | collation_ |
RexWindowBound | frame_start_bound_ |
RexWindowBound | frame_end_bound_ |
bool | is_rows_ |
Friends | |
struct | RelAlgDagSerializer |
Additional Inherited Members | |
![]() | |
using | ConstRexScalarPtr = std::unique_ptr< const RexScalar > |
using | ConstRexScalarPtrVector = std::vector< ConstRexScalarPtr > |
![]() | |
SQLOps | op_ |
std::vector< std::unique_ptr < const RexScalar > > | operands_ |
SQLTypeInfo | type_ |
![]() | |
std::optional< size_t > | hash_ |
Definition at line 576 of file RelAlgDag.h.
|
inline |
Definition at line 604 of file RelAlgDag.h.
References INVALID.
Referenced by disambiguatedOperands(), and toHash().
|
inline |
Definition at line 607 of file RelAlgDag.h.
|
inline |
Definition at line 662 of file RelAlgDag.h.
References getFrameEndBound(), getFrameStartBound(), RexOperator::getType(), isRows(), kind_, and RexWindowFunctionOperator().
Referenced by RexDeepCopyVisitor::visitWindowFunctionOperator().
|
inline |
Definition at line 654 of file RelAlgDag.h.
References collation_.
Referenced by RelAlgTranslator::translateWindowFunction(), and RexDeepCopyVisitor::visitWindowFunctionOperator().
|
inline |
Definition at line 658 of file RelAlgDag.h.
References frame_end_bound_.
Referenced by disambiguatedOperands(), and RelAlgTranslator::translateWindowFunction().
|
inline |
Definition at line 656 of file RelAlgDag.h.
References frame_start_bound_.
Referenced by disambiguatedOperands(), and RelAlgTranslator::translateWindowFunction().
|
inline |
Definition at line 625 of file RelAlgDag.h.
References kind_.
Referenced by RelAlgTranslator::translateWindowFunction().
|
inline |
Definition at line 637 of file RelAlgDag.h.
References order_keys_.
Referenced by anonymous_namespace{RelAlgDag.cpp}::anonymous_namespace{RelAlgDag.cpp}::find_generic_expr_in_window_func(), anonymous_namespace{RelAlgDag.cpp}::PushDownGenericExpressionInWindowFunction::pushDownExpressionInWindowFunction(), RelAlgTranslator::translateWindowFunction(), RelRexDagVisitor::visit(), RexVisitor< T >::visitWindowFunctionOperator(), and RexDeepCopyVisitor::visitWindowFunctionOperator().
|
inline |
Definition at line 633 of file RelAlgDag.h.
References order_keys_.
|
inline |
Definition at line 627 of file RelAlgDag.h.
References partition_keys_.
Referenced by anonymous_namespace{RelAlgDag.cpp}::disambiguate_operator(), anonymous_namespace{RelAlgDag.cpp}::anonymous_namespace{RelAlgDag.cpp}::find_generic_expr_in_window_func(), anonymous_namespace{RelAlgDag.cpp}::PushDownGenericExpressionInWindowFunction::pushDownExpressionInWindowFunction(), RelAlgTranslator::translateWindowFunction(), RelRexDagVisitor::visit(), RexVisitor< T >::visitWindowFunctionOperator(), and RexDeepCopyVisitor::visitWindowFunctionOperator().
|
inline |
Definition at line 629 of file RelAlgDag.h.
References partition_keys_.
|
inline |
Definition at line 660 of file RelAlgDag.h.
References is_rows_.
Referenced by disambiguatedOperands(), and RelAlgTranslator::translateWindowFunction().
|
inline |
Definition at line 650 of file RelAlgDag.h.
References RexOperator::operands_.
|
inline |
Definition at line 645 of file RelAlgDag.h.
References CHECK_LT, and order_keys_.
|
inline |
Definition at line 639 of file RelAlgDag.h.
References CHECK_LT, and partition_keys_.
|
inlineoverridevirtual |
Reimplemented from RexFunctionOperator.
Definition at line 696 of file RelAlgDag.h.
References collation_, frame_end_bound_, frame_start_bound_, RexFunctionOperator::getName(), RexOperator::getType(), Rex::hash_, HASH_N, is_rows_, RexOperator::operands_, order_keys_, partition_keys_, and RexWindowFunctionOperator().
|
inlineoverridevirtual |
Reimplemented from RexFunctionOperator.
Definition at line 679 of file RelAlgDag.h.
References cat(), RexFunctionOperator::getName(), RexOperator::operands_, order_keys_, partition_keys_, and typeName().
|
friend |
Definition at line 740 of file RelAlgDag.h.
|
private |
Definition at line 735 of file RelAlgDag.h.
Referenced by getCollation(), and toHash().
|
private |
Definition at line 737 of file RelAlgDag.h.
Referenced by getFrameEndBound(), and toHash().
|
private |
Definition at line 736 of file RelAlgDag.h.
Referenced by getFrameStartBound(), and toHash().
|
private |
Definition at line 738 of file RelAlgDag.h.
|
private |
Definition at line 732 of file RelAlgDag.h.
Referenced by disambiguatedOperands(), and getKind().
|
mutableprivate |
Definition at line 734 of file RelAlgDag.h.
Referenced by getOrderKeys(), getOrderKeysAndRelease(), replaceOrderKey(), toHash(), and toString().
|
mutableprivate |
Definition at line 733 of file RelAlgDag.h.
Referenced by getPartitionKeys(), getPartitionKeysAndRelease(), replacePartitionKey(), toHash(), and toString().