From f068dab44669ea84ddd31415def474b111463da0 Mon Sep 17 00:00:00 2001 From: Denis Cornehl Date: Sun, 8 Feb 2026 05:23:38 +0100 Subject: [PATCH] add missing index in repositories table, order updates by oldest first --- ...46283bb6261466bfb7ed23c49df2d042e3c5.json} | 4 ++-- ...46283bb6261466bfb7ed23c49df2d042e3c5.json} | 4 ++-- ...46283bb6261466bfb7ed23c49df2d042e3c5.json} | 4 ++-- ...46283bb6261466bfb7ed23c49df2d042e3c5.json} | 4 ++-- ...546283bb6261466bfb7ed23c49df2d042e3c5.json | 22 +++++++++++++++++++ ...482315132d6baff4c517df246bc39638f5527.json | 22 ------------------- ...546283bb6261466bfb7ed23c49df2d042e3c5.json | 22 +++++++++++++++++++ ...482315132d6baff4c517df246bc39638f5527.json | 22 ------------------- ...546283bb6261466bfb7ed23c49df2d042e3c5.json | 22 +++++++++++++++++++ ...482315132d6baff4c517df246bc39638f5527.json | 22 ------------------- ...42033_repositories-index-updated-.down.sql | 1 + ...8042033_repositories-index-updated-.up.sql | 1 + ...546283bb6261466bfb7ed23c49df2d042e3c5.json | 22 +++++++++++++++++++ ...482315132d6baff4c517df246bc39638f5527.json | 22 ------------------- .../docs_rs_repository_stats/src/updater.rs | 6 ++++- 15 files changed, 103 insertions(+), 97 deletions(-) rename .sqlx/{query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json => query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json} (57%) rename crates/bin/cratesfyi/.sqlx/{query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json => query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json} (57%) rename crates/bin/docs_rs_admin/.sqlx/{query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json => query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json} (57%) rename crates/bin/docs_rs_builder/.sqlx/{query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json => query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json} (57%) create mode 100644 crates/bin/docs_rs_watcher/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json delete mode 100644 crates/bin/docs_rs_watcher/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json create mode 100644 crates/bin/docs_rs_web/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json delete mode 100644 crates/bin/docs_rs_web/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json create mode 100644 crates/lib/docs_rs_context/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json delete mode 100644 crates/lib/docs_rs_context/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json create mode 100644 crates/lib/docs_rs_database/migrations/20260208042033_repositories-index-updated-.down.sql create mode 100644 crates/lib/docs_rs_database/migrations/20260208042033_repositories-index-updated-.up.sql create mode 100644 crates/lib/docs_rs_repository_stats/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json delete mode 100644 crates/lib/docs_rs_repository_stats/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json diff --git a/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json b/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json similarity index 57% rename from .sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json rename to .sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json index a88c69335..ba5ca8af5 100644 --- a/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json +++ b/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT host_id\n FROM repositories\n WHERE host = $1 AND updated_at < NOW() - INTERVAL '1 day';", + "query": "SELECT host_id\n FROM repositories\n WHERE\n host = $1 AND\n updated_at < NOW() - INTERVAL '1 day'\n ORDER BY updated_at\n ;", "describe": { "columns": [ { @@ -18,5 +18,5 @@ false ] }, - "hash": "440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527" + "hash": "1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5" } diff --git a/crates/bin/cratesfyi/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json b/crates/bin/cratesfyi/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json similarity index 57% rename from crates/bin/cratesfyi/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json rename to crates/bin/cratesfyi/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json index a88c69335..ba5ca8af5 100644 --- a/crates/bin/cratesfyi/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json +++ b/crates/bin/cratesfyi/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT host_id\n FROM repositories\n WHERE host = $1 AND updated_at < NOW() - INTERVAL '1 day';", + "query": "SELECT host_id\n FROM repositories\n WHERE\n host = $1 AND\n updated_at < NOW() - INTERVAL '1 day'\n ORDER BY updated_at\n ;", "describe": { "columns": [ { @@ -18,5 +18,5 @@ false ] }, - "hash": "440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527" + "hash": "1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5" } diff --git a/crates/bin/docs_rs_admin/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json b/crates/bin/docs_rs_admin/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json similarity index 57% rename from crates/bin/docs_rs_admin/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json rename to crates/bin/docs_rs_admin/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json index a88c69335..ba5ca8af5 100644 --- a/crates/bin/docs_rs_admin/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json +++ b/crates/bin/docs_rs_admin/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT host_id\n FROM repositories\n WHERE host = $1 AND updated_at < NOW() - INTERVAL '1 day';", + "query": "SELECT host_id\n FROM repositories\n WHERE\n host = $1 AND\n updated_at < NOW() - INTERVAL '1 day'\n ORDER BY updated_at\n ;", "describe": { "columns": [ { @@ -18,5 +18,5 @@ false ] }, - "hash": "440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527" + "hash": "1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5" } diff --git a/crates/bin/docs_rs_builder/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json b/crates/bin/docs_rs_builder/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json similarity index 57% rename from crates/bin/docs_rs_builder/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json rename to crates/bin/docs_rs_builder/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json index a88c69335..ba5ca8af5 100644 --- a/crates/bin/docs_rs_builder/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json +++ b/crates/bin/docs_rs_builder/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT host_id\n FROM repositories\n WHERE host = $1 AND updated_at < NOW() - INTERVAL '1 day';", + "query": "SELECT host_id\n FROM repositories\n WHERE\n host = $1 AND\n updated_at < NOW() - INTERVAL '1 day'\n ORDER BY updated_at\n ;", "describe": { "columns": [ { @@ -18,5 +18,5 @@ false ] }, - "hash": "440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527" + "hash": "1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5" } diff --git a/crates/bin/docs_rs_watcher/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json b/crates/bin/docs_rs_watcher/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json new file mode 100644 index 000000000..ba5ca8af5 --- /dev/null +++ b/crates/bin/docs_rs_watcher/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json @@ -0,0 +1,22 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT host_id\n FROM repositories\n WHERE\n host = $1 AND\n updated_at < NOW() - INTERVAL '1 day'\n ORDER BY updated_at\n ;", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "host_id", + "type_info": "Varchar" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + false + ] + }, + "hash": "1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5" +} diff --git a/crates/bin/docs_rs_watcher/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json b/crates/bin/docs_rs_watcher/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json deleted file mode 100644 index a88c69335..000000000 --- a/crates/bin/docs_rs_watcher/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT host_id\n FROM repositories\n WHERE host = $1 AND updated_at < NOW() - INTERVAL '1 day';", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "host_id", - "type_info": "Varchar" - } - ], - "parameters": { - "Left": [ - "Text" - ] - }, - "nullable": [ - false - ] - }, - "hash": "440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527" -} diff --git a/crates/bin/docs_rs_web/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json b/crates/bin/docs_rs_web/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json new file mode 100644 index 000000000..ba5ca8af5 --- /dev/null +++ b/crates/bin/docs_rs_web/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json @@ -0,0 +1,22 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT host_id\n FROM repositories\n WHERE\n host = $1 AND\n updated_at < NOW() - INTERVAL '1 day'\n ORDER BY updated_at\n ;", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "host_id", + "type_info": "Varchar" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + false + ] + }, + "hash": "1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5" +} diff --git a/crates/bin/docs_rs_web/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json b/crates/bin/docs_rs_web/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json deleted file mode 100644 index a88c69335..000000000 --- a/crates/bin/docs_rs_web/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT host_id\n FROM repositories\n WHERE host = $1 AND updated_at < NOW() - INTERVAL '1 day';", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "host_id", - "type_info": "Varchar" - } - ], - "parameters": { - "Left": [ - "Text" - ] - }, - "nullable": [ - false - ] - }, - "hash": "440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527" -} diff --git a/crates/lib/docs_rs_context/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json b/crates/lib/docs_rs_context/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json new file mode 100644 index 000000000..ba5ca8af5 --- /dev/null +++ b/crates/lib/docs_rs_context/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json @@ -0,0 +1,22 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT host_id\n FROM repositories\n WHERE\n host = $1 AND\n updated_at < NOW() - INTERVAL '1 day'\n ORDER BY updated_at\n ;", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "host_id", + "type_info": "Varchar" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + false + ] + }, + "hash": "1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5" +} diff --git a/crates/lib/docs_rs_context/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json b/crates/lib/docs_rs_context/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json deleted file mode 100644 index a88c69335..000000000 --- a/crates/lib/docs_rs_context/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT host_id\n FROM repositories\n WHERE host = $1 AND updated_at < NOW() - INTERVAL '1 day';", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "host_id", - "type_info": "Varchar" - } - ], - "parameters": { - "Left": [ - "Text" - ] - }, - "nullable": [ - false - ] - }, - "hash": "440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527" -} diff --git a/crates/lib/docs_rs_database/migrations/20260208042033_repositories-index-updated-.down.sql b/crates/lib/docs_rs_database/migrations/20260208042033_repositories-index-updated-.down.sql new file mode 100644 index 000000000..6b4dd0a5b --- /dev/null +++ b/crates/lib/docs_rs_database/migrations/20260208042033_repositories-index-updated-.down.sql @@ -0,0 +1 @@ +DROP INDEX repositories_updated_idx; diff --git a/crates/lib/docs_rs_database/migrations/20260208042033_repositories-index-updated-.up.sql b/crates/lib/docs_rs_database/migrations/20260208042033_repositories-index-updated-.up.sql new file mode 100644 index 000000000..4d0396106 --- /dev/null +++ b/crates/lib/docs_rs_database/migrations/20260208042033_repositories-index-updated-.up.sql @@ -0,0 +1 @@ +CREATE INDEX repositories_updated_idx ON repositories USING btree (updated_at); diff --git a/crates/lib/docs_rs_repository_stats/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json b/crates/lib/docs_rs_repository_stats/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json new file mode 100644 index 000000000..ba5ca8af5 --- /dev/null +++ b/crates/lib/docs_rs_repository_stats/.sqlx/query-1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5.json @@ -0,0 +1,22 @@ +{ + "db_name": "PostgreSQL", + "query": "SELECT host_id\n FROM repositories\n WHERE\n host = $1 AND\n updated_at < NOW() - INTERVAL '1 day'\n ORDER BY updated_at\n ;", + "describe": { + "columns": [ + { + "ordinal": 0, + "name": "host_id", + "type_info": "Varchar" + } + ], + "parameters": { + "Left": [ + "Text" + ] + }, + "nullable": [ + false + ] + }, + "hash": "1a0487c0559ce9e4283e9ede644546283bb6261466bfb7ed23c49df2d042e3c5" +} diff --git a/crates/lib/docs_rs_repository_stats/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json b/crates/lib/docs_rs_repository_stats/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json deleted file mode 100644 index a88c69335..000000000 --- a/crates/lib/docs_rs_repository_stats/.sqlx/query-440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "db_name": "PostgreSQL", - "query": "SELECT host_id\n FROM repositories\n WHERE host = $1 AND updated_at < NOW() - INTERVAL '1 day';", - "describe": { - "columns": [ - { - "ordinal": 0, - "name": "host_id", - "type_info": "Varchar" - } - ], - "parameters": { - "Left": [ - "Text" - ] - }, - "nullable": [ - false - ] - }, - "hash": "440b3d15186a21435c470279a5c482315132d6baff4c517df246bc39638f5527" -} diff --git a/crates/lib/docs_rs_repository_stats/src/updater.rs b/crates/lib/docs_rs_repository_stats/src/updater.rs index 1b1b96fb0..e83ec98c7 100644 --- a/crates/lib/docs_rs_repository_stats/src/updater.rs +++ b/crates/lib/docs_rs_repository_stats/src/updater.rs @@ -150,7 +150,11 @@ impl RepositoryStatsUpdater { let needs_update: Vec = sqlx::query!( "SELECT host_id FROM repositories - WHERE host = $1 AND updated_at < NOW() - INTERVAL '1 day';", + WHERE + host = $1 AND + updated_at < NOW() - INTERVAL '1 day' + ORDER BY updated_at + ;", updater.host() ) .fetch(&mut *conn)