| 564 | return nil |
| 565 | } |
| 566 | func (spq *StoragePolicyQuery) loadFiles(ctx context.Context, query *FileQuery, nodes []*StoragePolicy, init func(*StoragePolicy), assign func(*StoragePolicy, *File)) error { |
| 567 | fks := make([]driver.Value, 0, len(nodes)) |
| 568 | nodeids := make(map[int]*StoragePolicy) |
| 569 | for i := range nodes { |
| 570 | fks = append(fks, nodes[i].ID) |
| 571 | nodeids[nodes[i].ID] = nodes[i] |
| 572 | if init != nil { |
| 573 | init(nodes[i]) |
| 574 | } |
| 575 | } |
| 576 | if len(query.ctx.Fields) > 0 { |
| 577 | query.ctx.AppendFieldOnce(file.FieldStoragePolicyFiles) |
| 578 | } |
| 579 | query.Where(predicate.File(func(s *sql.Selector) { |
| 580 | s.Where(sql.InValues(s.C(storagepolicy.FilesColumn), fks...)) |
| 581 | })) |
| 582 | neighbors, err := query.All(ctx) |
| 583 | if err != nil { |
| 584 | return err |
| 585 | } |
| 586 | for _, n := range neighbors { |
| 587 | fk := n.StoragePolicyFiles |
| 588 | node, ok := nodeids[fk] |
| 589 | if !ok { |
| 590 | return fmt.Errorf(`unexpected referenced foreign-key "storage_policy_files" returned %v for node %v`, fk, n.ID) |
| 591 | } |
| 592 | assign(node, n) |
| 593 | } |
| 594 | return nil |
| 595 | } |
| 596 | func (spq *StoragePolicyQuery) loadEntities(ctx context.Context, query *EntityQuery, nodes []*StoragePolicy, init func(*StoragePolicy), assign func(*StoragePolicy, *Entity)) error { |
| 597 | fks := make([]driver.Value, 0, len(nodes)) |
| 598 | nodeids := make(map[int]*StoragePolicy) |