int ObGetScanProxy::build_get_column_filter(const ObGetParam& get_param,
                                             const int32_t offset,const int32_t size,
                                             ColumnFilter& cf)
 {
   int ret = OB_SUCCESS;
   
   cf.clear();
   
   for(int32_t i=0; (OB_SUCCESS == ret) && (i < size); ++i)
   {
     ret = cf.add_column(get_param[offset + i]->column_id_);
   }
   return ret;
 }
Exemple #2
0
void get_table(const ObList<ITableEntity*> &tlist)
{
  int ret = OB_SUCCESS;
  uint64_t table_id = 1001;
  ObString row_key(17, 17, "rk0001_00000000000");
  ObList<ITableEntity*>::const_iterator iter;
  int64_t index = 0;
  for (iter = tlist.begin(); iter != tlist.end(); iter++, index++)
  {
    ITableEntity *table_entity = *iter;

    ITableUtils *table_utils = table_entity->get_tsi_tableutils(index);
    assert(NULL != table_utils);
    table_utils->reset();

    TableTransHandle *trans_handle = &(table_utils->get_trans_handle());
    assert(NULL != trans_handle);

    ITableIterator *titer = &(table_utils->get_table_iter());
    assert(NULL != titer);

    ColumnFilter *cf = ITableEntity::get_tsi_columnfilter();
    assert(NULL != cf);
    cf->add_column(0);

    ret = table_entity->start_transaction(*trans_handle);
    assert(OB_SUCCESS == ret);

    //ret = table_entity->get(*trans_handle, table_id, row_key, cf, titer);
    //assert(OB_SUCCESS == ret);
    ObRange range;
    range.table_id_ = table_id;
    range.border_flag_.set_inclusive_start();
    range.border_flag_.set_inclusive_end();
    range.start_key_.assign_ptr("rk0001_0000000000", 17);
    range.end_key_.assign_ptr("rk0002_0000000000", 17);
    //range.border_flag_.set_min_value();
    //range.border_flag_.set_max_value();
    ObScanParam scan_param;
    //scan_param.set_is_result_cached(true);
    scan_param.set(table_id, ObString(), range);
    scan_param.add_column(5);
    scan_param.add_column(6);
    scan_param.add_column(7);
    ret = table_entity->scan(*trans_handle, scan_param, titer);

    while (OB_SUCCESS == titer->next_cell())
    {
      ObCellInfo *cell_info = NULL;
      bool is_row_changed = false;
      if (OB_SUCCESS == titer->get_cell(&cell_info, &is_row_changed))
      {
        fprintf(stderr, "[result] %s %d\n", print_cellinfo(cell_info), is_row_changed);
      }
    }
    fprintf(stderr, "[result] ==========\n");

    table_utils->reset();
    ret = table_entity->end_transaction(*trans_handle);
    assert(OB_SUCCESS == ret);

  }
  thread_read_complete();
}