(ctx context.Context, query *DirectLinkQuery, nodes []*File, init func(*File), assign func(*File, *DirectLink))
| 945 | return nil |
| 946 | } |
| 947 | func (fq *FileQuery) loadDirectLinks(ctx context.Context, query *DirectLinkQuery, nodes []*File, init func(*File), assign func(*File, *DirectLink)) error { |
| 948 | fks := make([]driver.Value, 0, len(nodes)) |
| 949 | nodeids := make(map[int]*File) |
| 950 | for i := range nodes { |
| 951 | fks = append(fks, nodes[i].ID) |
| 952 | nodeids[nodes[i].ID] = nodes[i] |
| 953 | if init != nil { |
| 954 | init(nodes[i]) |
| 955 | } |
| 956 | } |
| 957 | if len(query.ctx.Fields) > 0 { |
| 958 | query.ctx.AppendFieldOnce(directlink.FieldFileID) |
| 959 | } |
| 960 | query.Where(predicate.DirectLink(func(s *sql.Selector) { |
| 961 | s.Where(sql.InValues(s.C(file.DirectLinksColumn), fks...)) |
| 962 | })) |
| 963 | neighbors, err := query.All(ctx) |
| 964 | if err != nil { |
| 965 | return err |
| 966 | } |
| 967 | for _, n := range neighbors { |
| 968 | fk := n.FileID |
| 969 | node, ok := nodeids[fk] |
| 970 | if !ok { |
| 971 | return fmt.Errorf(`unexpected referenced foreign-key "file_id" returned %v for node %v`, fk, n.ID) |
| 972 | } |
| 973 | assign(node, n) |
| 974 | } |
| 975 | return nil |
| 976 | } |
| 977 | |
| 978 | func (fq *FileQuery) sqlCount(ctx context.Context) (int, error) { |
| 979 | _spec := fq.querySpec() |
no test coverage detected