提交 8cf5a8b7 编写于 作者: A AntiTopQuark 提交者: wangzelin.wzl

Add defensive checks to group scan scenarios

上级 831af1ec
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册