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

Method sqlScan

ent/user_query.go:1180–1199  ·  view source on GitHub ↗
(ctx context.Context, root *UserQuery, v any)

Source from the content-addressed store, hash-verified

1178}
1179
1180func (us *UserSelect) sqlScan(ctx context.Context, root *UserQuery, v any) error {
1181 selector := root.sqlQuery(ctx)
1182 aggregation := make([]string, 0, len(us.fns))
1183 for _, fn := range us.fns {
1184 aggregation = append(aggregation, fn(selector))
1185 }
1186 switch n := len(*us.selector.flds); {
1187 case n == 0 && len(aggregation) > 0:
1188 selector.Select(aggregation...)
1189 case n != 0 && len(aggregation) > 0:
1190 selector.AppendSelect(aggregation...)
1191 }
1192 rows := &sql.Rows{}
1193 query, args := selector.Query()
1194 if err := us.driver.Query(ctx, query, args, rows); err != nil {
1195 return err
1196 }
1197 defer rows.Close()
1198 return sql.ScanSlice(rows, v)
1199}

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