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