From 133e928c6d2d3f3ab355cdee227b13aa83eed1a7 Mon Sep 17 00:00:00 2001 From: Johan Brandhorst-Satzkorn Date: Thu, 25 Jan 2024 08:56:15 -0800 Subject: [PATCH] internal/db/schema: update recording indexes (#4278) The new index includes the new delete_time and delete_after columns, which are used in the list query. --- .../oss/postgres/82/02_recording_session.up.sql | 12 ++++++++++++ .../sqltest/tests/pagination/session_recording.sql | 12 ++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/internal/db/schema/migrations/oss/postgres/82/02_recording_session.up.sql b/internal/db/schema/migrations/oss/postgres/82/02_recording_session.up.sql index d41ddf21e8..fe0cfec764 100644 --- a/internal/db/schema/migrations/oss/postgres/82/02_recording_session.up.sql +++ b/internal/db/schema/migrations/oss/postgres/82/02_recording_session.up.sql @@ -182,4 +182,16 @@ begin; comment on view session_recording_aggregate is 'session_recording_aggregate contains the session recording resource with its storage bucket scope info and historical user info.'; + -- Update the indexes used for listing recordings to include the delete time and delete after, + -- since they're now used in the query. + drop index recording_session_create_time_public_id_idx; + drop index recording_session_update_time_public_id_idx; + + create index recording_session_create_time_public_id_delete_time_delete_idx + on recording_session (create_time desc, public_id desc, delete_time, delete_after); + create index recording_session_update_time_public_id_delete_time_delete_idx + on recording_session (update_time desc, public_id desc, delete_time, delete_after); + + analyze recording_session; + commit; diff --git a/internal/db/sqltest/tests/pagination/session_recording.sql b/internal/db/sqltest/tests/pagination/session_recording.sql index f60b7abbb5..c2d60edeb1 100644 --- a/internal/db/sqltest/tests/pagination/session_recording.sql +++ b/internal/db/sqltest/tests/pagination/session_recording.sql @@ -4,8 +4,16 @@ begin; select plan(2); - select has_index('recording_session', 'recording_session_create_time_public_id_idx', array['create_time', 'public_id']); - select has_index('recording_session', 'recording_session_update_time_public_id_idx', array['update_time', 'public_id']); + select has_index( + 'recording_session', + 'recording_session_create_time_public_id_delete_time_delete_idx', + array['create_time', 'public_id', 'delete_time', 'delete_after'] + ); + select has_index( + 'recording_session', + 'recording_session_update_time_public_id_delete_time_delete_idx', + array['update_time', 'public_id', 'delete_time', 'delete_after'] + ); select * from finish();