MCPcopy
hub / github.com/cloudreve/cloudreve / sqlScan

Method sqlScan

ent/storagepolicy_query.go:761–786  ·  view source on GitHub ↗
(ctx context.Context, root *StoragePolicyQuery, v any)

Source from the content-addressed store, hash-verified

759}
760
761func (spgb *StoragePolicyGroupBy) sqlScan(ctx context.Context, root *StoragePolicyQuery, v any) error {
762 selector := root.sqlQuery(ctx).Select()
763 aggregation := make([]string, 0, len(spgb.fns))
764 for _, fn := range spgb.fns {
765 aggregation = append(aggregation, fn(selector))
766 }
767 if len(selector.SelectedColumns()) == 0 {
768 columns := make([]string, 0, len(*spgb.flds)+len(spgb.fns))
769 for _, f := range *spgb.flds {
770 columns = append(columns, selector.C(f))
771 }
772 columns = append(columns, aggregation...)
773 selector.Select(columns...)
774 }
775 selector.GroupBy(selector.Columns(*spgb.flds...)...)
776 if err := selector.Err(); err != nil {
777 return err
778 }
779 rows := &sql.Rows{}
780 query, args := selector.Query()
781 if err := spgb.build.driver.Query(ctx, query, args, rows); err != nil {
782 return err
783 }
784 defer rows.Close()
785 return sql.ScanSlice(rows, v)
786}
787
788// StoragePolicySelect is the builder for selecting fields of StoragePolicy entities.
789type StoragePolicySelect struct {

Callers

nothing calls this directly

Calls 5

CloseMethod · 0.65
SelectMethod · 0.45
sqlQueryMethod · 0.45
GroupByMethod · 0.45
QueryMethod · 0.45

Tested by

no test coverage detected