-- Migration 006: Add composite covering index (is_published, year DESC) on theses -- -- Every public-facing query filters on is_published = 1 AND orders/filters by year. -- The existing separate idx_theses_published and idx_theses_year force the query -- planner to pick one index and sort the other via a temp B-tree. -- This single covering index eliminates the extra sort pass. CREATE INDEX IF NOT EXISTS idx_theses_pub_year ON theses(is_published, year DESC);