mirror of
https://github.com/krateng/maloja.git
synced 2023-08-10 21:12:55 +03:00
Fixed potential bug for some sql functions
This commit is contained in:
parent
f0bfe8dfa7
commit
1e70d529fb
@ -1045,7 +1045,18 @@ def count_scrobbles_by_track_of_album(since,to,album,dbconn=None):
|
|||||||
@cached_wrapper_individual
|
@cached_wrapper_individual
|
||||||
@connection_provider
|
@connection_provider
|
||||||
def get_artists_of_tracks(track_ids,dbconn=None):
|
def get_artists_of_tracks(track_ids,dbconn=None):
|
||||||
op = sql.join(DB['trackartists'],DB['artists']).select().where(
|
|
||||||
|
jointable = sql.join(
|
||||||
|
DB['trackartists'],
|
||||||
|
DB['artists']
|
||||||
|
)
|
||||||
|
|
||||||
|
# we need to select to avoid multiple 'id' columns that will then
|
||||||
|
# be misinterpreted by the row-dict converter
|
||||||
|
op = sql.select(
|
||||||
|
DB['artists'],
|
||||||
|
DB['trackartists'].c.track_id
|
||||||
|
).select_from(jointable).where(
|
||||||
DB['trackartists'].c.track_id.in_(track_ids)
|
DB['trackartists'].c.track_id.in_(track_ids)
|
||||||
)
|
)
|
||||||
result = dbconn.execute(op).all()
|
result = dbconn.execute(op).all()
|
||||||
@ -1058,7 +1069,18 @@ def get_artists_of_tracks(track_ids,dbconn=None):
|
|||||||
@cached_wrapper_individual
|
@cached_wrapper_individual
|
||||||
@connection_provider
|
@connection_provider
|
||||||
def get_artists_of_albums(album_ids,dbconn=None):
|
def get_artists_of_albums(album_ids,dbconn=None):
|
||||||
op = sql.join(DB['albumartists'],DB['artists']).select().where(
|
|
||||||
|
jointable = sql.join(
|
||||||
|
DB['albumartists'],
|
||||||
|
DB['artists']
|
||||||
|
)
|
||||||
|
|
||||||
|
# we need to select to avoid multiple 'id' columns that will then
|
||||||
|
# be misinterpreted by the row-dict converter
|
||||||
|
op = sql.select(
|
||||||
|
DB['artists'],
|
||||||
|
DB['albumartists'].c.album_id
|
||||||
|
).select_from(jointable).where(
|
||||||
DB['albumartists'].c.album_id.in_(album_ids)
|
DB['albumartists'].c.album_id.in_(album_ids)
|
||||||
)
|
)
|
||||||
result = dbconn.execute(op).all()
|
result = dbconn.execute(op).all()
|
||||||
@ -1071,7 +1093,18 @@ def get_artists_of_albums(album_ids,dbconn=None):
|
|||||||
@cached_wrapper_individual
|
@cached_wrapper_individual
|
||||||
@connection_provider
|
@connection_provider
|
||||||
def get_albums_of_artists(artist_ids,dbconn=None):
|
def get_albums_of_artists(artist_ids,dbconn=None):
|
||||||
op = sql.join(DB['albumartists'],DB['albums']).select().where(
|
|
||||||
|
jointable = sql.join(
|
||||||
|
DB['albumartists'],
|
||||||
|
DB['albums']
|
||||||
|
)
|
||||||
|
|
||||||
|
# we need to select to avoid multiple 'id' columns that will then
|
||||||
|
# be misinterpreted by the row-dict converter
|
||||||
|
op = sql.select(
|
||||||
|
DB["albums"],
|
||||||
|
DB['albumartists'].c.artist_id
|
||||||
|
).select_from(jointable).where(
|
||||||
DB['albumartists'].c.artist_id.in_(artist_ids)
|
DB['albumartists'].c.artist_id.in_(artist_ids)
|
||||||
)
|
)
|
||||||
result = dbconn.execute(op).all()
|
result = dbconn.execute(op).all()
|
||||||
@ -1145,7 +1178,11 @@ def get_associated_artists(*artists,dbconn=None):
|
|||||||
DB['associated_artists'].c.source_artist == DB['artists'].c.id
|
DB['associated_artists'].c.source_artist == DB['artists'].c.id
|
||||||
)
|
)
|
||||||
|
|
||||||
op = jointable.select().where(
|
# we need to select to avoid multiple 'id' columns that will then
|
||||||
|
# be misinterpreted by the row-dict converter
|
||||||
|
op = sql.select(
|
||||||
|
DB['artists']
|
||||||
|
).select_from(jointable).where(
|
||||||
DB['associated_artists'].c.target_artist.in_(artist_ids)
|
DB['associated_artists'].c.target_artist.in_(artist_ids)
|
||||||
)
|
)
|
||||||
result = dbconn.execute(op).all()
|
result = dbconn.execute(op).all()
|
||||||
@ -1164,8 +1201,11 @@ def get_credited_artists(*artists,dbconn=None):
|
|||||||
DB['associated_artists'].c.target_artist == DB['artists'].c.id
|
DB['associated_artists'].c.target_artist == DB['artists'].c.id
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# we need to select to avoid multiple 'id' columns that will then
|
||||||
op = jointable.select().where(
|
# be misinterpreted by the row-dict converter
|
||||||
|
op = sql.select(
|
||||||
|
DB['artists']
|
||||||
|
).select_from(jointable).where(
|
||||||
DB['associated_artists'].c.source_artist.in_(artist_ids)
|
DB['associated_artists'].c.source_artist.in_(artist_ids)
|
||||||
)
|
)
|
||||||
result = dbconn.execute(op).all()
|
result = dbconn.execute(op).all()
|
||||||
|
Loading…
Reference in New Issue
Block a user