Ejemplo n.º 1
0
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;
}