| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ \ \
| |/ /
|/| | |
Bugfix by stopping find_in_batches using the records after yielding.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Currently if the code that calls .find_in_batches modifies the yielded array in place then .find_in_batches can enter an infinite loop searching with ruby object ids in the database instead of the primary key of records in the database. This happens because it naively assumes the yielded array hasn't been modified before calling #id on the last object in the array. And ruby (1.8 at least) alias' #id to #object_id so an integer is still returned no matter what the last object is.
By moving finding the #id of the last object before yielding the array it means the calling code can do whatever it wants to the array in terms of modifying it in place, and .find_in_batches doesn't care.
|
|\ \ \
| | | |
| | | | |
Fix for SqlBypass session store (for master)
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Two issues fixed:
1) connection_pool is not defined - needed by SessionStore#drop_table!
and create_table! since c94651f
2) initialization of connection to the default of AR::Base.connection
only occurred at the singleton level - the instance level method defined
by cattr_accessor did not have this logic
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
I have found that Rails will take an invalid session ID specified by the
client and materialize a session based on that session ID. This means
that it is possible, among other things, for a client to use an
arbitrarily weak session ID or for a client to resurrect a previous used
session ID. In other words, we cannot guarantee that all session IDs are
generated by the server and that they are (statistically) unique through
time.
The fix is to always generate a new session ID in #get_session if an
existing session cannot be found under the incoming session ID.
Also added new tests that make sure that an invalid session ID is never
materialized into a new session, regardless of whether it comes in via a
cookie or a URL parameter (when :cookie_only => false).
|
| | | |
|
|\ \ \
| | | |
| | | | |
Log instrumentation name for exists? queries
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
respond to empty?
having raises NoMethodError: undefined method `empty?' when a Fixnum or Date/Time were passed via varargs
|
| |_|/
|/| |
| | |
| | | |
a join. Related: #1873.
|
|\ \ \ |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
issue #402.
|
| | | |
| | | |
| | | |
| | | | |
record.create_association. Fixes #1960.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Move the private method #extract_schema_and_table into a separate
Utils module so that it can be tested without resorting to #send.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Make `ActiveRecord::Batches#find_each` to not return `self`.
|
| | | | |
| | | | |
| | | | |
| | | | | |
This caused that `find_each` was producing extra db call taking all the records from db, and was less efficient than `ActiveRecord::Base#all`.
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
collection_singular_ids ignores association :include option
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
conditions and includes,
when condtions references tables from includes.
Test fail because of invalid sql:
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: comments.id:
SELECT "posts".id FROM "posts" INNER JOIN "readers" ON "posts"."id" = "readers"."post_id"
WHERE "readers"."person_id" = 1 AND (comments.id is null)
Bug described in github#925
This commit will revert fix from https://github.com/rails/rails/commit/3436fdfc12d58925e3d981e0afa61084ea34736c , but tests is ok.
Bug described in #6569 ticket.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
rake db:test:purge creates mysql database with wrong charset & collation (master branch)
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
See new method mysql_creation_options. It is used by both
create_database and recreate_database so they are consistent.
(Cherry pick of 3ba3125b24b532876c95c8d9d00c9b69faab5a60)
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
performance gain for cases where the association is never used to load the target, for example with preloading. Related: #1873.
|
| |/ / / /
|/| | | | |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Addresses an inconsistency in the ActiveRecord::Base.method_missing handl
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
of dynamic finder methods and the passing of the &block parameter for :find_by_attributes.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Fixed AR::Relation#sum compatibility with Array#sum
|
| | |_|/ / /
| |/| | | |
| | | | | |
| | | | | |
| | | | | | |
In order make Relation behavior closer to Array
Made Relation#sum to accept block and delegate it to Array#sum
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Fixed CollectionAssociation#find to be compatible with Array#find
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In order to make CollectionAssociation behave closer to Array
Add the ability to pass block to #find method just like Array#find does.
|
|\ \ \ \ \ \ |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
change method"
This reverts commit 7f91eebae361f2f3a1558f6d899b372524509a2d.
Reason: Incorrect documenting. The newly added methods to the list are
not actually supported by reversible migrations.
|
| | |_|_|/ /
| |/| | | | |
|
| |/ / / /
|/| | | | |
|
| |_|/ /
|/| | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The changes broke bulk migration tests and were fixed in 4d256bc6;
however that brought back the issue of #1857 and so this commit goes
back to the original scenario and just adds change_table to the list
of methods which are to be recorded in the CommandRecorder. The
method_missing now delegates all calls to the underlying connection as
before.
|
| | | |
| | | |
| | | |
| | | | |
fewer method calls
|
| | | |
| | | |
| | | |
| | | | |
early
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
AssociationReflection#create_association! - they are not called from anywhere.
|