| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
This reverts commit e8727d37fc49d5bf9976c3cb5c46badb92cf4ced, reversing
changes made to d098e1c24bc145e0cc14532348436e14dc46d375.
Reason: it broke the mysql build
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fixes bug introduced by #3329
These are the conditions necessary to reproduce the bug:
- For an association, autosave => true.
- An association record is being destroyed
- A new association record is being created.
- There is a unique index one of the association's fields.
- The record being created has the same value as the record being
destroyed on the indexed field.
Before, the deletion of records was postponed until after all
insertions/saves. Therefore the new record with the identical value in
the indexed field caused a non-unique value error to be thrown at the database
level.
With this fix, the deletions happen first, before the insertions/saves.
Therefore the record with the duplicate value is gone from the database
before the new record is created, thereby avoiding the non-uniuqe value
error.
|
|\
| |
| |
| |
| |
| |
| | |
Support transactions in Migrator.run
Conflicts:
activerecord/CHANGELOG.md
|
| | |
|
| |
| |
| |
| | |
bit column in Postgresql, because solving ambiguity.
|
|/ |
|
| |
|
|
|
|
| |
[ci skip]
|
|\
| |
| |
| |
| |
| |
| | |
Statement cache
Conflicts:
activerecord/CHANGELOG.md
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| | |
See #10107.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | | |
fixes #10016
|
| | | |
|
|\ \ \
| | | |
| | | | |
belongs_to :touch should touch old record when transitioning.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Firebird/Sqlserver/Oracle database tasks.
|
| |/ /
|/| | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
respect auto_increment in rename_column for mysql
|
| | | | |
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Adds support for algorithm option in MySQL indexes
Moves USING and algorithm options upstream
The syntax is still specific to the Adapter, so the actual executed string happens
in the corresponding adapter
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | | |
Fix some typos in AR- CHANGELOG, tests, method doc. fixed
|
| | | | |
|
|/ / / |
|
| | |
| | |
| | |
| | |
| | | |
if the association already holds that record in memory before checking
the database for the specified ids.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Closes #8079.
I had to rework some of the tests because the mock allowed any arguments
for `connection.exeucte`. I think this is very dangerous as there could
anything be executed without the tests noticing it.
|
| | |
| | |
| | |
| | |
| | |
| | | |
"utf8mb4"
Please, see rationale in the included CHANGELOG patch.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
the primary key on an association will make sure that the corresponding
counter on the association is changed properly. Fixes #9722.
|
| | |
| | |
| | |
| | | |
Closes #9712.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We moved more and more away from passing options to finder / calculation
methods. The `:distinct` option in `#count` was one of the remaining places.
Since we can now combine `Relation#distinct` with `Relation#count` the option
is no longer necessary and can be deprecated.
|
|/ /
| |
| |
| |
| |
| |
| |
| | |
The similarity of `Relation#uniq` to `Array#uniq` is confusing. Since our
Relation API is close to SQL terms I renamed `#uniq` to `#distinct`.
There is no deprecation. `#uniq` and `#uniq!` are aliases and will continue
to work. I also updated the documentation to promote the use of `#distinct`.
|
| | |
|
| |
| |
| |
| | |
To make quote escape binary data correctly it needs the column passed in.
|
| | |
|