photoprism/internal/entity/search
Michael Mayer 0cecb5287f Search: Match folder album_path case-insensitively #5724
Folder search lowercases the query term, but album_path is VARBINARY and
compared byte-exact (case-sensitive) on MySQL/MariaDB, so a lowercased
term no longer matched uppercase folder paths. A parent folder still
appeared via its case-insensitive title, while child folders - matchable
only by path - dropped out of the results.

Add a dialect-aware PathLike helper: MySQL converts album_path to a
case-insensitive collation for the LIKE, SQLite and other dialects fall
back to a plain LIKE (SQLite is already ASCII case-insensitive). Only the
folder search filter is affected; byte-exact album_path identity lookups
are unchanged, so emoji and case-distinct folders stay distinct.
2026-07-16 16:53:28 +00:00
..
viewer Links: Use canonical trailing-slash form for website URLs 2026-06-24 17:20:30 +02:00
accounts.go Settings: Reorganize UI and add an Accessibility section #848 #799 #5429 2026-07-08 14:11:36 +02:00
accounts_test.go Settings: Reorganize UI and add an Accessibility section #848 #799 #5429 2026-07-08 14:11:36 +02:00
albums.go Search: Match folder album_path case-insensitively #5724 2026-07-16 16:53:28 +00:00
albums_photos.go
albums_results.go Go: Apply go fix modernizations across backend packages 2026-02-20 03:54:33 +01:00
albums_test.go Search: Match folder album_path case-insensitively #5724 2026-07-16 16:53:28 +00:00
batch.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
batch_test.go API: Rename /batch/photos endpoint to /batch/photos/edit #271 2025-05-04 14:09:23 +02:00
camera_results.go Metadata: Add Camera Make and Model updates via CLI & API #5663 #5656 2026-06-15 09:25:44 +00:00
cameras.go Metadata: Add Camera Make and Model updates via CLI & API #5663 #5656 2026-06-15 09:25:44 +00:00
cameras_test.go Metadata: Add Camera Make and Model updates via CLI & API #5663 #5656 2026-06-15 09:25:44 +00:00
conditions.go Search: Match folder album_path case-insensitively #5724 2026-07-16 16:53:28 +00:00
conditions_test.go Search: Match folder album_path case-insensitively #5724 2026-07-16 16:53:28 +00:00
errors.go
faces.go Faces: Change search to return all face markers, regardless of src #5167 2025-10-07 20:01:43 +02:00
faces_results.go
faces_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
homophone_test.go Search: Reuse label helpers for homophone-aware lookups #5227 #5238 2026-03-07 12:06:25 +01:00
labels.go Search: Reuse label helpers for homophone-aware lookups #5227 #5238 2026-03-07 12:06:25 +01:00
labels_results.go Go: Apply go fix modernizations across backend packages 2026-02-20 03:54:33 +01:00
labels_test.go Search: Reuse label helpers for homophone-aware lookups #5227 #5238 2026-03-07 12:06:25 +01:00
lens_results.go Metadata: Add Lens Make and Model updates via CLI & API #5644 #5656 2026-06-15 09:37:32 +02:00
lenses.go Metadata: Add Lens Make and Model updates via CLI & API #5644 #5656 2026-06-15 09:37:32 +02:00
lenses_test.go Metadata: Add Lens Make and Model updates via CLI & API #5644 #5656 2026-06-15 09:37:32 +02:00
order.go Search: Add "reverse" query param to sort results in reverse order #683 2025-07-14 18:08:05 +02:00
order_test.go Search: Add "reverse" query param to sort results in reverse order #683 2025-07-14 18:08:05 +02:00
photos.go Search: Exclude deleted files and document per-session scope checks #1307 2026-05-29 08:20:26 +00:00
photos_filter_album_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_albums_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_filter_alt_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_animated_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_archived_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_camera_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_filter_category_test.go CLI: Add "photoprism vision reset" command to reset metadata #5233 2025-09-29 18:59:52 +02:00
photos_filter_city_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_color_test.go CLI: Add "photoprism vision reset" command to reset metadata #5233 2025-09-29 18:59:52 +02:00
photos_filter_country_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_day_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_filter_error_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_f_number_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_filter_face_test.go CLI: Add "photoprism vision reset" command to reset metadata #5233 2025-09-29 18:59:52 +02:00
photos_filter_faces_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_favorite_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_filter_filename_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_filter_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_focal_length_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_filter_folder_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_geo_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_hash_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_hidden_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_id_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_iso_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_filter_keywords_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_label_test.go Search: Add NOT & AND operators to label filter #5535 2026-04-17 17:25:18 +02:00
photos_filter_landscape_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_lens_test.go Metadata: Add Lens Make and Model updates via CLI & API #5644 #5656 2026-06-15 09:37:32 +02:00
photos_filter_live_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_mono_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_month_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_filter_name_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_panorama_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_path_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_people_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_person_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_photo_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_portrait_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_filter_primary_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_private_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_filter_public_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_raw_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_resolution_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_filter_review_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_scan_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_square_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_stack_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_stackable_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_state_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_subject_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_subjects_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_time_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_filter_title_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_type_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_filter_uid_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_unsorted_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_unstacked_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_vector_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_video_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_filter_year_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_geo.go Search: Sort geo "near" results by distance to the photo #5643 2026-06-16 23:19:46 +00:00
photos_geo_filter_albums_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_geo_filter_favorite_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_geo_filter_label_test.go Search: Add NOT & AND operators to label filter #5535 2026-04-17 17:25:18 +02:00
photos_geo_filter_near_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_geo_filter_s2_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
photos_geo_filter_time_test.go UX: Add batch edit dialog and API endpoints #271 #5324 2025-11-19 11:20:34 +01:00
photos_geo_test.go Search: Sort geo "near" results by distance to the photo #5643 2026-06-16 23:19:46 +00:00
photos_geojson_result.go Lightbox: Add support for 360° photos and videos #352 #4718 #5623 2026-06-17 03:26:25 +02:00
photos_geojson_result_test.go Metadata: Clamp invalid Google JSON GPS coordinates to geo bounds #5373 2026-02-11 13:42:58 +01:00
photos_results.go Lightbox: Add support for 360° photos and videos #352 #4718 #5623 2026-06-17 03:26:25 +02:00
photos_results_test.go Lightbox: Add support for 360° photos and videos #352 #4718 #5623 2026-06-17 03:26:25 +02:00
photos_scope.go Sharing: Fix single-item access for shared smart albums #5727 2026-07-16 12:10:44 +00:00
photos_scope_test.go Sharing: Fix single-item access for shared smart albums #5727 2026-07-16 12:10:44 +00:00
photos_test.go Search: Reuse label helpers for homophone-aware lookups #5227 #5238 2026-03-07 12:06:25 +01:00
photos_viewer.go Lightbox: Add support for 360° photos and videos #352 #4718 #5623 2026-06-17 03:26:25 +02:00
photos_viewer_test.go Lightbox: Add support for 360° photos and videos #352 #4718 #5623 2026-06-17 03:26:25 +02:00
search.go Links: Use canonical trailing-slash form for website URLs 2026-06-24 17:20:30 +02:00
search_test.go Tests: Improve isolation and add fixes #5263 2026-07-12 05:47:21 +02:00
select.go Go: Apply go fix modernizations across backend packages 2026-02-20 03:54:33 +01:00
select_test.go
sessions.go Search: Add "reverse" query param to sort results in reverse order #683 2025-07-14 18:08:05 +02:00
sessions_test.go Auth: Gate app passwords behind a settings feature flag #5647 2026-06-09 17:36:24 +00:00
subjects.go Search: Use parameterized queries for user search input #5587 2026-05-17 13:46:20 +00:00
subjects_results.go
subjects_test.go Test: Use PascalCase names for all Go subtests in /internal 2025-10-02 14:50:02 +02:00
users.go Search: Add "reverse" query param to sort results in reverse order #683 2025-07-14 18:08:05 +02:00
users_test.go Auth: Improve user model and search in backend and frontend 2025-03-18 09:00:50 +01:00