@@ -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