| 740 | } |
| 741 | |
| 742 | func (nvgb *NodeVersionGroupBy) sqlScan(ctx context.Context, root *NodeVersionQuery, v any) error { |
| 743 | selector := root.sqlQuery(ctx).Select() |
| 744 | aggregation := make([]string, 0, len(nvgb.fns)) |
| 745 | for _, fn := range nvgb.fns { |
| 746 | aggregation = append(aggregation, fn(selector)) |
| 747 | } |
| 748 | if len(selector.SelectedColumns()) == 0 { |
| 749 | columns := make([]string, 0, len(*nvgb.flds)+len(nvgb.fns)) |
| 750 | for _, f := range *nvgb.flds { |
| 751 | columns = append(columns, selector.C(f)) |
| 752 | } |
| 753 | columns = append(columns, aggregation...) |
| 754 | selector.Select(columns...) |
| 755 | } |
| 756 | selector.GroupBy(selector.Columns(*nvgb.flds...)...) |
| 757 | if err := selector.Err(); err != nil { |
| 758 | return err |
| 759 | } |
| 760 | rows := &sql.Rows{} |
| 761 | query, args := selector.Query() |
| 762 | if err := nvgb.build.driver.Query(ctx, query, args, rows); err != nil { |
| 763 | return err |
| 764 | } |
| 765 | defer rows.Close() |
| 766 | return sql.ScanSlice(rows, v) |
| 767 | } |
| 768 | |
| 769 | // NodeVersionSelect is the builder for selecting fields of NodeVersion entities. |
| 770 | type NodeVersionSelect struct { |