Defense-in-depth: The migration framework already handles missing inserts via INSERT OR REPLACE (db.rs:174), but adding explicit inserts to .sql files ensures consistency and makes migrations self-documenting. Migrations affected: - 022_notes_query_index - 024_note_documents - 025_note_dirty_backfill - 026_scoring_indexes - 027_surgical_sync_runs
24 lines
1.0 KiB
SQL
24 lines
1.0 KiB
SQL
-- Indexes for time-decay expert scoring: dual-path matching and reviewer participation.
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_notes_old_path_author
|
|
ON notes(position_old_path, author_username, created_at)
|
|
WHERE note_type = 'DiffNote' AND is_system = 0 AND position_old_path IS NOT NULL;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_mfc_old_path_project_mr
|
|
ON mr_file_changes(old_path, project_id, merge_request_id)
|
|
WHERE old_path IS NOT NULL;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_mfc_new_path_project_mr
|
|
ON mr_file_changes(new_path, project_id, merge_request_id);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_notes_diffnote_discussion_author
|
|
ON notes(discussion_id, author_username, created_at)
|
|
WHERE note_type = 'DiffNote' AND is_system = 0;
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_notes_old_path_project_created
|
|
ON notes(position_old_path, project_id, created_at)
|
|
WHERE note_type = 'DiffNote' AND is_system = 0 AND position_old_path IS NOT NULL;
|
|
|
|
INSERT INTO schema_version (version, applied_at, description)
|
|
VALUES (26, strftime('%s', 'now') * 1000, '026_scoring_indexes');
|