MCPcopy Create free account
hub / github.com/cloudreve/cloudreve / sqlScan

Method sqlScan

ent/share_query.go:669–688  ·  view source on GitHub ↗
(ctx context.Context, root *ShareQuery, v any)

Source from the content-addressed store, hash-verified

667}
668
669func (ss *ShareSelect) sqlScan(ctx context.Context, root *ShareQuery, v any) error {
670 selector := root.sqlQuery(ctx)
671 aggregation := make([]string, 0, len(ss.fns))
672 for _, fn := range ss.fns {
673 aggregation = append(aggregation, fn(selector))
674 }
675 switch n := len(*ss.selector.flds); {
676 case n == 0 && len(aggregation) > 0:
677 selector.Select(aggregation...)
678 case n != 0 && len(aggregation) > 0:
679 selector.AppendSelect(aggregation...)
680 }
681 rows := &sql.Rows{}
682 query, args := selector.Query()
683 if err := ss.driver.Query(ctx, query, args, rows); err != nil {
684 return err
685 }
686 defer rows.Close()
687 return sql.ScanSlice(rows, v)
688}

Callers

nothing calls this directly

Calls 4

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

Tested by

no test coverage detected