diff --git a/backend/alembic/versions/0085_add_roms_name_sort_key.py b/backend/alembic/versions/0085_add_roms_name_sort_key.py index c2f232d7c..bb96f8b5b 100644 --- a/backend/alembic/versions/0085_add_roms_name_sort_key.py +++ b/backend/alembic/versions/0085_add_roms_name_sort_key.py @@ -53,10 +53,7 @@ def upgrade() -> None: batch = rows[start : start + _BACKFILL_BATCH] bind.execute( update_stmt, - [ - {"_id": row.id, "_key": compute_name_sort_key(row.name)} - for row in batch - ], + [{"_id": row.id, "_key": compute_name_sort_key(row.name)} for row in batch], ) op.create_index("idx_roms_name_sort_key", "roms", ["name_sort_key"]) diff --git a/backend/handler/database/roms_handler.py b/backend/handler/database/roms_handler.py index 05e3f7ab7..72a29bd17 100644 --- a/backend/handler/database/roms_handler.py +++ b/backend/handler/database/roms_handler.py @@ -8,7 +8,6 @@ from typing import Any from redis.exceptions import WatchError from sqlalchemy import ( Integer, - Row, String, Text, and_, @@ -419,11 +418,11 @@ class DBRomsHandler(DBBaseHandler): return query if ROMM_DB_DRIVER in ("mariadb", "mysql"): - match_clauses: list[Any] | None = [] + match_clauses: list[Any] = [] for idx, term in enumerate(terms): boolean_query = self._build_fulltext_boolean_query(term) if boolean_query is None: - match_clauses = None + match_clauses = [] break param = f"fulltext_search_{idx}" match_clauses.append( @@ -1158,7 +1157,7 @@ class DBRomsHandler(DBBaseHandler): .all() ) - result = [[letter, int(position)] for letter, position in rows] + result = [(letter, int(position)) for letter, position in rows] if redis_key is not None and version is not None: _store_versioned_cache(redis_key, version, result) return result diff --git a/backend/models/rom.py b/backend/models/rom.py index 59b1816b1..4b0444436 100644 --- a/backend/models/rom.py +++ b/backend/models/rom.py @@ -45,14 +45,15 @@ NAME_SORT_KEY_MAX_LENGTH = 500 ARTICLE_PREFIX_RE = re.compile(r"^(the|a|an)\s+") DIGIT_RUN_RE = re.compile(r"\d+") + def compute_name_sort_key(name: str | None) -> str: - """Precompute the natural-sort key stored in `Rom.name_sort_key` - """ + """Precompute the natural-sort key stored in `Rom.name_sort_key`""" value = (name or "").lower() value = ARTICLE_PREFIX_RE.sub("", value).strip() value = DIGIT_RUN_RE.sub(lambda m: m.group(0).zfill(12), value) return value[:NAME_SORT_KEY_MAX_LENGTH] + if TYPE_CHECKING: from models.assets import Save, Screenshot, State from models.collection import Collection