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

Method sqlScan

ent/entity_query.go:767–786  ·  view source on GitHub ↗
(ctx context.Context, root *EntityQuery, v any)

Source from the content-addressed store, hash-verified

765}
766
767func (es *EntitySelect) sqlScan(ctx context.Context, root *EntityQuery, v any) error {
768 selector := root.sqlQuery(ctx)
769 aggregation := make([]string, 0, len(es.fns))
770 for _, fn := range es.fns {
771 aggregation = append(aggregation, fn(selector))
772 }
773 switch n := len(*es.selector.flds); {
774 case n == 0 && len(aggregation) > 0:
775 selector.Select(aggregation...)
776 case n != 0 && len(aggregation) > 0:
777 selector.AppendSelect(aggregation...)
778 }
779 rows := &sql.Rows{}
780 query, args := selector.Query()
781 if err := es.driver.Query(ctx, query, args, rows); err != nil {
782 return err
783 }
784 defer rows.Close()
785 return sql.ScanSlice(rows, v)
786}

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