You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
idx_env_builds_status (plain btree on raw status) has a negligible number of lifetime scans in pg_stat_user_indexes. Status-filtered access runs on the purpose-built indexes instead (idx_env_builds_env_status_created, idx_env_builds_team_status_group, idx_env_builds_team_status_pagination, and the covering index including status_group).
env_builds is the most write-amplified table in the registry (0% HOT updates, 8 indexes), so every dropped index removes real WAL and dead-tuple volume from each build insert/supersede.
Draft on purpose: requesting an owner's confirmation that nothing planned depends on a full-table raw-status scan path before this lands.
Medium Risk
Dropping an index on a ~330M-row hot table can still block or slow workloads if anything still relies on full-table status scans; the down path is a long manual concurrent rebuild.
Overview
This removes the plain btree index on raw env_builds.status because it is barely used while every build insert still maintains it; status-filtered queries are expected to use the newer composite and status_group indexes instead. The migration uses DROP INDEX CONCURRENTLY with a one-hour statement_timeout on up and restores the migrator’s three-hour default afterward; down clears any invalid leftover index, rebuilds concurrently with no timeout for manual rollback, then restores the three-hour default.
Reviewed by Cursor Bugbot for commit 428983f. Bugbot is set up for automated code reviews on this repo. Configure here.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
idx_env_builds_status(plain btree on rawstatus) has a negligible number of lifetime scans inpg_stat_user_indexes. Status-filtered access runs on the purpose-built indexes instead (idx_env_builds_env_status_created,idx_env_builds_team_status_group,idx_env_builds_team_status_pagination, and the covering index includingstatus_group).env_builds is the most write-amplified table in the registry (0% HOT updates, 8 indexes), so every dropped index removes real WAL and dead-tuple volume from each build insert/supersede.
Draft on purpose: requesting an owner's confirmation that nothing planned depends on a full-table raw-status scan path before this lands.