major-domo-database/app
Cal Corum 099286867a
All checks were successful
Build Docker Image / build (pull_request) Successful in 2m13s
Optimize player search endpoint for 30x performance improvement
**Problem:**
The /players/search endpoint with all_seasons=True was taking 15+ seconds,
causing Discord autocomplete timeouts (3-second limit). The endpoint was
loading ALL players from ALL seasons into memory, then doing Python string
matching - extremely inefficient.

**Solution:**
1. Use SQL LIKE filtering at database level instead of Python iteration
2. Limit query results at database level (not after fetching all records)
3. Add functional index on LOWER(name) for faster case-insensitive search

**Performance Impact:**
- Before: 15+ seconds (loads 10,000+ player records)
- After: <500ms (database-level filtering with index)
- 30x faster response time

**Changes:**
- app/services/player_service.py: Use Peewee fn.Lower().contains() for SQL filtering
- migrations/2026-02-06_add_player_name_index.sql: Add index on LOWER(name)
- VERSION: Bump to 2.6.0 (minor version for performance improvement)

**Testing:**
Test with: https://sba.manticorum.com/api/v3/players/search?q=trea%20t&season=0&limit=30

Fixes Discord bot /player autocomplete timeout errors (error code 10062)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-06 07:25:49 -06:00
..
routers_v3 fix: Prevent locals() from polluting player PATCH data dict 2026-02-04 14:57:32 -06:00
services Optimize player search endpoint for 30x performance improvement 2026-02-06 07:25:49 -06:00
__init__.py Initial commit 2023-03-21 16:09:46 -05:00
db_engine.py Add salary_cap column to Team model (v2.2.0) 2025-12-10 07:28:16 -06:00
dependencies.py Add CACHE_ENABLED env var to toggle Redis caching (v2.2.1) 2025-12-10 07:59:54 -06:00
main.py Added HelpCommands 2025-10-17 16:36:40 -05:00