Rails Daily: SQL Internals Get a Cleanup
Ryuta Kamizono led a five-part cleanup of Active Record's SQL generation internals, fixing bind parameter handling and unifying naming, while separate fixes addressed scoping gaps and composite key edge cases in associations.
Duration: PT2M25S
Episode overview
This episode is a short developer briefing from Rails Daily.
It explains recent repository work in plain language.
- Show: Rails Daily
- Published: 2026-07-31T06:01:34Z
- Audio duration: PT2M25S
Transcript excerpt
This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.
Good morning, it's July 31st, 2026, and this is Rails Daily.
Today's biggest signal is a coordinated overhaul of how Active Record handles raw SQL and bind parameters under the hood — five related pull requests, all from Ryuta Kamizono, landing together.
The core problem: bind parameters have lived on the Arel AST since Rails 5.2, but several code paths still treated them inconsistently. PR 58311 fixes a real bug — calling explain on Arel input with AST binds was throwing undefined parameter errors on Postgres because to_sql discarded the extracted binds. PR 58310…
Second theme: scoping correctness in Active Record. PR 58320 closes a long-standing gap where relation-scoped update calls with explicit IDs quietly dropped the relation's conditions — update_all, delete, and destroy were already scoped, update wasn't. And PR 58315 fixes belongs_to with touch and composite primary…
Two more worth knowing: PR 57948 makes the Action View dependency tracker registry Ractor-shareable, laying groundwork for the upcoming ractorize application feature. And PR 58321 adds correct Pacific and Mountain time zone mappings for Canada, since British Columbia and Alberta no longer share winter clocks…
What…
Nearby episodes from Rails Daily
- Ractor Safety and Insert Internals
- Ractor Safety and the Great Database Cleanup
- SQL Building Gets a Cleanup, Hot Paths Get Leaner
- Weekly Recap - Thread Safety, Cleanup, and Quiet Correctness Fixes
- Kamipo's Cleanup Sweep
- Cleaning Up Rails' Ruby 2 Legacy
- Concurrency Bug Squashed in Route Loading
- The Great Dead Code Purge