Commit d7103e6
committed
Unscope includes when plucking linkage data
It's very common to eager load data in JR. But if we keep includes
values when plucking for linkage data, it can make the query
unnecessarily expensive.
Let's use Post model for example:
If we directly pluck all posts' `created_at` column, the query would be
very simple
```sql
SELECT "posts"."created_at" FROM "posts"
```
But if we keep includes values in the previous relation object, like
```ruby
Post.includes(:author).pluck(:created_at)
```
It generates unnecessarily complicated query
```sql
SELECT "posts"."created_at" FROM "posts" LEFT OUTER JOIN "people" ON
"people"."id" = "posts"."author_id"
```
So we should always unscope includes when we only want to pluck linkage
data.1 parent eb0c74f commit d7103e6
1 file changed
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
410 | 410 | | |
411 | 411 | | |
412 | 412 | | |
| 413 | + | |
413 | 414 | | |
414 | 415 | | |
415 | 416 | | |
| |||
0 commit comments