perf(search): trigram indexes for sender/domain filters #17

Merged
cesnimda merged 1 commits from feature/search-trgm-index into develop 2026-07-02 01:55:59 +02:00

1 Commits

Author SHA1 Message Date
cesnimda be34faf864 perf(search): trigram GIN indexes on sender/domain for .Contains() filters
CI / backend (pull_request) Successful in 55s
CI / frontend (pull_request) Successful in 17s
Security / secrets (pull_request) Successful in 4s
Security / dependencies (pull_request) Successful in 55s
Slice 5 of search-core (perf). The sender/domain search filters use .Contains()
which EF translates to LIKE '%x%' — non-sargable on a btree (sequential scan). Add
gin_trgm_ops GIN indexes on Sender.Address, Sender.DisplayName, and MailDomain.Name
so those become index-accelerated (pg_trgm already enabled). No behaviour change.

Verified against live Postgres: EXPLAIN shows 'Bitmap Index Scan' on the trigram
index for LIKE '%x%'. Migration DDL dry-run applied cleanly. Build + all 40 tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 01:53:11 +02:00