navidrome/db
Deluan ba16ab4158 perf(pglite): artist stats as hash joins, one statement for a full refresh; bigint library size
The stats UPDATE now joins the materialized counters (with a LEFT JOIN
so artists without files still get '{}') instead of a correlated
subquery, and a full refresh runs as a single statement: 3.3 s for 30k
artists locally versus 30 batches. Batches of 1000 remain for partial
refreshes (0.24 s each).

library.total_size was integer; a 2 TB library overflowed it at the end
of the first scan. It is bigint now, matching the Go int64.

The bridge no longer synthesizes a reply for Terminate, which never gets
one by design.
2026-09-04 23:23:50 -04:00
..
migrations perf(pglite): artist stats as hash joins, one statement for a full refresh; bigint library size 2026-09-04 23:23:50 -04:00
pglite perf(pglite): artist stats as hash joins, one statement for a full refresh; bigint library size 2026-09-04 23:23:50 -04:00
backup.go feat(pglite): run Navidrome on the embedded PostgreSQL end to end 2026-09-04 20:41:52 -04:00
backup_test.go chore(deps): upgrade to Go 1.27 (#5990) 2026-08-30 12:43:15 -04:00
db.go feat(pglite): run Navidrome on the embedded PostgreSQL end to end 2026-09-04 20:41:52 -04:00
db_test.go feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
export_test.go perf(db): keep query planner statistics trustworthy with full ANALYZE (#5740) 2026-07-13 12:04:29 -04:00
optimize.go feat(pglite): run Navidrome on the embedded PostgreSQL end to end 2026-09-04 20:41:52 -04:00
optimize_test.go perf(db): keep query planner statistics trustworthy with full ANALYZE (#5740) 2026-07-13 12:04:29 -04:00