int TaskFactory::init_new_task(const ObString & table_name, const ObRowkey & start_key, const ObRowkey & end_key, ObScanParam & scan_param, TaskInfo & task) const { int ret = OB_SUCCESS; if (!check_string(table_name)) { TBSYS_LOG(WARN, "check table name or end key failed:name[%.*s]", table_name.length(), table_name.ptr()); ret = OB_ERROR; } else { ObNewRange range; range.border_flag_.unset_inclusive_start(); range.border_flag_.set_inclusive_end(); if (NULL == start_key.ptr()) { range.border_flag_.set_min_value(); } else { range.start_key_ = start_key; range.border_flag_.unset_min_value(); } range.border_flag_.unset_max_value(); range.end_key_ = end_key; scan_param.set(OB_INVALID_ID, table_name, range); // deep copy the param to task info param ret = task.set_param(scan_param); if (ret != OB_SUCCESS) { TBSYS_LOG(ERROR, "set param failed:ret[%d]", ret); } } return ret; }