parseQueryResult parses rows and columnNames from spanner.RowIterator. A caller is responsible for calling iterator.Stop().
(iter *spanner.RowIterator)
| 285 | // parseQueryResult parses rows and columnNames from spanner.RowIterator. |
| 286 | // A caller is responsible for calling iterator.Stop(). |
| 287 | func parseQueryResult(iter *spanner.RowIterator) ([]Row, []string, error) { |
| 288 | var rows []Row |
| 289 | for { |
| 290 | row, err := iter.Next() |
| 291 | if err == iterator.Done { |
| 292 | break |
| 293 | } |
| 294 | if err != nil { |
| 295 | return nil, nil, err |
| 296 | } |
| 297 | |
| 298 | columns, err := DecodeRow(row) |
| 299 | if err != nil { |
| 300 | return nil, nil, err |
| 301 | } |
| 302 | rows = append(rows, Row{ |
| 303 | Columns: columns, |
| 304 | }) |
| 305 | } |
| 306 | return rows, extractColumnNames(iter.Metadata.GetRowType().GetFields()), nil |
| 307 | } |
| 308 | |
| 309 | // parseQueryStats parses spanner.RowIterator.QueryStats. |
| 310 | func parseQueryStats(stats map[string]interface{}) QueryStats { |