| 676 | } |
| 677 | if s.cfg.SessionMemoryVacuumAfterEviction { |
| 678 | _, _ = s.db.ExecContext(ctx, `VACUUM`) |
| 679 | } |
| 680 | return nil |
| 681 | } |
| 682 | |
| 683 | func (s *Store) evictCommits(ctx context.Context, maxCommits int) error { |
| 684 | var count int |
| 685 | if err := s.db.QueryRowContext(ctx, `SELECT COUNT(*) FROM commits`).Scan(&count); err != nil { |
| 686 | return err |
| 687 | } |
| 688 | extra := count - maxCommits |
| 689 | if extra <= 0 { |
| 690 | return nil |
| 691 | } |
| 692 | rows, err := s.db.QueryContext(ctx, `SELECT id FROM commits ORDER BY last_accessed_at ASC, id ASC LIMIT ?`, extra) |