[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;
|
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,
|
int ObPxOrderedCoordOp::receive_channel_root_dfo(ObExecContext &ctx,
|
||||||
ObDfo &parent,
|
ObDfo &parent,
|
||||||
ObPxTaskChSets &parent_ch_sets)
|
ObPxTaskChSets &parent_ch_sets)
|
||||||
|
|||||||
@ -105,6 +105,7 @@ public:
|
|||||||
public:
|
public:
|
||||||
virtual int inner_open() override;
|
virtual int inner_open() override;
|
||||||
virtual void destroy() override;
|
virtual void destroy() override;
|
||||||
|
virtual int inner_rescan() override;
|
||||||
virtual int inner_close() override;
|
virtual int inner_close() override;
|
||||||
virtual int inner_get_next_row() 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*/
|
/*do nothing*/
|
||||||
} else if (LOG_EXCHANGE == get_type()) {
|
} else if (LOG_EXCHANGE == get_type()) {
|
||||||
ObLogExchange *op = static_cast<ObLogExchange *>(this);
|
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_id(op_id);
|
||||||
op->set_px_batch_op_type(op_type);
|
op->set_px_batch_op_type(op_type);
|
||||||
find = true;
|
find = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user