Skip to content

Fix broken organisers eager load on Event and Meeting queries#2679

Merged
mroderick merged 1 commit into
masterfrom
fix-meeting-n-plus-one
Jun 30, 2026
Merged

Fix broken organisers eager load on Event and Meeting queries#2679
mroderick merged 1 commit into
masterfrom
fix-meeting-n-plus-one

Conversation

@mroderick

@mroderick mroderick commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

Remove broken organisers eager load on Event and Meeting queries. includes(:organisers) generates broken SQL — Rails preloader applies WHERE permissions.name = 'organiser' without joining the permissions table, causing PG::UndefinedTable on production data. Workshop works because its complex associations force eager_load (LEFT JOINs) which includes the permissions table. The original Bullet report only flagged Workshop#organisers and Event#organisers, Meeting was never reported. The Event fix only worked in development (light data).

includes(:organisers) on Event and Meeting generates broken SQL —
Rails' preloader applies the scope condition WHERE permissions.name =
'organiser' without joining the permissions table, causing
PG::UndefinedTable on production data.

Workshop includes(:organisers) works because its complex associations
(sponsors, host) force Rails to use eager_load (LEFT JOINs), which
correctly includes the permissions table.

The original Bullet report only flagged Workshop#organisers and
Event#organisers — Meeting was never reported. The Event fix worked
in development (light data) but fails on production data.
@mroderick mroderick marked this pull request as ready for review June 30, 2026 08:32
@mroderick mroderick merged commit 4dc10c0 into master Jun 30, 2026
8 checks passed
@mroderick mroderick deleted the fix-meeting-n-plus-one branch June 30, 2026 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant