Actions
Bug #21654
openSet#new calls extra methods compared to previous versions
Bug #21654:
Set#new calls extra methods compared to previous versions
Status:
Open
Assignee:
-
Target version:
-
ruby -v:
ruby 3.5.0dev (2025-10-24T15:50:47Z master a9f24aaccb) +PRISM [arm64-darwin25]
Description
I'm trying to test Ruby 3.5.0 with our Rails application and we've found that Set.new is now causing extra database queries to happen.
The changes in d4020dd5faf call "size" on enumerable objects that are passed to the new method, and this causes extra "COUNT" queries to happen with ActiveRecord associations.
For example:
Set.new(some_activerecord_association)
Previously, the above code would only do one query by iterating over the association. Now it issues two queries, a count query, and then the normal query for results.
Since d4020dd5faf is dealing with endless ranges, I would like to narrow the scope from all Enumerable objects to just Ranges. Unfortunately, I noticed we have a test like this:
assert_raise(ArgumentError) {
Set.new(1.upto(Float::INFINITY))
}
I'm not sure how we can handle such a case without testing size.
Actions