| 635 | return nil |
| 636 | } |
| 637 | func (_q *AlertQuery) loadMetas(ctx context.Context, query *MetaQuery, nodes []*Alert, init func(*Alert), assign func(*Alert, *Meta)) error { |
| 638 | fks := make([]driver.Value, 0, len(nodes)) |
| 639 | nodeids := make(map[int]*Alert) |
| 640 | for i := range nodes { |
| 641 | fks = append(fks, nodes[i].ID) |
| 642 | nodeids[nodes[i].ID] = nodes[i] |
| 643 | if init != nil { |
| 644 | init(nodes[i]) |
| 645 | } |
| 646 | } |
| 647 | if len(query.ctx.Fields) > 0 { |
| 648 | query.ctx.AppendFieldOnce(meta.FieldAlertMetas) |
| 649 | } |
| 650 | query.Where(predicate.Meta(func(s *sql.Selector) { |
| 651 | s.Where(sql.InValues(s.C(alert.MetasColumn), fks...)) |
| 652 | })) |
| 653 | neighbors, err := query.All(ctx) |
| 654 | if err != nil { |
| 655 | return err |
| 656 | } |
| 657 | for _, n := range neighbors { |
| 658 | fk := n.AlertMetas |
| 659 | node, ok := nodeids[fk] |
| 660 | if !ok { |
| 661 | return fmt.Errorf(`unexpected referenced foreign-key "alert_metas" returned %v for node %v`, fk, n.ID) |
| 662 | } |
| 663 | assign(node, n) |
| 664 | } |
| 665 | return nil |
| 666 | } |
| 667 | |
| 668 | func (_q *AlertQuery) sqlCount(ctx context.Context) (int, error) { |
| 669 | _spec := _q.querySpec() |