[openstreetmap/openstreetmap-website] Preload element tags when showing changesets (PR #4569)

Anton Khorev notifications at github.com
Sat Mar 9 13:59:07 UTC 2024


Changeset show action generates a sql query for each element to get its tags:

```
  OldWayTag Load (0.5ms)  SELECT "way_tags".* FROM "way_tags" WHERE "way_tags"."way_id" = $1 AND "way_tags"."version" = $2  [["way_id", 52], ["version", 1]]
  ↳ app/models/old_way.rb:82:in `to_h'
  OldWayTag Load (0.4ms)  SELECT "way_tags".* FROM "way_tags" WHERE "way_tags"."way_id" = $1 AND "way_tags"."version" = $2  [["way_id", 53], ["version", 1]]
  ↳ app/models/old_way.rb:82:in `to_h'
  OldWayTag Load (0.3ms)  SELECT "way_tags".* FROM "way_tags" WHERE "way_tags"."way_id" = $1 AND "way_tags"."version" = $2  [["way_id", 54], ["version", 1]]
  ↳ app/models/old_way.rb:82:in `to_h'
  OldWayTag Load (0.3ms)  SELECT "way_tags".* FROM "way_tags" WHERE "way_tags"."way_id" = $1 AND "way_tags"."version" = $2  [["way_id", 55], ["version", 1]]
  ↳ app/models/old_way.rb:82:in `to_h'
  OldWayTag Load (0.4ms)  SELECT "way_tags".* FROM "way_tags" WHERE "way_tags"."way_id" = $1 AND "way_tags"."version" = $2  [["way_id", 56], ["version", 1]]
  ↳ app/models/old_way.rb:82:in `to_h'
  OldWayTag Load (0.3ms)  SELECT "way_tags".* FROM "way_tags" WHERE "way_tags"."way_id" = $1 AND "way_tags"."version" = $2  [["way_id", 57], ["version", 1]]
  ↳ app/models/old_way.rb:82:in `to_h'
  OldWayTag Load (0.3ms)  SELECT "way_tags".* FROM "way_tags" WHERE "way_tags"."way_id" = $1 AND "way_tags"."version" = $2  [["way_id", 58], ["version", 1]]
  ↳ app/models/old_way.rb:82:in `to_h'
```

It's possible to roll them into one query. Classic pagination has a parameter for that.

```
  OldWayTag Load (0.3ms)  SELECT "way_tags".* FROM "way_tags" WHERE "way_tags"."way_id" IN ($1, $2, $3, $4, $5, $6, $7) AND "way_tags"."version" = $8  [["way_id", 52], ["way_id", 53], ["way_id", 54], ["way_id", 55], ["way_id", 56], ["way_id", 57], ["way_id", 58], ["version", 1]]
  ↳ app/views/changesets/show.html.erb:82
```

You can view, comment on, or merge this pull request online at:

  https://github.com/openstreetmap/openstreetmap-website/pull/4569

-- Commit Summary --

  * Preload element tags when showing changesets

-- File Changes --

    M app/controllers/changesets_controller.rb (6)

-- Patch Links --

https://github.com/openstreetmap/openstreetmap-website/pull/4569.patch
https://github.com/openstreetmap/openstreetmap-website/pull/4569.diff

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

Message ID: <openstreetmap/openstreetmap-website/pull/4569 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/rails-dev/attachments/20240309/76ef24d5/attachment.htm>


More information about the rails-dev mailing list