| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| | |
yahonda/test_relation_merging_with_merged_joins_oracle
Address ORA-00979: not a GROUP BY expression error
|
| | |
|
|/ |
|
|\
| |
| |
| |
| |
| |
| | |
Statement cache
Conflicts:
activerecord/CHANGELOG.md
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 9bf1a0db4acbbf9e8e6f707250269185224e7efe, reversing
changes made to fed97091b9546d369a240d10b184793d49247dd3.
Conflicts:
activerecord/test/cases/transaction_callbacks_test.rb
Reason: This fix introduces another issue described at #8937, so we are
reverting it to restore the behavior of 3-2-stable.
We will fix both issues when we come out with a better solution
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes #3002. Also see #5494.
```
class Comment < ActiveRecord::Base
belongs_to :post
end
class Author < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :author
has_many :comments
end
```
`Comment.joins(:post).merge(Post.joins(:author).merge(Author.where(:name => "Joe Blogs"))).all` would
fail with `ActiveRecord::ConfigurationError: Association named 'author' was not found on Comment`.
It is failing because `all` is being called on relation which looks like this after all the merging:
`{:joins=>[:post, :author], :where=>[#<Arel::Nodes::Equality: ....}`. In this relation all the context that
`Post` was joined with `Author` is lost and hence the error that `author` was not found on `Comment`.
Ths solution is to build JoinAssociation when two relations with join information are being merged. And later
while building the arel use the previously built `JoinAssociation` record in `JoinDependency#graft` to
build the right from clause.
Thanks to Jared Armstrong (https://github.com/armstrjare) for most of the work. I ported it to make it
compatible with new code base.
|
| |
| |
| |
| | |
PerThreadRegistry module.
|
| |
| |
| |
| |
| | |
current_scope and ignore_default_scope locals are brought together under
a registry object.
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
Correctly parse bigint defaults in PostgreSQL
Conflicts:
activerecord/CHANGELOG.md
|
| | | |
|
|\ \ \
| | | |
| | | | |
Association with inverse_of does not set the parent in association building block
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This fixes inconsistency when building children of association
which has inverse_of set properly.
When creating new association object with a block:
parent.association.build do |child|
child.parent.equal?(parent) # false
end
So the block the `child.parent` did not point to the same object.
But when the object is created it points to same instance:
child = parent.association.build
child.parent.equal?(parent) # true
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
See #9869 and #9929.
The problem arises from the following example:
class Project < ActiveRecord::Base
scope :completed, -> { where completed: true }
end
class MajorProject < Project
end
When calling:
MajorProject.where(tasks_count: 10).completed
This expands to:
MajorProject.where(tasks_count: 10).scoping {
MajorProject.completed
}
However the lambda for the `completed` scope is defined on Project. This
means that when it is called, `self` is Project rather than
MajorProject. So it expands to:
MajorProject.where(tasks_count: 10).scoping {
Project.where(completed: true)
}
Since the scoping was applied on MajorProject, and not Project, this
fails to apply the tasks_count condition.
The solution is to make scoping apply across STI classes. I am slightly
concerned about the possible side-effects of this, but no tests fail and
it seems ok. I guess we'll see.
|
| | | | |
|
| |/ /
|/| |
| | |
| | |
| | |
| | | |
Round off time to a whole second value to compensate for databases
that don't support fractional timestamps. Also add a assertion to
check that the old record is touched when the association is cleared.
|
| | |
| | |
| | |
| | |
| | |
| | | |
If we don't use inspect inside the class_eval block then the foreign key
is written without quotes causing us to fetch the foreign key value and
not the column name.
|
| | |
| | |
| | |
| | | |
fixes #10016
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
belongs_to :touch should touch old record when transitioning.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
as opposed to blank?
This is both faster and more correct, added tests to make sure this is not reverted again.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | | |
mmangino/raise_when_attributes_cant_be_unserialized
Unserializing YAML attributes can silently fail in development mode
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
rails's testcases.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
senny/replace_merge_with_relation_calls_in_count_api
replace #merge with relation API calls in calculations_test.
|
| | | | | | |
|
|/ / / / / |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
so that it is consistent with the error thrown for +find+ without an
inverse_of association.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
inverse_of option. I've also refactored the code for raising a
RecordNotFound exception when searching for records with ids.
|
| | | | |
| | | | |
| | | | |
| | | | | |
enum includes text or blob or ... hooked by wrong regex
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The file name should be name_scoping_test.rb and the class should be
`NamedScopingTest` according to ActiveRecord::Scoping::Name
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The scoping/default.rb and scoping/named.rb got moved under scoping/ in
commit 2b22564c4efaa63d4bbc006762838c4025c1bdca,
but the tests never did.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
valid_type? added to super class abstract_adapter
|
| | |_|/ /
| |/| | |
| | | | |
| | | | | |
valid_type? method to abstract_adapter.rb and removed unnecessary method from sqlite3 adapter
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
Fix typo: overriden => overriDDen
|