From ccc94802ecdec14187a81fee203bd0d55538de47 Mon Sep 17 00:00:00 2001 From: Daniel Supernault Date: Sat, 12 Feb 2022 20:58:35 -0700 Subject: [PATCH] Update CommentPipeline, improve parent reply_count calculation - mysql only for now --- app/Jobs/CommentPipeline/CommentPipeline.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/Jobs/CommentPipeline/CommentPipeline.php b/app/Jobs/CommentPipeline/CommentPipeline.php index e0ae491da..3d09b3a97 100644 --- a/app/Jobs/CommentPipeline/CommentPipeline.php +++ b/app/Jobs/CommentPipeline/CommentPipeline.php @@ -59,10 +59,13 @@ class CommentPipeline implements ShouldQueue $target = $status->profile; $actor = $comment->profile; - DB::transaction(function() use($status) { - $status->reply_count = DB::table('statuses')->whereInReplyToId($status->id)->count(); - $status->save(); - }); + if(config('database.default') === 'mysql') { + DB::transaction(function() use($status) { + $count = DB::select( DB::raw("select id, in_reply_to_id from statuses, (select @pv := :kid) initialisation where id > @pv and find_in_set(in_reply_to_id, @pv) > 0 and @pv := concat(@pv, ',', id)"), [ 'kid' => $status->id]); + $status->reply_count = count($count); + $status->save(); + }); + } if ($actor->id === $target->id || $status->comments_disabled == true) { return true;