| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Generated sub-query for Relation as array condition for `where` method
did not take in account its bind values, in result generates invalid SQL query.
Fixed by adding sub-query relation's binding values to base relation
Closes: #12586
|
| | |
| | |
| | |
| | |
| | |
| | | |
Allows you to call #unscope on a relation with negative equality operators,
i.e. Arel::Nodes::NotIn and Arel::Nodes::NotEqual that have been generated
through the use of where.not.
|
| |/ |
|
| |
| |
| |
| |
| | |
Conflicts:
activerecord/lib/active_record/relation/finder_methods.rb
|
| | |
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* master: (44 commits)
grammar fix (reverted in e9a1ecd)
Revert "fixed a doc bug in the CHANGELOG.md s/does no longer depend on/no longer depends on/"
Add missed require making `enable_warnings` available
Prepare generated Gemfile for Capistrano 3
Added --model-name option scaffold_controller_generator.
read the association instead of sending
we should have unique sponsorable ids in the fixtures at least
simplify populating the ordering hash
the preloader for the RHS has all the preloaded records, so ask it
only calculate offset index once. #12537
Remove size alias for length validation
Fix `singleton_class?`
Minor Refactoring to `NumberHelper#number_to_human`
`$SAFE = 4;` has been removed with Ruby 2.1
scope_chain should not be mutated for other reflections
Remove `default_primary_key_type` and extract contains of `native_database_types` to a constant since they aren't conditional now in SQLite3Adapter. Makes it more like other adapters.
cleanup changelog entry format. [ci skip]
Extract a function to determine if the default value is a function
Push default_function to superclass to avoid method check
Dump the default function when the primary key is uuid
...
Conflicts:
activerecord/lib/active_record/relation/finder_methods.rb
|
| |
| |
| |
| | |
`Relation#maximum`, `Relation#calculate`, `perform_calculation`, `NullRelation#calculate` as they isn't used anymore.
|
| | |
|
| |\
| | |
| | | |
Includes with persistent select, fixes #11773
|
| | |
| | |
| | |
| | | |
was overwritten.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
I don't really like passing the block, but this seems easiest for now
|
| | | |
|
| | | |
|
|/ / |
|
| |
| |
| |
| | |
Merge JoinDependency objects as outer joins
|
| | |
|
| | |
|
|/ |
|
|\ |
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Collapse where constraints to the Arel::Nodes::And node
Conflicts:
activerecord/CHANGELOG.md
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In order to remove duplication with joining arel where constraints with
`AND`, all constraints on `build_arel` are collapsed into one head node: `Arel::Nodes::And`
Closes: #11963
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Deprecate the delegation of Array bang methods in ActiveRecord::Delegation
Conflicts:
activerecord/CHANGELOG.md
activerecord/test/cases/relation_test.rb
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The primary means of returning results for Array bang methods is to modify
the array in-place. When you call these methods on a relation, that
array is created, modified, and then thrown away. Only the secondary
return value is exposed to the caller.
Removing this delegation is a straight-forward way to reduce user error
by forcing callers to first explicitly call #to_a in order to expose
the array to be acted on by the bang method.
|
|\ \ \ \
| |_|_|/
|/| | |
| | | |
| | | |
| | | |
| | | | |
Allow Relation#from to accept other relations with bind values.
Conflicts:
activerecord/CHANGELOG.md
|
| | |/
| |/| |
|
|/ /
| |
| |
| | |
The original code ignores the `false` value because `false.blank? # => true`.
|
|\ \
| |/
|/| |
Re-use order arguments pre-processing for reorder
|
| |
| |
| |
| | |
be consistent.
|
| | |
|
|\ \
| | |
| | | |
[Performance] Don't create fibers while merging bind variables
|
| |/ |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
|
|
|
| |
add changelog entry for #11945
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a regression. The documentation said in its introduction
paragraph that the method returns truthy/falsy, but then below it
was said that if there were no arguments you'd get `true` or `false`.
Also when the argument is exactly `false` a singleton is documented
to be returned.
The method was not returning the singletons so it didn't conform to
those special cases.
The best solution here seems to be to just return singletons in all
cases. This solution is backwards compatible. Also, the contract
has been revised because it has no sense that the predicate varies
that way depending on the input. I bet the previous contract was just
an accident, not something mixed on purpose.
Conflicts:
activerecord/lib/active_record/relation/finder_methods.rb
activerecord/test/cases/finder_test.rb
|
|
|
|
|
|
|
|
| |
- Use symbols rather than strings where possible to avoid extra object construction
- Use destructive methods where possible to avoid extra object construction
- Use array union rather than concat followed by uniq
- Use shorthand block syntax where possible
- Use consistent multiline block styles, method names, method parenteses style, and spacing
|
|\
| |
| |
| |
| | |
Conflicts:
activerecord/CHANGELOG.md
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
order on the old ones
The previous behavior added a major backward incompatibility since it
impossible to have a upgrade path without major changes on the
application code.
We are taking the most conservative path to be consistent with the idea
of having a smoother upgrade on Rails 4.
We are reverting the behavior for what was in Rails 3.x and,
if needed, we will implement a new API to prepend the order clauses in
Rails 4.1.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the ability for rails apps or gems to have granular control
over how a domain object is converted to sql. One simple use case would
be to add support for Regexp. Another simple case would be something
like the following:
class DateRange < Struct.new(:start, :end)
def include?(date)
(start..end).cover?(date)
end
end
class DateRangePredicate
def call(attribute, range)
attribute.in(range.start..range.end)
end
end
ActiveRecord::PredicateBuilder.register_handler(DateRange,
DateRangePredicate.new)
More complex cases might include taking a currency object and converting
it from EUR to USD before performing the query.
By moving the existing handlers to this format, we were also able to
nicely refactor a rather nasty method in PredicateBuilder.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
It's not immediately clear whether you can pass in multiple relations or
not. After going through the code a bit, I saw that the arguments are
just appended to an array. Also, added nested relations example.
[ci skip]
|
| |
|