Add defensive checks to group scan scenarios
This commit is contained in:

committed by
wangzelin.wzl

parent
831af1ec07
commit
8cf5a8b738
@ -30,6 +30,14 @@ ObDASGroupScanOp::ObDASGroupScanOp(ObIAllocator &op_alloc)
|
||||
{
|
||||
}
|
||||
|
||||
ObDASGroupScanOp::~ObDASGroupScanOp()
|
||||
{
|
||||
if (result_iter_ != nullptr && result_iter_->get_type() == ObNewRowIterator::ObTableScanIterator) {
|
||||
LOG_ERROR("table group scan iter is not released, maybe some bug occured",
|
||||
KPC(scan_ctdef_), K(scan_param_), KPC(scan_rtdef_));
|
||||
}
|
||||
}
|
||||
|
||||
int ObDASGroupScanOp::rescan()
|
||||
{
|
||||
int &ret = errcode_;
|
||||
@ -223,6 +231,21 @@ int ObDASGroupScanOp::decode_task_result(ObIDASTaskResult *task_result)
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
ObGroupLookupOp::~ObGroupLookupOp()
|
||||
{
|
||||
const ObNewRowIterator *lookup_iter = get_lookup_storage_iter();
|
||||
if (lookup_iter != nullptr && lookup_iter->get_type() == ObNewRowIterator::ObTableScanIterator) {
|
||||
LOG_ERROR("lookup_iter iter is not released, maybe some bug occured",
|
||||
KPC(lookup_ctdef_), K(scan_param_), KPC(index_ctdef_),
|
||||
K(lookup_rowkey_cnt_), K(lookup_row_cnt_));
|
||||
}
|
||||
const ObNewRowIterator *rowkey_iter = static_cast<ObGroupScanIter *>(get_rowkey_iter())->get_iter();
|
||||
if (rowkey_iter != nullptr && rowkey_iter->get_type() == ObNewRowIterator::ObTableScanIterator) {
|
||||
LOG_ERROR("rowkey_iter iter is not released, maybe some bug occured",
|
||||
KPC(lookup_ctdef_), K(scan_param_), KPC(index_ctdef_),
|
||||
K(lookup_rowkey_cnt_), K(lookup_row_cnt_));
|
||||
}
|
||||
}
|
||||
|
||||
int ObGroupLookupOp::init_group_range(int64_t cur_group_idx, int64_t group_size)
|
||||
{
|
||||
|
@ -25,6 +25,7 @@ public:
|
||||
index_group_cnt_(1),
|
||||
lookup_group_cnt_(1)
|
||||
{}
|
||||
virtual ~ObGroupLookupOp();
|
||||
virtual void reset() override
|
||||
{
|
||||
ObLocalIndexLookupOp::reset();
|
||||
@ -57,6 +58,7 @@ class ObDASGroupScanOp : public ObDASScanOp
|
||||
OB_UNIS_VERSION(1);
|
||||
public:
|
||||
ObDASGroupScanOp(common::ObIAllocator &op_alloc);
|
||||
virtual ~ObDASGroupScanOp();
|
||||
int open_op() override;
|
||||
int release_op() override;
|
||||
virtual int rescan() override;
|
||||
|
Reference in New Issue
Block a user