| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| | |
Can you improve the commit message a little bit? It's good to describe why the change is happening.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Suppose Man has_many interests, and inverse_of is used.
Man.first.interests.first.man will correctly execute two queries,
avoiding the need for a third query when Interest#man is called. This is
because CollectionAssociation#first calls set_inverse_instance.
However Man.first.interests.where("1=1").first.man will execute three
queries, even though this is obviously a subset of the records in the
association.
This is because calling where("1=1") spawns a new Relation object from
the CollectionProxy object, and the Relation has no knowledge of the
association, so it cannot set the inverse instance.
This commit solves the problem by making relations spawned from
CollectionProxies return a new Relation subclass called
AssociationRelation, which does know about associations. Records loaded
from this class will get the inverse instance set properly.
Fixes #5717.
Live commit from La Conf! :sparkles:
|
|\ \
| |/
|/| |
[ci skip] document protect_against_forgery? method
|
| | |
|
|\ \
| | |
| | | |
remove redundant var
|
| | | |
|
|\ \ \
| | | |
| | | | |
remove variable and fix warning
|
| |/ / |
|
|\ \ \
| | | |
| | | | |
Require different core extensions correctly.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The begin rescue block is specifically to catch LoadError while loading
i18n gem. Other core extensions, under active support, should be
required outside of the begin rescue block.
|
|\ \ \ \
| |_|/ /
|/| | | |
rails -> Rails [ci skip]
|
|/ / / |
|
|/ / |
|
| |
| |
| |
| | |
for their status, by default, not the message from the underlying exception
|
|\ \
| | |
| | | |
Extraction to enable fixing #10421
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In order to fix #10421 I need to enable merge to take an option
so that relations could be merged without making the last where
condition to win.
That fix would forever reside in 4-0-stable branch and would not be
merged to master since using scope without lambda has been deprecated.
In this commit I have extracted code into a method and I think it
makes code look better. Hence the request to merge it in both
master and 4-0-stable.
If there is any concern then this code can be merged only in
4-0-stable and that would be fine too.
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* polycb:
separate identification computation
separate filters from source code
if the callbacks are not the same class, they cannot be duplicates
fix object comparison case
polymorphic comparison operator
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
|\ \ \ \
| |/ / /
|/| | | |
Using define method instead of class eval when defining model callbacks.
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Based on my benchmark results, this change improves performance
substantially when defining callbacks.
This benchmark (https://gist.github.com/wangjohn/5542610) was run using
the current master and also using my experimental branch which replaced
class_eval with define_single_method.
Using class_eval (current master):
user system total real
10 trials 0.000000 0.000000 0.000000 ( 0.001568)
50 trials 0.020000 0.000000 0.020000 ( 0.021715)
500 trials 0.110000 0.000000 0.110000 ( 0.115357)
1000 trials 0.250000 0.000000 0.250000 ( 0.260025)
10000 trials 2.560000 0.000000 2.560000 ( 2.568408)
50000 trials 12.800000 0.010000 12.810000 ( 12.886871)
Using define_single_method (experimental branch):
user system total real
10 trials 0.000000 0.000000 0.000000 ( 0.000790)
50 trials 0.000000 0.000000 0.000000 ( 0.002960)
500 trials 0.050000 0.010000 0.060000 ( 0.055690)
1000 trials 0.100000 0.000000 0.100000 ( 0.094073)
10000 trials 0.890000 0.000000 0.890000 ( 0.900364)
50000 trials 4.650000 0.000000 4.650000 ( 4.686127)
|
|/ / |
|
|\ \
| | |
| | | |
Use Ruby's native Encoding functionality to implement `tidy_bytes`
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The previous implementation was quite slow. This leverages some of the
transcoding abilities built into Ruby 1.9 instead. It is roughly 96%
faster.
The roundtrip through UTF_8_MAC here is because ruby won't let you
transcode from UTF_8 to UTF_8. I chose the closest encoding I could
find as an intermediate.
|
|\ \ \
| | | |
| | | | |
Remove current_adapter? from test_sanitize_sql_hash_handles_associations
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Because of each adapter implementation differences,
`expected_value` string needed to be handled by each adapter.
This commit removes current_adapter
by using ActiveRecord::ConnectionAdapters::Quoting methods.
|
| | | | |
|
| | | | |
|
| |/ /
|/| | |
|
|\ \ \
| | | |
| | | | |
dependency ActiveSupport::Deprecation
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Fix Typo existant -> existent [ci skip]
|
|/ / / |
|
|\ \ \
| |_|/
|/| | |
Finding inverse associations automatically
|
|/ /
| |
| |
| |
| |
| | |
the results. Added tests to check to make sure that inverse associations are
automatically found when has_many, has_one, or belongs_to associations
are defined.
|
|\ \
| | |
| | | |
fix issue #10502, do not recompute method name for already-stringified object callback filter
|
| | | |
|
| | |
| | |
| | |
| | | |
object filter
|
|/ /
| |
| |
| |
| |
| |
| | |
patricksrobertson/bigserial_id_not_identifying_pk"
This reverts commit 3043d45eefc3776d5f3a9e7d212a01f99d869ef8, reversing
changes made to ca0275d36b395631725c4583db5a45c06443fdb9.
|
|\ \
| |/
|/| |
Add PK constraint on bigserial ID columns on postgres adapter
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In #10410 it was noted that you can no longer create PK's with the
type of bigserial in PostgreSQL in 4.0.0.rc1. This is mostly
because the newer adapter is checking for column type with the
id column instead of just letting it pass through like it did
before.
Side effects:
You may just create a PK column of a type that you really don't
want to be your PK. As far as I can tell this was allowed in 3.2.X
and perhaps an exception should be raised if you try and do
something extremely dumb.
|