The Wire · Showcase
Rails Adds RETURNING Support, PostgreSQL Virtual Columns Auto-Reload
By RepoJournal · Filed · About Rails
Rails shipped support for SQL RETURNING clauses across INSERT/UPDATE/DELETE operations, eliminating extra database round trips and reducing developer friction around stale data.
The big one: Arel now supports RETURNING clauses [1], which means your UPDATE and DELETE queries can fetch modified data in a single round trip instead of requiring a separate SELECT. Active Record is already leveraging this for PostgreSQL virtual columns, which now reload automatically on update without an extra query [2]. This is the kind of boring infrastructure work that makes deploys faster and schemas cleaner.
Action Text got more precise with its Direct Upload events [3], now dispatching both `id` and `file` properties as documented, plus two previously missing events for better upload lifecycle hooks. On the build side, the devcontainer now supports Ruby 4.0.4 [6], though you probably aren't running that in production yet. Sprockets fixed a gnarly asset fingerprinting issue where GZip mtime headers weren't being set correctly across Ruby versions [5], ensuring your cache busting works as intended.
One quality-of-life win: Rails generators now clean up stale new_framework_defaults files when you update load_defaults [4], so your app:update runs don't leave behind noise anymore. All of this ships together into a release that's heavy on database ergonomics and light on breaking changes.
Action items
- → Review your UPDATE queries for virtual column reloads - you can delete any manual reload calls now rails/rails [plan]
- → If you're using Action Text direct uploads, test that your event listeners still capture id and file properties rails/rails [monitor]
- → Run rails app:update to clean up old framework_defaults files rails/rails [plan]
References
- [1] Add support for `RETURNING` to `INSERT`/`UPDATE`/`DELETE` statements ↗ rails/rails
- [2] PostgreSQL reload virtual columns on update via RETURNING clause ↗ rails/rails
- [3] Action Text: Dispatch Active Storage events with `id` and `file` ↗ rails/rails
- [4] Remove framework_defaults if load_defaults matches rails/rails
- [5] Do not set variable GZip#mtime but do always set File#mtime ↗ rails/sprockets
- [6] Add Ruby version: 4.0.4 ↗ rails/devcontainer
FAQ
- What changed in Rails on May 15, 2026?
- Rails shipped support for SQL RETURNING clauses across INSERT/UPDATE/DELETE operations, eliminating extra database round trips and reducing developer friction around stale data.
- What should Rails teams do about it?
- Review your UPDATE queries for virtual column reloads - you can delete any manual reload calls now • If you're using Action Text direct uploads, test that your event listeners still capture id and file properties • Run rails app:update to clean up old framework_defaults files
- Which Rails repositories shipped on May 15, 2026?
- rails/rails, rails/sprockets, rails/devcontainer