OmniSciDB
a5dc49c757
|
Public Types | |
enum | WindowExprType { WindowExprType::PARTITION_KEY, WindowExprType::ORDER_KEY } |
Public Member Functions | |
PushDownGenericExpressionInWindowFunction (std::shared_ptr< RelProject > new_project, std::vector< std::unique_ptr< const RexScalar >> &scalar_exprs_for_new_project, std::vector< std::string > &fields_for_new_project, std::unordered_map< size_t, size_t > &expr_offset_cache) | |
size_t | pushDownExpressionImpl (const RexScalar *expr) const |
std::optional< size_t > | getOffsetForPushedDownExpr (WindowExprType type, size_t expr_offset) const |
void | pushDownExpressionInWindowFunction (const RexWindowFunctionOperator *window_expr) const |
std::unique_ptr< const RexScalar > | visitInput (const RexInput *rex_input) const override |
std::unique_ptr< const RexScalar > | visitLiteral (const RexLiteral *rex_literal) const override |
std::unique_ptr< const RexScalar > | visitRef (const RexRef *rex_ref) const override |
std::unique_ptr< const RexScalar > | visitSubQuery (const RexSubQuery *rex_subquery) const override |
std::unique_ptr< const RexScalar > | visitCase (const RexCase *rex_case) const override |
std::unique_ptr< const RexScalar > | visitOperator (const RexOperator *rex_operator) const override |
bool | hasCaseExprAsWindowOperand () |
bool | hasPartitionExpression () |
Public Member Functions inherited from RexVisitorBase< std::unique_ptr< const RexScalar > > | |
virtual std::unique_ptr< const RexScalar > | visit (const RexScalar *rex_scalar) const |
Private Member Functions | |
std::unique_ptr< const RexScalar > | defaultResult () const override |
Private Attributes | |
std::shared_ptr< RelProject > | new_project_ |
std::vector< std::unique_ptr < const RexScalar > > & | scalar_exprs_for_new_project_ |
std::vector< std::string > & | fields_for_new_project_ |
std::unordered_map< size_t, size_t > & | expr_offset_cache_ |
bool | found_case_expr_window_operand_ |
bool | has_partition_expr_ |
std::unordered_map< size_t, size_t > | pushed_down_window_operands_offset_ |
std::unordered_map< size_t, size_t > | pushed_down_partition_key_offset_ |
std::unordered_map< size_t, size_t > | pushed_down_order_key_offset_ |
RexDeepCopyVisitor | deep_copier_ |
Additional Inherited Members |
Definition at line 125 of file RelAlgDag.cpp.
|
strong |
Enumerator | |
---|---|
PARTITION_KEY | |
ORDER_KEY |
Definition at line 128 of file RelAlgDag.cpp.
|
inline |
Definition at line 129 of file RelAlgDag.cpp.
|
inlineoverrideprivatevirtual |
Implements RexVisitorBase< std::unique_ptr< const RexScalar > >.
Definition at line 330 of file RelAlgDag.cpp.
|
inline |
Definition at line 158 of file RelAlgDag.cpp.
References CHECK, and UNREACHABLE.
|
inline |
Definition at line 325 of file RelAlgDag.cpp.
|
inline |
Definition at line 327 of file RelAlgDag.cpp.
|
inline |
Definition at line 141 of file RelAlgDag.cpp.
References CHECK, and Rex::toHash().
|
inline |
Definition at line 179 of file RelAlgDag.cpp.
References CHECK, RexOperator::getOperand(), RexWindowFunctionOperator::getOrderKeys(), RexWindowFunctionOperator::getPartitionKeys(), and RexOperator::size().
|
inlineoverridevirtual |
Implements RexVisitorBase< std::unique_ptr< const RexScalar > >.
Definition at line 279 of file RelAlgDag.cpp.
References RexCase::branchCount(), RexCase::getElse(), RexCase::getThen(), and RexCase::getWhen().
|
inlineoverridevirtual |
Implements RexVisitorBase< std::unique_ptr< const RexScalar > >.
Definition at line 253 of file RelAlgDag.cpp.
References CHECK, CHECK_EQ, CHECK_LT, and RexInput::toHash().
|
inlineoverridevirtual |
Implements RexVisitorBase< std::unique_ptr< const RexScalar > >.
Definition at line 265 of file RelAlgDag.cpp.
|
inlineoverridevirtual |
Implements RexVisitorBase< std::unique_ptr< const RexScalar > >.
Definition at line 298 of file RelAlgDag.cpp.
References CHECK, RexOperator::getOperand(), RexOperator::getOperator(), RexOperator::getType(), and RexOperator::size().
|
inlineoverridevirtual |
Implements RexVisitorBase< std::unique_ptr< const RexScalar > >.
Definition at line 270 of file RelAlgDag.cpp.
|
inlineoverridevirtual |
Implements RexVisitorBase< std::unique_ptr< const RexScalar > >.
Definition at line 274 of file RelAlgDag.cpp.
|
private |
Definition at line 341 of file RelAlgDag.cpp.
|
private |
Definition at line 335 of file RelAlgDag.cpp.
|
private |
Definition at line 334 of file RelAlgDag.cpp.
|
mutableprivate |
Definition at line 336 of file RelAlgDag.cpp.
|
mutableprivate |
Definition at line 337 of file RelAlgDag.cpp.
|
private |
Definition at line 332 of file RelAlgDag.cpp.
|
mutableprivate |
Definition at line 340 of file RelAlgDag.cpp.
|
mutableprivate |
Definition at line 339 of file RelAlgDag.cpp.
|
mutableprivate |
Definition at line 338 of file RelAlgDag.cpp.
|
private |
Definition at line 333 of file RelAlgDag.cpp.