orderby and limit
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 16 Jun 2022 12:51:32 +0000 (14:51 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 16 Jun 2022 12:51:32 +0000 (14:51 +0200)
music_assistant/helpers/database.py
music_assistant/models/media_controller.py

index 329c6bda5eb07f7a3de8fc96f90c2938aecddb84..d85e42bd4e9c345bb22f4cdebbe2b29f03edc447 100755 (executable)
@@ -95,7 +95,8 @@ class Database:
             if match is not None:
                 sql_query += " WHERE " + " AND ".join((f"{x} = :{x}" for x in match))
             if order_by is not None:
-                sql_query += f"ORDER BY {order_by}"
+                sql_query += f" ORDER BY {order_by}"
+            sql_query += f" LIMIT {limit} OFFSET {offset}"
             return await _db.fetch_all(sql_query, match)
 
     async def get_rows_from_query(
@@ -108,6 +109,7 @@ class Database:
     ) -> List[Mapping]:
         """Get all rows for given custom query."""
         async with self.get_db(db) as _db:
+            query = f"{query} LIMIT {limit} OFFSET {offset}"
             return await _db.fetch_all(query, params)
 
     async def iterate_rows(
index 0884ee03100bc2e8dc55d02321e88480826bba46..e01affa9ad2152452fbad8492175dd07da5dea44 100644 (file)
@@ -70,7 +70,7 @@ class MediaControllerBase(Generic[ItemCls], metaclass=ABCMeta):
         return [
             self.item_cls.from_db_row(db_row)
             for db_row in await self.mass.database.get_rows(
-                self.db_table, match, limit=limit, offset=offset
+                self.db_table, match, order_by="name", limit=limit, offset=offset
             )
         ]