Skip to content

Commit 5c20075

Browse files
committed
rowid as id to support dbs without an explicit id column
1 parent 196137b commit 5c20075

File tree

6 files changed

+29
-29
lines changed

6 files changed

+29
-29
lines changed

library/createdb/tabs_add.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,17 +120,17 @@ def tabs_shuffle() -> None:
120120
f"""
121121
WITH m as (
122122
SELECT
123-
m.id
123+
m.rowid as id
124124
, path
125125
, frequency
126126
, COALESCE(MAX(h.time_played), 0) time_last_played
127127
, SUM(CASE WHEN h.done = 1 THEN 1 ELSE 0 END) play_count
128128
, hostname
129129
, category
130130
FROM media m
131-
LEFT JOIN history h on h.media_id = m.id
131+
LEFT JOIN history h on h.media_id = m.rowid
132132
WHERE COALESCE(time_deleted, 0)=0
133-
GROUP BY m.id
133+
GROUP BY m.rowid
134134
)
135135
SELECT
136136
id

library/mediadb/db_media.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -451,12 +451,12 @@ def get_dir_media(args, dirs: Collection, include_subdirs=False, limit=2_000) ->
451451
, *
452452
{', rank' if 'rank' in select_sql else ''}
453453
FROM {args.table} m
454-
LEFT JOIN history h on h.media_id = m.id
454+
LEFT JOIN history h on h.media_id = m.rowid
455455
WHERE 1=1
456-
and m.id in (select id from {args.table})
456+
and m.rowid in (select rowid as id from {args.table})
457457
{filter_paths}
458458
{" ".join(args.filter_sql)}
459-
GROUP BY m.id, m.path
459+
GROUP BY m.rowid, m.path
460460
)
461461
SELECT
462462
{select_sql}
@@ -494,7 +494,7 @@ def get_playlist_media(args, playlist_paths) -> list[dict]:
494494

495495
playlists_subquery = (
496496
"""AND playlists_id in (
497-
SELECT id from playlists
497+
SELECT rowid as id from playlists
498498
WHERE path IN ("""
499499
+ ",".join(f":playlist{i}" for i, _ in enumerate(playlist_paths))
500500
+ "))"
@@ -510,12 +510,12 @@ def get_playlist_media(args, playlist_paths) -> list[dict]:
510510
, *
511511
{', rank' if 'rank' in select_sql else ''}
512512
FROM {args.table} m
513-
LEFT JOIN history h on h.media_id = m.id
513+
LEFT JOIN history h on h.media_id = m.rowid
514514
WHERE 1=1
515-
and m.id in (select id from {args.table})
515+
and m.rowid in (select rowid as id from {args.table})
516516
{playlists_subquery}
517517
{" ".join(args.filter_sql)}
518-
GROUP BY m.id, m.path
518+
GROUP BY m.rowid, m.path
519519
)
520520
SELECT
521521
{select_sql}
@@ -610,11 +610,11 @@ def get_related_media(args, m: dict) -> list[dict]:
610610
, *
611611
{', rank' if 'rank' in select_sql else ''}
612612
FROM {args.table} m
613-
LEFT JOIN history h on h.media_id = m.id
613+
LEFT JOIN history h on h.media_id = m.rowid
614614
WHERE 1=1
615615
and path != :path
616616
{'' if args.related >= consts.RELATED_NO_FILTER else " ".join(args.filter_sql)}
617-
GROUP BY m.id, m.path
617+
GROUP BY m.rowid, m.path
618618
)
619619
SELECT
620620
{select_sql}

library/mediadb/playlists.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def playlists() -> None:
8181
{', sum(m.size) size' if 'size' in m_columns else ''}
8282
, count(*) count
8383
from media m
84-
JOIN ({query}) p on p.id = m.playlists_id
84+
JOIN ({query}) p on p.rowid = m.playlists_id
8585
group by m.playlists_id, coalesce(p.path, "Playlist-less media")
8686
order by count, p.path
8787
"""

library/multidb/copy_play_counts.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def copy_play_count(args, source_db) -> None:
3535
, done
3636
FROM
3737
media m
38-
JOIN history h on h.media_id = m.id
38+
JOIN history h on h.media_id = m.rowid
3939
WHERE
4040
h.time_played > 0
4141
OR

library/utils/sql_utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,12 +244,12 @@ def historical_usage(args, freq="monthly", time_column="time_played", hide_delet
244244
{', FIRST_VALUE(h.playhead) OVER (PARTITION BY h.media_id ORDER BY h.time_played DESC) playhead' if 'playhead' in h_columns else ''}
245245
, *
246246
FROM media m
247-
JOIN history h on h.media_id = m.id
247+
JOIN history h on h.media_id = m.rowid
248248
WHERE 1=1
249249
{filter_time_played(args)}
250250
{"AND COALESCE(time_deleted, 0)=0" if hide_deleted else ""}
251251
{"AND COALESCE(time_deleted, 0)>0" if only_deleted else ""}
252-
GROUP BY m.id, m.path
252+
GROUP BY m.rowid, m.path
253253
)
254254
SELECT
255255
{freq_sql} AS {freq_label}

library/utils/sqlgroups.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def perf_randomize_using_ids(args):
6464
limit = 16 * (args.limit or consts.DEFAULT_PLAY_QUEUE)
6565
where_not_deleted = "where COALESCE(time_deleted,0) = 0" if args.hide_deleted else ""
6666
args.filter_sql.append(
67-
f"and m.id in (select id from media {where_not_deleted} order by random() limit {limit})",
67+
f"and m.rowid in (select rowid as id from media {where_not_deleted} order by random() limit {limit})",
6868
)
6969

7070

@@ -79,17 +79,17 @@ def media_sql(args) -> tuple[str, dict]:
7979

8080
query = f"""WITH m as (
8181
SELECT
82-
m.id
82+
m.rowid as id
8383
, SUM(CASE WHEN h.done = 1 THEN 1 ELSE 0 END) play_count
8484
, MIN(h.time_played) time_first_played
8585
, MAX(h.time_played) time_last_played
8686
{', FIRST_VALUE(h.playhead) OVER (PARTITION BY h.media_id ORDER BY h.time_played DESC) playhead' if 'playhead' in h_columns else ''}
8787
, *
8888
FROM {args.table} m
89-
LEFT JOIN history h on h.media_id = m.id
89+
LEFT JOIN history h on h.media_id = m.rowid
9090
WHERE 1=1
9191
{" ".join(args.filter_sql)}
92-
GROUP BY m.id, m.path
92+
GROUP BY m.rowid, m.path
9393
)
9494
SELECT
9595
{select_sql}
@@ -127,12 +127,12 @@ def historical_media(args):
127127
{', duration' if 'duration' in m_columns else ''}
128128
{', subtitle_count' if 'subtitle_count' in m_columns else ''}
129129
FROM {args.table} m
130-
JOIN history h on h.media_id = m.id
130+
JOIN history h on h.media_id = m.rowid
131131
WHERE 1=1
132132
{sql_utils.filter_time_played(args)}
133133
{'AND COALESCE(time_deleted, 0)=0' if args.hide_deleted else ""}
134134
{"AND COALESCE(time_deleted, 0)>0" if args.only_deleted else ""}
135-
GROUP BY m.id, m.path
135+
GROUP BY m.rowid, m.path
136136
)
137137
SELECT *
138138
FROM m
@@ -163,10 +163,10 @@ def construct_links_query(args, limit) -> tuple[str, dict]:
163163
, SUM(CASE WHEN h.done = 1 THEN 1 ELSE 0 END) play_count
164164
, time_deleted
165165
FROM {args.table} m
166-
LEFT JOIN history h on h.media_id = m.id
166+
LEFT JOIN history h on h.media_id = m.rowid
167167
WHERE 1=1
168168
{" ".join(args.filter_sql)}
169-
GROUP BY m.id
169+
GROUP BY m.rowid
170170
)
171171
SELECT
172172
{', '.join(args.select) if args.select else ''}
@@ -200,10 +200,10 @@ def construct_tabs_query(args) -> tuple[str, dict]:
200200
, hostname
201201
, category
202202
FROM {args.table} m
203-
LEFT JOIN history h on h.media_id = m.id
203+
LEFT JOIN history h on h.media_id = m.rowid
204204
WHERE 1=1
205205
{" ".join(args.filter_sql)}
206-
GROUP BY m.id
206+
GROUP BY m.rowid
207207
), time_valid_tabs as (
208208
SELECT
209209
CASE
@@ -317,7 +317,7 @@ def construct_captions_search_query(args) -> tuple[str, dict]:
317317
SELECT
318318
{select_sql}
319319
FROM c
320-
JOIN {m_table} m on m.id = c.media_id
320+
JOIN {m_table} m on m.rowid = c.media_id
321321
WHERE 1=1
322322
{" ".join(args.aggregate_filter_sql)}
323323
ORDER BY 1=1
@@ -402,7 +402,7 @@ def construct_download_query(args, dl_status=False) -> tuple[str, dict]:
402402

403403
is_media_playlist = "playlists_id" in m_columns and "id" in pl_columns
404404
query = f"""select
405-
m.id
405+
m.rowid as id
406406
{', m.playlists_id' if "playlists_id" in m_columns else ''}
407407
, m.path
408408
{', p.path playlist_path' if is_media_playlist else ''}
@@ -419,7 +419,7 @@ def construct_download_query(args, dl_status=False) -> tuple[str, dict]:
419419
{', p.extractor_config' if is_media_playlist and 'extractor_config' in pl_columns else ''}
420420
{', p.extractor_key' if is_media_playlist and 'extractor_key' in pl_columns else ", 'Playlist-less media' as extractor_key"}
421421
FROM {args.table} m
422-
{'LEFT JOIN playlists p on p.id = m.playlists_id' if is_media_playlist else ''}
422+
{'LEFT JOIN playlists p on p.rowid = m.playlists_id' if is_media_playlist else ''}
423423
WHERE 1=1
424424
{'and COALESCE(m.time_downloaded,0) = 0' if 'time_downloaded' in m_columns and not dl_status else ''}
425425
{f'and COALESCE(m.download_attempts,0) <= {args.download_retries}' if 'download_attempts' in m_columns and not dl_status else ''}

0 commit comments

Comments
 (0)