func newRows()

in rows.go [147:192]


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

	var rsets []*resultSet

	for _, result := range resultSets {
		if result.GetSignature() == nil {
			break
		}

		var columns []*internal.Column

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

		frame := result.GetFirstFrame()

		var data [][]*message.TypedValue

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

			for _, col := range row.GetValue() {
				rowData = append(rowData, col.GetScalarValue())
			}

			data = append(data, rowData)
		}

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

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