| 404 | } |
| 405 | |
| 406 | func (_q *MachineQuery) loadAlerts(ctx context.Context, query *AlertQuery, nodes []*Machine, init func(*Machine), assign func(*Machine, *Alert)) error { |
| 407 | fks := make([]driver.Value, 0, len(nodes)) |
| 408 | nodeids := make(map[int]*Machine) |
| 409 | for i := range nodes { |
| 410 | fks = append(fks, nodes[i].ID) |
| 411 | nodeids[nodes[i].ID] = nodes[i] |
| 412 | if init != nil { |
| 413 | init(nodes[i]) |
| 414 | } |
| 415 | } |
| 416 | query.withFKs = true |
| 417 | query.Where(predicate.Alert(func(s *sql.Selector) { |
| 418 | s.Where(sql.InValues(s.C(machine.AlertsColumn), fks...)) |
| 419 | })) |
| 420 | neighbors, err := query.All(ctx) |
| 421 | if err != nil { |
| 422 | return err |
| 423 | } |
| 424 | for _, n := range neighbors { |
| 425 | fk := n.machine_alerts |
| 426 | if fk == nil { |
| 427 | return fmt.Errorf(`foreign-key "machine_alerts" is nil for node %v`, n.ID) |
| 428 | } |
| 429 | node, ok := nodeids[*fk] |
| 430 | if !ok { |
| 431 | return fmt.Errorf(`unexpected referenced foreign-key "machine_alerts" returned %v for node %v`, *fk, n.ID) |
| 432 | } |
| 433 | assign(node, n) |
| 434 | } |
| 435 | return nil |
| 436 | } |
| 437 | |
| 438 | func (_q *MachineQuery) sqlCount(ctx context.Context) (int, error) { |
| 439 | _spec := _q.querySpec() |