> Besides the [double-join db 
> query](https://github.com/openstreetmap/openstreetmap-website/pull/5255#discussion_r1801064970),
>  there's couple more issues with the interaction type: ["blue on blue" 
> colors](https://github.com/openstreetmap/openstreetmap-website/pull/4700#issuecomment-2221682594)
>  and whether the submitted/commented classification makes sense at all (what 
> if I closed a note without a comment?). I wanted to try 
> opened/closed/commented instead.

First of all, thank you for taking time and effort reviewing this. Few things I 
would like to reassess:
 - Related to the commented/submitted criteria we could use `EXISTS` subqueries 
which removes the need for a double joins, potentially making the query simpler 
and more performant. I could try testing this in terms of performance with 
large number of mocked entries so we can better get the idea of how this would 
affect the performance.

```ruby
  scope :filter_by_note_type, lambda { |note_type, user_id|
    case note_type
    when "commented"
      where("EXISTS (SELECT 1 FROM note_comments WHERE note_comments.note_id = 
notes.id AND (note_comments.author_id != ? OR note_comments.author_id IS 
NULL))", user_id)
    when "submitted"
      where("EXISTS (SELECT 1 FROM note_comments WHERE note_comments.note_id = 
notes.id AND note_comments.author_id = ? AND note_comments.id = (SELECT 
MIN(nc.id) FROM note_comments nc WHERE nc.note_id = notes.id))", user_id)
    else
      all
    end
  }
```

- Regarding the open/closed/commented differentiation instead of 
commented/submitted - It makes sense to me too but I would also like to hear 
the @tomhughes @gravitystorm opinions on this too, so we could all sync on 
right approach for this.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/pull/5255#issuecomment-2426960898
You are receiving this because you are subscribed to this thread.

Message ID: 
<openstreetmap/openstreetmap-website/pull/5255/c2426960...@github.com>
_______________________________________________
rails-dev mailing list
rails-dev@openstreetmap.org
https://lists.openstreetmap.org/listinfo/rails-dev

Reply via email to