Ruby on Rails: v6.1.3 Release

Release date:
February 17, 2021
Previous version:
v6.1.2.1 (released February 10, 2021)
Magnitude:
785 Diff Delta
Contributors:
5 total committers
Data confidence:
Commits:

Top Contributors in v6.1.3

rafaelfranca
jhawthorn
ghiculescu
jonathanhefner
kamipo

Directory Browser for v6.1.3

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

Active Support

  • No changes.

Active Model

  • No changes.

Active Record

  • Fix the MySQL adapter to always set the right collation and charset to the connection session.

    Rafael Mendonça França

  • Fix MySQL adapter handling of time objects when prepared statements are enabled.

    Rafael Mendonça França

  • Fix scoping in enum fields using conditions that would generate an IN clause.

    Ryuta Kamizono

  • Skip optimised #exist? query when #include? is called on a relation with a having clause

    Relations that have aliased select values AND a having clause that references an aliased select value would generate an error when

    include? was called, due to an optimisation that would generate

    call #exists? on the relation instead, which effectively alters the select values of the query (and thus removes the aliased select values), but leaves the having clause intact. Because the having clause is then referencing an aliased column that is no longer present in the simplified query, an ActiveRecord::InvalidStatement error was raised.

    An sample query affected by this problem:

    Author.select('COUNT(*) as total_posts', 'authors.*')
          .joins(:posts)
          .group(:id)
          .having('total_posts > 2')
          .include?(Author.first)
    

    This change adds an addition check to the condition that skips the simplified #exists? query, which simply checks for the presence of a having clause.

    Fixes #41417

    Michael Smart

  • Increment postgres prepared statement counter before making a prepared statement, so if the statement is aborted without Rails knowledge (e.g., if app gets kill -9d during long-running query or due to Rack::Timeout), app won't end up in perpetual crash state for being inconsistent with Postgres.

    wbharding, Martin Tepper

Action View

  • No changes.

Action Pack

  • Re-define routes when not set correctly via inheritance.

    John Hawthorn

Active Job

  • No changes.

Action Mailer

  • No changes.

Action Cable

  • No changes.

Active Storage

  • No changes.

Action Mailbox

  • No changes.

Action Text

  • No changes.

Railties

  • No changes.