func()

in internal/sqlcollector/sqlcollector_v1.go [87:120]


func (c *V1) executeSQL(ctx context.Context, query string) ([][]any, error) {
	err := c.dbConn.PingContext(ctx)
	if err != nil {
		return nil, err
	}

	// Execute query
	rows, err := c.dbConn.QueryContext(ctx, query)
	if err != nil {
		return nil, err
	}
	defer rows.Close()
	cols, err := rows.Columns()
	if err != nil {
		return nil, err
	}

	width := len(cols)
	var res [][]any
	// Iterate through the result set.
	for rows.Next() {
		row := make([]any, width)
		ptrs := make([]any, width)
		for i := range row {
			ptrs[i] = &row[i]
		}
		if err := rows.Scan(ptrs...); err != nil {
			return nil, err
		}
		res = append(res, row)

	}
	return res, nil
}