[CP] fix px ordered coord rescan bug
This commit is contained in:
@ -464,6 +464,15 @@ int ObPxOrderedCoordOp::next_rows(ObReceiveRowReader &reader, int64_t max_row_cn
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObPxOrderedCoordOp::inner_rescan()
|
||||
{
|
||||
finish_ch_cnt_ = 0;
|
||||
all_rows_finish_ = false;
|
||||
destroy_readers();
|
||||
int ret = ObPxCoordOp::inner_rescan();
|
||||
return ret;
|
||||
}
|
||||
|
||||
int ObPxOrderedCoordOp::receive_channel_root_dfo(ObExecContext &ctx,
|
||||
ObDfo &parent,
|
||||
ObPxTaskChSets &parent_ch_sets)
|
||||
|
||||
@ -105,6 +105,7 @@ public:
|
||||
public:
|
||||
virtual int inner_open() override;
|
||||
virtual void destroy() override;
|
||||
virtual int inner_rescan() override;
|
||||
virtual int inner_close() override;
|
||||
virtual int inner_get_next_row() override;
|
||||
|
||||
|
||||
@ -5401,7 +5401,7 @@ int ObLogicalOperator::find_px_for_batch_rescan(const log_op_def::ObLogOpType op
|
||||
/*do nothing*/
|
||||
} else if (LOG_EXCHANGE == get_type()) {
|
||||
ObLogExchange *op = static_cast<ObLogExchange *>(this);
|
||||
if (op->is_rescanable()) {
|
||||
if (op->is_rescanable() && !op->is_task_order()) {
|
||||
op->set_px_batch_op_id(op_id);
|
||||
op->set_px_batch_op_type(op_type);
|
||||
find = true;
|
||||
|
||||
Reference in New Issue
Block a user