diff --git a/files/classes/user.py b/files/classes/user.py index 8ebc4d71d..cc9809d69 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -353,8 +353,8 @@ class User(Base, Stndrd, Age_times): awards = {} - posts_idlist = g.db.query(Submission.id).options(lazyload('*')).filter_by(author_id=self.id).all() - comments_idlist = g.db.query(Comment.id).options(lazyload('*')).filter_by(author_id=self.id).all() + posts_idlist = g.db.query(Submission.id).options(lazyload('*')).filter_by(author_id=self.id).subquery() + comments_idlist = g.db.query(Comment.id).options(lazyload('*')).filter_by(author_id=self.id).subquery() post_awards = g.db.query(AwardRelationship).options(lazyload('*')).filter(AwardRelationship.submission_id.in_(posts_idlist)).all() comment_awards = g.db.query(AwardRelationship).options(lazyload('*')).filter(AwardRelationship.comment_id.in_(comments_idlist)).all() @@ -393,7 +393,7 @@ class User(Base, Stndrd, Age_times): Alt.user1 == self.id, Alt.user2 == self.id ) - ).all() + ).subquery() data = g.db.query( User, @@ -424,7 +424,7 @@ class User(Base, Stndrd, Age_times): Alt.user1 == self.id, Alt.user2 == self.id ) - ).all() + ).subquery() data = db.query( User, @@ -563,16 +563,16 @@ class User(Base, Stndrd, Age_times): deleted_utc=0 ) - saved = g.db.query(SaveRelationship.submission_id).options(lazyload('*')).filter(SaveRelationship.user_id == self.id).all() + saved = g.db.query(SaveRelationship.submission_id).options(lazyload('*')).filter(SaveRelationship.user_id == self.id).subquery() posts = posts.filter(Submission.id.in_(saved)) if self.admin_level == 0: blocking = g.db.query( UserBlock.target_id).filter_by( - user_id=self.id).all() + user_id=self.id).subquery() blocked = g.db.query( UserBlock.user_id).filter_by( - target_id=self.id).all() + target_id=self.id).subquery() posts = posts.filter( Submission.author_id.notin_(blocking), @@ -587,16 +587,16 @@ class User(Base, Stndrd, Age_times): comments = g.db.query(Comment.id).options(lazyload('*')).options(lazyload('*')).filter_by(is_banned=False, deleted_utc=0) - saved = g.db.query(SaveRelationship.submission_id).options(lazyload('*')).filter(SaveRelationship.user_id == self.id).all() + saved = g.db.query(SaveRelationship.submission_id).options(lazyload('*')).filter(SaveRelationship.user_id == self.id).subquery() comments = comments.filter(Comment.id.in_(saved)) if self.admin_level == 0: blocking = g.db.query( UserBlock.target_id).filter_by( - user_id=self.id).all() + user_id=self.id).subquery() blocked = g.db.query( UserBlock.user_id).filter_by( - target_id=self.id).all() + target_id=self.id).subquery() comments = comments.filter( Comment.author_id.notin_(blocking), diff --git a/files/helpers/get.py b/files/helpers/get.py index 5a0ffef47..c0ecd46c8 100644 --- a/files/helpers/get.py +++ b/files/helpers/get.py @@ -74,8 +74,8 @@ def get_post(i, v=None, graceful=False, **kwargs): if v: vt = g.db.query(Vote).options(lazyload('*')).filter_by( - user_id=v.id, submission_id=i).all() - blocking = v.blocking.all() + user_id=v.id, submission_id=i).subquery() + blocking = v.blocking.subquery() items = g.db.query( Submission, @@ -125,10 +125,10 @@ def get_posts(pids, v=None): vt = g.db.query(Vote).options(lazyload('*')).filter( Vote.submission_id.in_(pids), Vote.user_id==v.id - ).all() + ).subquery() - blocking = v.blocking.all() - blocked = v.blocked.all() + blocking = v.blocking.subquery() + blocked = v.blocked.subquery() query = g.db.query( Submission, @@ -199,11 +199,11 @@ def get_comments(cids, v=None, load_parent=False): cids=tuple(cids) if v: - votes = g.db.query(CommentVote).options(lazyload('*')).filter_by(user_id=v.id).all() + votes = g.db.query(CommentVote).options(lazyload('*')).filter_by(user_id=v.id).subquery() - blocking = v.blocking.all() + blocking = v.blocking.subquery() - blocked = v.blocked.all() + blocked = v.blocked.subquery() comments = g.db.query( Comment, diff --git a/files/routes/comments.py b/files/routes/comments.py index 3b5356535..c5fd329a2 100644 --- a/files/routes/comments.py +++ b/files/routes/comments.py @@ -82,11 +82,11 @@ def post_pid_comment_cid(cid, pid=None, anything=None, v=None): post.replies=[top_comment] if v: - votes = g.db.query(CommentVote).options(lazyload('*')).filter_by(user_id=v.id).all() + votes = g.db.query(CommentVote).options(lazyload('*')).filter_by(user_id=v.id).subquery() - blocking = v.blocking.all() + blocking = v.blocking.subquery() - blocked = v.blocked.all() + blocked = v.blocked.subquery() comments = g.db.query( Comment, diff --git a/files/routes/front.py b/files/routes/front.py index a8e7cbde2..69e69e5fd 100644 --- a/files/routes/front.py +++ b/files/routes/front.py @@ -138,10 +138,10 @@ def frontlist(v=None, sort="hot", page=1, t="all", ids_only=True, filter_words=' if v and v.admin_level == 0: blocking = g.db.query( UserBlock.target_id).filter_by( - user_id=v.id).all()() + user_id=v.id).subquery() blocked = g.db.query( UserBlock.user_id).filter_by( - target_id=v.id).all()() + target_id=v.id).subquery() posts = posts.filter( Submission.author_id.notin_(blocking), Submission.author_id.notin_(blocked) @@ -270,10 +270,10 @@ def changeloglist(v=None, sort="new", page=1 ,t="all", **kwargs): if v and v.admin_level == 0: blocking = g.db.query( UserBlock.target_id).filter_by( - user_id=v.id).all() + user_id=v.id).subquery() blocked = g.db.query( UserBlock.user_id).filter_by( - target_id=v.id).all() + target_id=v.id).subquery() posts = posts.filter( Submission.author_id.notin_(blocking), Submission.author_id.notin_(blocked) @@ -378,19 +378,19 @@ def random_post(v): def comment_idlist(page=1, v=None, nsfw=False, sort="new", t="all", **kwargs): posts = g.db.query(Submission).options(lazyload('*')) - cc_idlist = g.db.query(Submission.id).options(lazyload('*')).filter(Submission.club == True).all() + cc_idlist = g.db.query(Submission.id).options(lazyload('*')).filter(Submission.club == True).subquery() - posts = posts.all() + posts = posts.subquery() comments = g.db.query(Comment).options(lazyload('*')).options(lazyload('*')).filter(Comment.parent_submission.notin_(cc_idlist)) if v and v.admin_level <= 3: blocking = g.db.query( UserBlock.target_id).filter_by( - user_id=v.id).all() + user_id=v.id).subquery() blocked = g.db.query( UserBlock.user_id).filter_by( - target_id=v.id).all() + target_id=v.id).subquery() comments = comments.filter( Comment.author_id.notin_(blocking), diff --git a/files/routes/posts.py b/files/routes/posts.py index b65f083ef..9ac527276 100644 --- a/files/routes/posts.py +++ b/files/routes/posts.py @@ -103,14 +103,14 @@ def post_id(pid, anything=None, v=None): if post.club and not (v and v.paid_dues): abort(403) if v: - votes = g.db.query(CommentVote).options(lazyload('*')).filter_by(user_id=v.id).all() + votes = g.db.query(CommentVote).options(lazyload('*')).filter_by(user_id=v.id).subquery() - blocking = v.blocking.all() + blocking = v.blocking.subquery() - blocked = v.blocked.all() + blocked = v.blocked.subquery() if not (v and v.shadowbanned) and not (v and v.admin_level == 6): - shadowbanned = g.db.query(User.id).options(lazyload('*')).filter(User.shadowbanned == True).all() + shadowbanned = g.db.query(User.id).options(lazyload('*')).filter(User.shadowbanned == True).subquery() comments = g.db.query(Comment).options(lazyload('*')).filter(Comment.author_id.notin_(shadowbanned)) comments = g.db.query( @@ -121,7 +121,7 @@ def post_id(pid, anything=None, v=None): ) if not (v and v.shadowbanned) and not (v and v.admin_level == 6): - shadowbanned = g.db.query(User.id).options(lazyload('*')).filter(User.shadowbanned == True).all() + shadowbanned = g.db.query(User.id).options(lazyload('*')).filter(User.shadowbanned == True).subquery() comments = comments.filter(Comment.author_id.notin_(shadowbanned)) if v.admin_level >=4: @@ -170,7 +170,7 @@ def post_id(pid, anything=None, v=None): post.preloaded_comments = output else: - shadowbanned = g.db.query(User.id).options(lazyload('*')).filter(User.shadowbanned == True).all() + shadowbanned = g.db.query(User.id).options(lazyload('*')).filter(User.shadowbanned == True).subquery() comments = g.db.query(Comment).options(lazyload('*')).filter(Comment.parent_submission == post.id, Comment.author_id.notin_(shadowbanned)) diff --git a/files/routes/search.py b/files/routes/search.py index a5dc6d13c..483489d2f 100644 --- a/files/routes/search.py +++ b/files/routes/search.py @@ -90,10 +90,10 @@ def searchlisting(criteria, v=None, page=1, t="None", sort="top", b=None): elif v: blocking = g.db.query( UserBlock.target_id).filter_by( - user_id=v.id).all()() + user_id=v.id).subquery() blocked = g.db.query( UserBlock.user_id).filter_by( - target_id=v.id).all()() + target_id=v.id).subquery() posts = posts.filter( Submission.author_id.notin_(blocking),