// extractHandlesFromIndexResult gets some handles from SelectResult. // It should be called in a loop until finished or error happened. func extractHandlesFromIndexResult(idxResult xapi.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 *xapi.SelectResult) ([]*Row, error) { var rows []*Row for { subResult, err := tblResult.Next() if err != nil { return nil, errors.Trace(err) } if subResult == nil { break } subRows, err := e.extractRowsFromSubResult(t, subResult) if err != nil { return nil, errors.Trace(err) } rows = append(rows, subRows...) } return rows, nil }
func extractHandlesFromIndexResult(idxResult *xapi.SelectResult) ([]int64, error) { var handles []int64 for { subResult, err := idxResult.Next() if err != nil { return nil, errors.Trace(err) } if subResult == nil { break } subHandles, err := extractHandlesFromIndexSubResult(subResult) if err != nil { return nil, errors.Trace(err) } handles = append(handles, subHandles...) } return handles, nil }