(ctx context.Context, drv dialect.Driver)
| 995 | } |
| 996 | |
| 997 | func (q *query) nodes(ctx context.Context, drv dialect.Driver) error { |
| 998 | rows := &sql.Rows{} |
| 999 | selector, err := q.selector(ctx) |
| 1000 | if err != nil { |
| 1001 | return err |
| 1002 | } |
| 1003 | query, args := selector.Query() |
| 1004 | if err := drv.Query(ctx, query, args, rows); err != nil { |
| 1005 | return err |
| 1006 | } |
| 1007 | defer rows.Close() |
| 1008 | columns, err := rows.Columns() |
| 1009 | if err != nil { |
| 1010 | return err |
| 1011 | } |
| 1012 | for rows.Next() { |
| 1013 | values, err := q.ScanValues(columns) |
| 1014 | if err != nil { |
| 1015 | return err |
| 1016 | } |
| 1017 | for i, v := range values { |
| 1018 | if _, ok := v.(*sql.UnknownType); ok { |
| 1019 | values[i] = sql.ScanTypeOf(rows, i) |
| 1020 | } |
| 1021 | } |
| 1022 | if err := rows.Scan(values...); err != nil { |
| 1023 | return err |
| 1024 | } |
| 1025 | if err := q.Assign(columns, values); err != nil { |
| 1026 | return err |
| 1027 | } |
| 1028 | } |
| 1029 | return rows.Err() |
| 1030 | } |
| 1031 | |
| 1032 | func (q *query) count(ctx context.Context, drv dialect.Driver) (int, error) { |
| 1033 | rows := &sql.Rows{} |
no test coverage detected