// extractHandlesFromIndexResult gets some handles from SelectResult. // It should be called in a loop until finished or error happened. func extractHandlesFromIndexResult(idxResult distsql.SelectResult) (handles []int64, finish bool, err error) { subResult, e0 := idxResult.Next() if e0 != nil { err = errors.Trace(e0) return } if subResult == nil { finish = true return } handles, err = extractHandlesFromIndexSubResult(subResult) if err != nil { err = errors.Trace(err) } return }
func (e *XSelectIndexExec) extractRowsFromTableResult(t table.Table, tblResult distsql.SelectResult) ([]*Row, error) { var rows []*Row for { partialResult, err := tblResult.Next() if err != nil { return nil, errors.Trace(err) } if partialResult == nil { break } subRows, err := e.extractRowsFromPartialResult(t, partialResult) if err != nil { return nil, errors.Trace(err) } rows = append(rows, subRows...) } return rows, nil }