radicle/cob/db: Add index for issues and patches

To improve query performance for issues and patches, add a composite
index on "repo" and "id" to the SQLite database schema via a
migration.
This commit is contained in:
Johannes Kühlewindt 2025-10-24 13:01:33 +07:00 committed by Lorenz Leutgeb
parent 990e22acff
commit 5741bafa3b
2 changed files with 10 additions and 4 deletions

View File

@ -28,6 +28,7 @@ const DB_WRITE_TIMEOUT: time::Duration = time::Duration::from_secs(6);
const MIGRATIONS: &[Migration] = &[
Migration::Sql(include_str!("cache/migrations/1.sql")),
Migration::Native(migrations::_2::run),
Migration::Sql(include_str!("cache/migrations/3.sql")),
];
/// Function signature for native migrations.
@ -466,10 +467,13 @@ mod tests {
assert_eq!(db.migrate_to(2, migrate::ignore).unwrap(), 2); // 1 -> 2
assert_eq!(db.version().unwrap(), 2);
assert_eq!(db.migrate_to(1, migrate::ignore).unwrap(), 2); // No-op.
assert_eq!(db.version().unwrap(), 2);
assert_eq!(db.migrate_to(3, migrate::ignore).unwrap(), 3); // 2 -> 3
assert_eq!(db.version().unwrap(), 3);
assert_eq!(db.migrate_to(99, migrate::ignore).unwrap(), 2); // No-op.
assert_eq!(db.version().unwrap(), 2);
assert_eq!(db.migrate_to(1, migrate::ignore).unwrap(), 3); // No-op.
assert_eq!(db.version().unwrap(), 3);
assert_eq!(db.migrate_to(99, migrate::ignore).unwrap(), 3); // No-op.
assert_eq!(db.version().unwrap(), 3);
}
}

View File

@ -0,0 +1,2 @@
create index if not exists 'ix_issues_repo_id' on 'issues' (repo, id);
create index if not exists 'ix_patches_repo_id' on 'patches' (repo, id);