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,
}
}