func (e *XSelectIndexExec) extractRowsFromSubResult(t table.Table, subResult *xapi.SubResult) ([]*Row, error) { var rows []*Row for { h, rowData, err := subResult.Next() if err != nil { return nil, errors.Trace(err) } if rowData == nil { break } if e.aggregate { // compose aggreagte row row := &Row{Data: rowData} rows = append(rows, row) continue } fullRowData := make([]types.Datum, len(e.indexPlan.Fields())) var j int for i, field := range e.indexPlan.Fields() { if field.Referenced { fullRowData[i] = rowData[j] j++ } } row := resultRowToRow(t, h, fullRowData, e.indexPlan.TableAsName) rows = append(rows, row) } return rows, nil }
func extractHandlesFromIndexSubResult(subResult *xapi.SubResult) ([]int64, error) { var handles []int64 for { h, data, err := subResult.Next() if err != nil { return nil, errors.Trace(err) } if data == nil { break } handles = append(handles, h) } return handles, nil }
func extractRowsFromSubResult(t table.Table, subResult *xapi.SubResult) ([]*Row, error) { var rows []*Row for { h, rowData, err := subResult.Next() if err != nil { return nil, errors.Trace(err) } if rowData == nil { break } row := resultRowToRow(t, h, rowData) rows = append(rows, row) } return rows, nil }
func (e *NewXSelectIndexExec) extractRowsFromSubResult(t table.Table, subResult *xapi.SubResult) ([]*Row, error) { var rows []*Row for { h, rowData, err := subResult.Next() if err != nil { return nil, errors.Trace(err) } if rowData == nil { break } row := resultRowToRow(t, h, rowData, e.indexPlan.TableAsName) rows = append(rows, row) } return rows, nil }