func newRows()

in rows.go [146:191]


func newRows(conn *conn, statementID uint32, closeStatement bool, resultSets []*message.ResultSetResponse) *rows {

	var rsets []*resultSet

	for _, result := range resultSets {
		if result.Signature == nil {
			break
		}

		var columns []*internal.Column

		for _, col := range result.Signature.Columns {
			column := conn.adapter.GetColumnTypeDefinition(col)
			columns = append(columns, column)
		}

		frame := result.FirstFrame

		var data [][]*message.TypedValue

		for _, row := range frame.Rows {
			var rowData []*message.TypedValue

			for _, col := range row.Value {
				rowData = append(rowData, col.ScalarValue)
			}

			data = append(data, rowData)
		}

		rsets = append(rsets, &resultSet{
			columns: columns,
			done:    frame.Done,
			offset:  frame.Offset,
			data:    data,
		})
	}

	return &rows{
		conn:             conn,
		statementID:      statementID,
		closeStatement:   closeStatement,
		resultSets:       rsets,
		currentResultSet: 0,
	}
}