fix: add unique constraint for saved filter names and fix search sort ordering

Database changes:
- Add unique index on saved_filters(user_id, name, resource_type)
  Prevents duplicate filter names while allowing same name across
  different users or different resource types

Search functionality fix:
- Remove DISTINCT ON (mi.id) from SearchMediaItemsUnified query
- Remove mi.id from ORDER BY clause (was required by DISTINCT ON)
- This allows user-selected sort field to be primary sort criteria
- Previously results were always sorted by ID first, making sort
  dropdown ineffective
- Relevance score and title remain as fallback sorts

This fixes the sort dropdown functionality on the bookshelf page
where changing the sort option appeared to have no effect.
This commit is contained in:
2026-03-28 00:46:03 -04:00
parent 99f95d2ff1
commit 0e11c9263c
3 changed files with 9 additions and 4 deletions
+7
View File
@@ -1025,6 +1025,13 @@ CREATE INDEX IF NOT EXISTS idx_saved_filters_user_resource ON saved_filters(user
-- Index for name searches (future feature)
CREATE INDEX IF NOT EXISTS idx_saved_filters_name ON saved_filters(user_id, name);
-- Unique constraint: One filter name per user per resource type
-- Prevents duplicate filter names while allowing:
-- - Same name for different users
-- - Same name for different resources (media-items vs collections)
CREATE UNIQUE INDEX IF NOT EXISTS idx_saved_filters_user_name_resource
ON saved_filters(user_id, name, resource_type);
-- Trigger to auto-update updated_at timestamp
CREATE OR REPLACE FUNCTION update_updated_at_column()
RETURNS TRIGGER AS $$