From eacd4e44cdbe6dccfe2f23088e520ae2dfd6db54 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Wed, 7 Sep 2022 08:12:51 -0400 Subject: [PATCH] Adding job to drop phantom ccnew indexes. Fixes #2431 (#2432) --- .../down.sql | 1 + .../up.sql | 13 +++++++++++++ src/scheduled_tasks.rs | 11 +++++++++++ 3 files changed, 25 insertions(+) create mode 100644 migrations/2022-09-07-113813_drop_ccnew_indexes_function/down.sql create mode 100644 migrations/2022-09-07-113813_drop_ccnew_indexes_function/up.sql diff --git a/migrations/2022-09-07-113813_drop_ccnew_indexes_function/down.sql b/migrations/2022-09-07-113813_drop_ccnew_indexes_function/down.sql new file mode 100644 index 000000000..3fc7778a5 --- /dev/null +++ b/migrations/2022-09-07-113813_drop_ccnew_indexes_function/down.sql @@ -0,0 +1 @@ +drop function drop_ccnew_indexes; diff --git a/migrations/2022-09-07-113813_drop_ccnew_indexes_function/up.sql b/migrations/2022-09-07-113813_drop_ccnew_indexes_function/up.sql new file mode 100644 index 000000000..2a861aaff --- /dev/null +++ b/migrations/2022-09-07-113813_drop_ccnew_indexes_function/up.sql @@ -0,0 +1,13 @@ +CREATE OR REPLACE FUNCTION drop_ccnew_indexes() RETURNS INTEGER AS $$ +DECLARE +i RECORD; +BEGIN + FOR i IN + (SELECT relname FROM pg_class WHERE relname like '%ccnew%') + LOOP + EXECUTE 'DROP INDEX ' || i.relname; + END LOOP; + RETURN 1; + END; +$$ LANGUAGE plpgsql; + diff --git a/src/scheduled_tasks.rs b/src/scheduled_tasks.rs index 5b1ae419b..df54868fb 100644 --- a/src/scheduled_tasks.rs +++ b/src/scheduled_tasks.rs @@ -22,6 +22,7 @@ pub fn setup(pool: DbPool) -> Result<(), LemmyError> { active_counts(&conn); update_banned_when_expired(&conn); reindex_aggregates_tables(&conn, true); + drop_ccnew_indexes(&conn); }); let conn = pool.get()?; @@ -103,3 +104,13 @@ fn update_banned_when_expired(conn: &PgConnection) { .execute(conn) .expect("update banned when expires"); } + +/// Drops the phantom CCNEW indexes created by postgres +/// https://github.com/LemmyNet/lemmy/issues/2431 +fn drop_ccnew_indexes(conn: &PgConnection) { + info!("Dropping phantom ccnew indexes..."); + let drop_stmt = "select drop_ccnew_indexes()"; + sql_query(drop_stmt) + .execute(conn) + .expect("drop ccnew indexes"); +}