| 515 | } |
| 516 | |
| 517 | func (gq *GroupQuery) querySpec() *sqlgraph.QuerySpec { |
| 518 | _spec := sqlgraph.NewQuerySpec(group.Table, group.Columns, sqlgraph.NewFieldSpec(group.FieldID, field.TypeInt)) |
| 519 | _spec.From = gq.sql |
| 520 | if unique := gq.ctx.Unique; unique != nil { |
| 521 | _spec.Unique = *unique |
| 522 | } else if gq.path != nil { |
| 523 | _spec.Unique = true |
| 524 | } |
| 525 | if fields := gq.ctx.Fields; len(fields) > 0 { |
| 526 | _spec.Node.Columns = make([]string, 0, len(fields)) |
| 527 | _spec.Node.Columns = append(_spec.Node.Columns, group.FieldID) |
| 528 | for i := range fields { |
| 529 | if fields[i] != group.FieldID { |
| 530 | _spec.Node.Columns = append(_spec.Node.Columns, fields[i]) |
| 531 | } |
| 532 | } |
| 533 | if gq.withStoragePolicies != nil { |
| 534 | _spec.Node.AddColumnOnce(group.FieldStoragePolicyID) |
| 535 | } |
| 536 | } |
| 537 | if ps := gq.predicates; len(ps) > 0 { |
| 538 | _spec.Predicate = func(selector *sql.Selector) { |
| 539 | for i := range ps { |
| 540 | ps[i](selector) |
| 541 | } |
| 542 | } |
| 543 | } |
| 544 | if limit := gq.ctx.Limit; limit != nil { |
| 545 | _spec.Limit = *limit |
| 546 | } |
| 547 | if offset := gq.ctx.Offset; offset != nil { |
| 548 | _spec.Offset = *offset |
| 549 | } |
| 550 | if ps := gq.order; len(ps) > 0 { |
| 551 | _spec.Order = func(selector *sql.Selector) { |
| 552 | for i := range ps { |
| 553 | ps[i](selector) |
| 554 | } |
| 555 | } |
| 556 | } |
| 557 | return _spec |
| 558 | } |
| 559 | |
| 560 | func (gq *GroupQuery) sqlQuery(ctx context.Context) *sql.Selector { |
| 561 | builder := sql.Dialect(gq.driver.Dialect()) |